From e0be3aa8f2ce769cfd241f73c0d603d94e63c63c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 18:14:14 +0200 Subject: [PATCH 01/13] Test commit (#508) (#509) Co-authored-by: Hein van Vlastuin <94352322+hein-obox@users.noreply.github.com> --- dev/scss/reset.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/scss/reset.scss b/dev/scss/reset.scss index dae67e8d..cb360c7c 100644 --- a/dev/scss/reset.scss +++ b/dev/scss/reset.scss @@ -3,3 +3,4 @@ @forward "reset/forms"; @forward "reset/table"; @forward "reset/list"; +// Test comment. From fc52aad85f0e0f877d2288030012b2dc28ecaf51 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 20:40:42 +0200 Subject: [PATCH 02/13] Test comment (#511) (#512) Co-authored-by: Hein van Vlastuin <94352322+hein-obox@users.noreply.github.com> --- dev/scss/editor.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/scss/editor.scss b/dev/scss/editor.scss index c0714db5..1c58d420 100644 --- a/dev/scss/editor.scss +++ b/dev/scss/editor.scss @@ -19,3 +19,4 @@ } } } +// Test comment. From cc21858cd3f718c789ac28090a6cf133c3fb1309 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 20:43:25 +0200 Subject: [PATCH 03/13] Clean up test comment. (#513) (#514) --- dev/scss/editor.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/dev/scss/editor.scss b/dev/scss/editor.scss index 1c58d420..c0714db5 100644 --- a/dev/scss/editor.scss +++ b/dev/scss/editor.scss @@ -19,4 +19,3 @@ } } } -// Test comment. From 7f7a34861f18168839d62df6a0c36ff4ca8c3b34 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 12:59:25 +0200 Subject: [PATCH 04/13] Cherry-pick PR #520 with conflicts - manual resolution needed (#521) --- .github/workflows/playwright.yml | 77 +++++++++ .gitignore | 7 + tests/playwright/pages/settings-page.ts | 157 ++++++++++++++++++ .../settings/description-meta-tag.test.ts | 60 +++++++ .../tests/settings/header-footer.test.ts | 48 ++++++ .../tests/settings/page-title.test.ts | 49 ++++++ .../tests/settings/reset-css.test .ts | 68 ++++++++ .../tests/settings/settings-suite.test.ts | 73 ++++++++ .../tests/settings/skip-links.test.ts | 63 +++++++ .../tests/settings/theme-css.test.ts | 68 ++++++++ 10 files changed, 670 insertions(+) create mode 100644 .github/workflows/playwright.yml create mode 100644 tests/playwright/pages/settings-page.ts create mode 100644 tests/playwright/tests/settings/description-meta-tag.test.ts create mode 100644 tests/playwright/tests/settings/header-footer.test.ts create mode 100644 tests/playwright/tests/settings/page-title.test.ts create mode 100644 tests/playwright/tests/settings/reset-css.test .ts create mode 100644 tests/playwright/tests/settings/settings-suite.test.ts create mode 100644 tests/playwright/tests/settings/skip-links.test.ts create mode 100644 tests/playwright/tests/settings/theme-css.test.ts diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml new file mode 100644 index 00000000..9bb0bff9 --- /dev/null +++ b/.github/workflows/playwright.yml @@ -0,0 +1,77 @@ +name: Playwright Tests + +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: read + actions: write + +jobs: + playwright-tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + registry-url: 'https://npm.pkg.github.com' + scope: '@elementor' + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + tools: composer + coverage: none + + - name: Install Composer dependencies + run: composer install --no-dev --no-scripts --optimize-autoloader + + - name: Install npm dependencies + run: npm ci + env: + NODE_AUTH_TOKEN: ${{ secrets.CLOUD_DEVOPS_TOKEN }} + + - name: Build plugin + run: npm run build:prod + + - name: Start wp-env + run: npm run wp-env:start + + - name: Setup Playwright + run: npm run test:setup:playwright + + - name: Setup Chromium + run: npm run test:setup:chromium + + - name: Run Playwright tests + id: playwright-tests + run: | + npm run test:playwright + echo "exit_code=$?" >> $GITHUB_OUTPUT + continue-on-error: false + + - uses: actions/upload-artifact@v4 + if: always() + with: + name: playwright-test-results-${{ matrix.shardIndex }} + path: ${{ inputs.path-to-results || 'test-results/' }} + if-no-files-found: ignore + retention-days: 2 + + - name: Check test results + if: steps.playwright-tests.outcome == 'failure' + run: | + echo "❌ Playwright tests failed!" + exit 1 + + - name: Stop wp-env + if: always() + run: npm run wp-env:stop diff --git a/.gitignore b/.gitignore index 3af24740..1e91616f 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,10 @@ assets/js/ *.zip .npmrc .env +<<<<<<< HEAD +======= +tmp/ +.phpunit.result.cache +test-results/ +!tests/phpunit/hello-elementor +>>>>>>> dab5ced (Internal: Settings page test [TMZ-894] (#520)) diff --git a/tests/playwright/pages/settings-page.ts b/tests/playwright/pages/settings-page.ts new file mode 100644 index 00000000..7f50eb59 --- /dev/null +++ b/tests/playwright/pages/settings-page.ts @@ -0,0 +1,157 @@ +import { APIRequestContext, type Page, type TestInfo, expect } from '@playwright/test'; +import WpAdminPage from './wp-admin-page.ts'; + +export default class SettingsPage extends WpAdminPage { + async gotoSettingsPage(): Promise { + await this.page.goto( '/wp-admin/admin.php?page=hello-elementor-settings' ); + await this.page.waitForSelector( 'h4:has-text("Advanced theme settings")', { timeout: 10000 } ); + } + + getTab( tabName: string ) { + return this.page.getByRole( 'tab', { name: tabName } ); + } + + getTabPanel( tabName: string ) { + return this.page.getByRole( 'tabpanel', { name: tabName } ); + } + + async createNewBasicPost(): Promise { + const request: APIRequestContext = this.page.context().request, + postDataInitial = { + title: 'Playwright Test Page - Uninitialized', + content: 'This is a test content for the post.', + status: 'publish' as const, + excerpt: 'This is a test excerpt that should appear in meta description.', + }, + postId = await this.apiRequests.create( request, 'pages', postDataInitial ), + postDataUpdated = { + title: `Playwright Test Page #${ postId }`, + }; + + await this.apiRequests.create( request, `pages/${ postId }`, postDataUpdated ); + + return postId; + } + + async clickTab( tabName: string ): Promise { + await this.getTab( tabName ).click(); + await this.page.waitForSelector( `[role="tabpanel"]:visible`, { timeout: 5000 } ); + } + + getCheckboxByIndex( index: number ) { + return this.page.locator( 'input[type="checkbox"]' ).nth( index ); + } + + getCheckboxBySetting( settingName: string ) { + const settingMap: { [key: string]: number } = { + 'Disable description meta tag': 0, + 'Disable skip links': 1, + 'Disable theme header and footer': 0, + 'Hide page title': 1, + 'Deregister Hello reset.css': 0, + 'Deregister Hello theme.css': 1, + }; + return this.page.locator( `input[type="checkbox"]` ).nth( settingMap[ settingName ] || 0 ); + } + + async toggleSetting( settingName: string ): Promise { + const checkbox = this.getCheckboxBySetting( settingName ); + await checkbox.click(); + await this.waitForSaveNotification(); + return await checkbox.isChecked(); + } + + async toggleCheckboxByIndex( index: number ): Promise { + const checkbox = this.getCheckboxByIndex( index ); + await checkbox.click(); + await this.waitForSaveNotification(); + return await checkbox.isChecked(); + } + + async waitForSaveNotification(): Promise { + await expect( this.page.locator( '[role="alert"]:has-text("Settings Saved")' ).first() ).toBeVisible( { timeout: 5000 } ); + } + + async closeSaveNotification(): Promise { + const notification = this.page.locator( '[role="alert"]:has-text("Settings Saved")' ); + if ( await notification.isVisible() ) { + await notification.getByRole( 'button', { name: 'Close' } ).click(); + } + } + + async openChangelog(): Promise { + await this.page.getByRole( 'link', { name: 'Changelog' } ).click(); + await expect( this.page.locator( 'h4:has-text("Changelog")' ) ).toBeVisible( { timeout: 5000 } ); + } + + async closeChangelogWithEscape(): Promise { + await this.page.keyboard.press( 'Escape' ); + await expect( this.page.locator( '[role="dialog"]' ) ).not.toBeVisible( { timeout: 3000 } ); + } + + async closeChangelogByClickingOutside(): Promise { + await this.page.locator( '[role="dialog"]' ).click( { position: { x: 5, y: 5 } } ); + await expect( this.page.locator( '[role="dialog"]' ) ).not.toBeVisible( { timeout: 3000 } ); + } + + async getChangelogVersions(): Promise { + const versionElements = this.page.locator( 'h6[class*="MuiTypography"]:regex("\\d+\\.\\d+\\.\\d+ - \\d{4}-\\d{2}-\\d{2}")' ); + return await versionElements.allTextContents(); + } + + async hasWarningAlert(): Promise { + return await this.page.locator( '[role="alert"]:has-text("Be Careful")' ).isVisible(); + } + + async getSettingDescription( settingName: string ): Promise { + const descriptionElement = this.page.locator( `h6:has-text("${ settingName }") ~ * p:has-text("What it does:")` ); + return await descriptionElement.textContent() || ''; + } + + async getSettingTip( settingName: string ): Promise { + const tipElement = this.page.locator( `h6:has-text("${ settingName }") ~ * p:has-text("Tip:")` ); + return await tipElement.textContent() || ''; + } + + async getSettingCode( settingName: string ): Promise { + const codeElement = this.page.locator( `h6:has-text("${ settingName }") ~ * code` ); + return await codeElement.textContent() || ''; + } + + async waitForPageLoad(): Promise { + await this.page.waitForSelector( 'h4:has-text("Advanced theme settings")', { timeout: 10000 } ); + await this.page.waitForSelector( '[role="tablist"]', { timeout: 5000 } ); + await this.page.waitForSelector( '[role="tabpanel"]:visible', { timeout: 5000 } ); + await this.page.waitForTimeout( 1000 ); + } + + async resetToDefaults(): Promise { + const tabs = [ + 'SEO and accessibility', + 'Structure and layout', + 'CSS and styling control', + ]; + + for ( const tabName of tabs ) { + await this.clickTab( tabName ); + + const checkboxes = this.page.locator( 'input[type="checkbox"]' ); + const count = await checkboxes.count(); + + for ( let i = 0; i < count; i++ ) { + const checkbox = checkboxes.nth( i ); + const isChecked = await checkbox.isChecked(); + + let shouldBeChecked = false; + if ( 'Structure and layout' === tabName && 1 === i ) { + shouldBeChecked = true; + } + + if ( isChecked !== shouldBeChecked ) { + await checkbox.click(); + await this.waitForSaveNotification(); + } + } + } + } +} diff --git a/tests/playwright/tests/settings/description-meta-tag.test.ts b/tests/playwright/tests/settings/description-meta-tag.test.ts new file mode 100644 index 00000000..4260612c --- /dev/null +++ b/tests/playwright/tests/settings/description-meta-tag.test.ts @@ -0,0 +1,60 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Description Meta Tag Setting - Behavior Tests', () => { + let postId: string; + + test.beforeEach( async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + postId = await settingsPage.createNewBasicPost(); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'SEO and accessibility' ); + } ); + + test( 'should not show meta description on page when the "Disable description meta tag" setting is enabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const metaCheckbox = settingsPage.getCheckboxBySetting( 'Disable description meta tag' ); + + const isChecked = await metaCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Disable description meta tag' ); + } + + await page.goto( `/?p=${ postId }` ); + + const metaDescription = page.locator( 'meta[name="description"]' ); + await expect( metaDescription ).not.toBeAttached(); + } ); + + test( 'should show meta description on page when the "Disable description meta tag" setting is disabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const metaCheckbox = settingsPage.getCheckboxBySetting( 'Disable description meta tag' ); + + const isChecked = await metaCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Disable description meta tag' ); + } + + await page.goto( `/?p=${ postId }` ); + + const metaDescription = page.locator( 'meta[name="description"]' ); + await expect( metaDescription ).toBeAttached(); + } ); + + test( 'should not show meta description on home page when the "Disable description meta tag" setting is enabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const metaCheckbox = settingsPage.getCheckboxBySetting( 'Disable description meta tag' ); + + const isChecked = await metaCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Disable description meta tag' ); + } + + await page.goto( '/' ); + + const metaDescription = page.locator( 'meta[name="description"]' ); + await expect( metaDescription ).not.toBeAttached(); + } ); +} ); diff --git a/tests/playwright/tests/settings/header-footer.test.ts b/tests/playwright/tests/settings/header-footer.test.ts new file mode 100644 index 00000000..1450bf40 --- /dev/null +++ b/tests/playwright/tests/settings/header-footer.test.ts @@ -0,0 +1,48 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Header and Footer Setting - Behavior Tests', () => { + test.beforeEach( async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'Structure and layout' ); + } ); + + test( 'should show header and footer by default when setting is disabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const headerFooterCheckbox = settingsPage.getCheckboxBySetting( 'Disable theme header and footer' ); + + const isChecked = await headerFooterCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Disable theme header and footer' ); + } + + await page.goto( '/' ); + + const header = page.locator( 'header#site-header.site-header' ); + const footer = page.locator( 'footer#site-footer.site-footer' ); + + await expect( header ).toBeAttached(); + await expect( footer ).toBeAttached(); + } ); + + test( 'should hide header and footer when setting is enabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + + const headerFooterCheckbox = settingsPage.getCheckboxBySetting( 'Disable theme header and footer' ); + const isChecked = await headerFooterCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Disable theme header and footer' ); + } + + await page.goto( '/' ); + + const header = page.locator( 'header#site-header.site-header' ); + const footer = page.locator( 'footer#site-footer.site-footer' ); + + await expect( header ).not.toBeAttached(); + await expect( footer ).not.toBeAttached(); + } ); +} ); diff --git a/tests/playwright/tests/settings/page-title.test.ts b/tests/playwright/tests/settings/page-title.test.ts new file mode 100644 index 00000000..b740e73d --- /dev/null +++ b/tests/playwright/tests/settings/page-title.test.ts @@ -0,0 +1,49 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Page Title Setting - Behavior Tests', () => { + let postId: string; + + test.beforeEach( async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + postId = await settingsPage.createNewBasicPost(); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'Structure and layout' ); + } ); + + test( 'should hide page title when setting is checked', async ( { page, apiRequests, request }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const pageTitleCheckbox = settingsPage.getCheckboxBySetting( 'Hide page title' ); + + const isChecked = await pageTitleCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Hide page title' ); + } + + // Act - Navigate to the test post + await page.goto( `/?p=${ postId }` ); + + // Assert - Page title should be hidden + const pageHeader = page.locator( '.page-header h1.entry-title' ); + await expect( pageHeader ).not.toBeAttached(); + } ); + + test( 'should show page title when setting is unchecked', async ( { page, apiRequests, request }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const pageTitleCheckbox = settingsPage.getCheckboxBySetting( 'Hide page title' ); + const isChecked = await pageTitleCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Hide page title' ); + } + + // Act - Navigate to the test post + await page.goto( `/?p=${ postId }` ); + + // Assert - Page title should be visible + const pageHeader = page.locator( '.page-header h1.entry-title' ); + await expect( pageHeader ).toBeAttached(); + await expect( pageHeader ).toHaveText( 'Playwright Test Page #' + postId ); + } ); +} ); diff --git a/tests/playwright/tests/settings/reset-css.test .ts b/tests/playwright/tests/settings/reset-css.test .ts new file mode 100644 index 00000000..654f296a --- /dev/null +++ b/tests/playwright/tests/settings/reset-css.test .ts @@ -0,0 +1,68 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Reset CSS Setting - Behavior Tests', () => { + test.beforeEach( async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'CSS and styling control' ); + } ); + + test( 'should load reset.css by default when setting is disabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const themeCssCheckbox = settingsPage.getCheckboxBySetting( 'Deregister Hello reset.css' ); + + const isChecked = await themeCssCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Deregister Hello reset.css' ); + } + + const cssRequests: string[] = []; + page.on( 'request', ( request ) => { + if ( request.url().includes( '.css' ) ) { + cssRequests.push( request.url() ); + } + } ); + + await page.goto( '/' ); + + const themeCssLoaded = cssRequests.some( ( url ) => + url.includes( '/hello-theme/assets/css/reset.css' ), + ); + + expect( themeCssLoaded ).toBeTruthy(); + + const themeCssLink = page.locator( 'link[rel="stylesheet"][href*="hello-theme"][href*="reset.css"]' ); + await expect( themeCssLink ).toBeAttached(); + } ); + + test( 'should not load reset.css when setting is enabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + + const themeCssCheckbox = settingsPage.getCheckboxBySetting( 'Deregister Hello reset.css' ); + const isChecked = await themeCssCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Deregister Hello reset.css' ); + } + + const cssRequests: string[] = []; + page.on( 'request', ( request ) => { + if ( request.url().includes( '.css' ) ) { + cssRequests.push( request.url() ); + } + } ); + + await page.goto( '/' ); + + const themeCssLoaded = cssRequests.some( ( url ) => + url.includes( '/hello-theme/assets/css/reset.css' ), + ); + + expect( themeCssLoaded ).toBeFalsy(); + + const themeCssLink = page.locator( 'link[rel="stylesheet"][href*="hello-theme"][href*="reset.css"]' ); + await expect( themeCssLink ).not.toBeAttached(); + } ); +} ); diff --git a/tests/playwright/tests/settings/settings-suite.test.ts b/tests/playwright/tests/settings/settings-suite.test.ts new file mode 100644 index 00000000..0d00a831 --- /dev/null +++ b/tests/playwright/tests/settings/settings-suite.test.ts @@ -0,0 +1,73 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Hello Biz Settings - Complete Test Suite', () => { + test( 'should verify all settings tabs are accessible', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + + const tabs = [ + 'SEO and accessibility', + 'Structure and layout', + 'CSS and styling control', + ]; + + for ( const tabName of tabs ) { + const tab = settingsPage.getTab( tabName ); + await expect( tab ).toBeVisible(); + + await settingsPage.clickTab( tabName ); + const panel = settingsPage.getTabPanel( tabName ); + await expect( panel ).toBeVisible(); + } + } ); + + test( 'should toggle settings correctly', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + + await settingsPage.clickTab( 'SEO and accessibility' ); + const skipLinksCheckbox = settingsPage.getCheckboxBySetting( 'Disable skip links' ); + const initialSkipLinksState = await skipLinksCheckbox.isChecked(); + + await settingsPage.toggleSetting( 'Disable skip links' ); + const newSkipLinksState = await skipLinksCheckbox.isChecked(); + expect( newSkipLinksState ).toBe( ! initialSkipLinksState ); + + await settingsPage.clickTab( 'Structure and layout' ); + const headerFooterCheckbox = settingsPage.getCheckboxBySetting( 'Disable theme header and footer' ); + const initialHeaderFooterState = await headerFooterCheckbox.isChecked(); + + await settingsPage.toggleSetting( 'Disable theme header and footer' ); + const newHeaderFooterState = await headerFooterCheckbox.isChecked(); + expect( newHeaderFooterState ).toBe( ! initialHeaderFooterState ); + } ); + + test( 'should persist settings across page reloads', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + + await settingsPage.clickTab( 'SEO and accessibility' ); + const skipLinksCheckbox = settingsPage.getCheckboxBySetting( 'Disable skip links' ); + const initialState = await skipLinksCheckbox.isChecked(); + + await settingsPage.toggleSetting( 'Disable skip links' ); + const stateAfterToggle = await skipLinksCheckbox.isChecked(); + + await page.reload(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'SEO and accessibility' ); + + const stateAfterReload = await skipLinksCheckbox.isChecked(); + expect( stateAfterReload ).toBe( stateAfterToggle ); + + await settingsPage.toggleSetting( 'Disable skip links' ); + const finalState = await skipLinksCheckbox.isChecked(); + expect( finalState ).toBe( initialState ); + } ); +} ); diff --git a/tests/playwright/tests/settings/skip-links.test.ts b/tests/playwright/tests/settings/skip-links.test.ts new file mode 100644 index 00000000..c863c468 --- /dev/null +++ b/tests/playwright/tests/settings/skip-links.test.ts @@ -0,0 +1,63 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Skip Links Setting - Behavior Tests', () => { + test.beforeEach( async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'SEO and accessibility' ); + } ); + + test( 'should show skip link by default when setting is disabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const skipLinkCheckbox = settingsPage.getCheckboxBySetting( 'Disable skip links' ); + + const isChecked = await skipLinkCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Disable skip links' ); + } + + await page.goto( '/' ); + + const skipLink = page.locator( 'a.skip-link.screen-reader-text[href="#content"]' ); + await expect( skipLink ).toBeAttached(); + await expect( skipLink ).toHaveText( 'Skip to content' ); + } ); + + test( 'should hide skip link when setting is enabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + + const skipLinkCheckbox = settingsPage.getCheckboxBySetting( 'Disable skip links' ); + const isChecked = await skipLinkCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Disable skip links' ); + } + + await page.goto( '/' ); + + const skipLink = page.locator( 'a.skip-link.screen-reader-text[href="#content"]' ); + await expect( skipLink ).not.toBeAttached(); + } ); + + test( 'should verify skip link functionality when visible', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + + const skipLinkCheckbox = settingsPage.getCheckboxBySetting( 'Disable skip links' ); + const isChecked = await skipLinkCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Disable skip links' ); + } + + await page.goto( '/' ); + + const skipLink = page.locator( 'a.skip-link.screen-reader-text[href="#content"]' ); + await expect( skipLink ).toBeAttached(); + + await skipLink.focus(); + await skipLink.click(); + + await expect( page ).toHaveURL( /#content$/ ); + } ); +} ); diff --git a/tests/playwright/tests/settings/theme-css.test.ts b/tests/playwright/tests/settings/theme-css.test.ts new file mode 100644 index 00000000..0ea08b6d --- /dev/null +++ b/tests/playwright/tests/settings/theme-css.test.ts @@ -0,0 +1,68 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; +import SettingsPage from '../../pages/settings-page.ts'; + +test.describe.serial( 'Theme CSS Setting - Behavior Tests', () => { + test.beforeEach( async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + await settingsPage.gotoSettingsPage(); + await settingsPage.waitForPageLoad(); + await settingsPage.clickTab( 'CSS and styling control' ); + } ); + + test( 'should load theme.css by default when setting is disabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + const themeCssCheckbox = settingsPage.getCheckboxBySetting( 'Deregister Hello theme.css' ); + + const isChecked = await themeCssCheckbox.isChecked(); + if ( isChecked ) { + await settingsPage.toggleSetting( 'Deregister Hello theme.css' ); + } + + const cssRequests: string[] = []; + page.on( 'request', ( request ) => { + if ( request.url().includes( '.css' ) ) { + cssRequests.push( request.url() ); + } + } ); + + await page.goto( '/' ); + + const themeCssLoaded = cssRequests.some( ( url ) => + url.includes( '/hello-theme/assets/css/theme.css' ), + ); + + expect( themeCssLoaded ).toBeTruthy(); + + const themeCssLink = page.locator( 'link[rel="stylesheet"][href*="hello-theme"][href*="theme.css"]' ); + await expect( themeCssLink ).toBeAttached(); + } ); + + test( 'should not load theme.css when setting is enabled', async ( { page, apiRequests }, testInfo ) => { + const settingsPage = new SettingsPage( page, testInfo, apiRequests ); + + const themeCssCheckbox = settingsPage.getCheckboxBySetting( 'Deregister Hello theme.css' ); + const isChecked = await themeCssCheckbox.isChecked(); + if ( ! isChecked ) { + await settingsPage.toggleSetting( 'Deregister Hello theme.css' ); + } + + const cssRequests: string[] = []; + page.on( 'request', ( request ) => { + if ( request.url().includes( '.css' ) ) { + cssRequests.push( request.url() ); + } + } ); + + await page.goto( '/' ); + + const themeCssLoaded = cssRequests.some( ( url ) => + url.includes( '/hello-theme/assets/css/theme.css' ), + ); + + expect( themeCssLoaded ).toBeFalsy(); + + const themeCssLink = page.locator( 'link[rel="stylesheet"][href*="hello-theme"][href*="theme.css"]' ); + await expect( themeCssLink ).not.toBeAttached(); + } ); +} ); From 21449861be9069e24a0d19e6f7b4be821ff2797b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:33:40 +0300 Subject: [PATCH 05/13] Cherry-pick PR #524 with conflicts - manual resolution needed (#525) --- modules/admin-home/rest/admin-config.php | 92 +++++++++++++++--- .../admin/hello-theme-admin-home.test.ts | 77 +++++++++++++++ .../welcome-section-linux.png | Bin 0 -> 15182 bytes tests/wp-env/config/setup.sh | 72 ++++++++++++++ 4 files changed, 225 insertions(+), 16 deletions(-) create mode 100644 tests/playwright/tests/admin/hello-theme-admin-home.test.ts create mode 100644 tests/playwright/tests/admin/hello-theme-admin-home.test.ts-snapshots/welcome-section-linux.png create mode 100644 tests/wp-env/config/setup.sh diff --git a/modules/admin-home/rest/admin-config.php b/modules/admin-home/rest/admin-config.php index 71990873..c9d87d7c 100644 --- a/modules/admin-home/rest/admin-config.php +++ b/modules/admin-home/rest/admin-config.php @@ -6,6 +6,7 @@ exit; // Exit if accessed directly. } +use Elementor\Core\DocumentTypes\Page; use HelloTheme\Includes\Utils; use WP_REST_Server; @@ -24,9 +25,11 @@ public function register_routes() { } public function get_admin_config() { + $elementor_page_id = Utils::is_elementor_active() ? $this->ensure_elementor_page_exists() : null; + $config = $this->get_welcome_box_config( [] ); - $config = $this->get_site_parts( $config ); + $config = $this->get_site_parts( $config, $elementor_page_id ); $config = $this->get_resources( $config ); @@ -40,6 +43,57 @@ public function get_admin_config() { return rest_ensure_response( [ 'config' => $config ] ); } + private function ensure_elementor_page_exists(): int { + $existing_page = \Elementor\Core\DocumentTypes\Page::get_elementor_page(); + + if ( $existing_page ) { + return $existing_page->ID; + } + + $page_data = [ + 'post_title' => 'Hello Theme page', + 'post_content' => '', + 'post_status' => 'draft', + 'post_type' => 'page', + 'meta_input' => [ + '_elementor_edit_mode' => 'builder', + '_elementor_template_type' => 'wp-page', + ], + ]; + + $page_id = wp_insert_post( $page_data ); + + if ( is_wp_error( $page_id ) ) { + throw new \RuntimeException( 'Failed to create Elementor page: ' . esc_html( $page_id->get_error_message() ) ); + } + + if ( ! $page_id ) { + throw new \RuntimeException( 'Page creation returned invalid ID' ); + } + + wp_update_post([ + 'ID' => $page_id, + 'post_title' => 'Hello Theme #' . $page_id, + ]); + return $page_id; + } + + private function get_elementor_editor_url( ?int $page_id, string $active_tab ): string { + $active_kit_id = Utils::elementor()->kits_manager->get_active_id(); + + $url = add_query_arg( + [ + 'post' => $page_id, + 'action' => 'elementor', + 'active-tab' => $active_tab, + 'active-document' => $active_kit_id, + ], + admin_url( 'post.php' ) + ); + + return $url . '#e:run:panel/global/open'; + } + public function get_resources( array $config ) { $config['resourcesData'] = [ 'community' => [ @@ -92,7 +146,7 @@ public function get_resources( array $config ) { return $config; } - public function get_site_parts( array $config ): array { + public function get_site_parts( array $config, ?int $elementor_page_id = null ): array { $last_five_pages_query = new \WP_Query( [ 'posts_per_page' => 5, @@ -136,7 +190,7 @@ public function get_site_parts( array $config ): array { $common_parts = []; - $customizer_header_footer_url = $this->get_open_homepage_with_tab( '', [ 'autofocus[section]' => 'hello-options' ] ); + $customizer_header_footer_url = $this->get_open_homepage_with_tab( $elementor_page_id, '', null, [ 'autofocus[section]' => 'hello-options' ] ); $header_part = [ 'id' => 'header', @@ -161,8 +215,8 @@ public function get_site_parts( array $config ): array { 'icon' => 'ThemeBuilderIcon', ], ]; - $header_part['link'] = $this->get_open_homepage_with_tab( 'hello-settings-header' ); - $footer_part['link'] = $this->get_open_homepage_with_tab( 'hello-settings-footer' ); + $header_part['link'] = $this->get_open_homepage_with_tab( $elementor_page_id, 'hello-settings-header' ); + $footer_part['link'] = $this->get_open_homepage_with_tab( $elementor_page_id, 'hello-settings-footer' ); if ( Utils::has_pro() ) { $header_part = $this->update_pro_part( $header_part, 'header' ); @@ -184,7 +238,7 @@ public function get_site_parts( array $config ): array { $config['siteParts'] = apply_filters( 'hello-plus-theme/template-parts', $site_parts ); - return $this->get_quicklinks( $config ); + return $this->get_quicklinks( $config, $elementor_page_id ); } private function update_pro_part( array $part, string $location ): array { @@ -197,7 +251,7 @@ private function update_pro_part( array $part, string $location ): array { $edit_link = get_edit_post_link( $first_document_id, 'admin' ) . '&action=elementor'; } else { - $edit_link = $this->get_open_homepage_with_tab( 'hello-settings-' . $location ); + $edit_link = $this->get_open_homepage_with_tab( null, 'hello-settings-' . $location ); } $part['sublinks'] = [ [ @@ -213,30 +267,36 @@ private function update_pro_part( array $part, string $location ): array { return $part; } - public function get_open_homepage_with_tab( $action, $customizer_fallback_args = [] ): string { - if ( Utils::is_elementor_active() && method_exists( \Elementor\Core\DocumentTypes\Page::class, 'get_site_settings_url_config' ) ) { - return \Elementor\Core\DocumentTypes\Page::get_site_settings_url_config( $action )['url']; + public function get_open_homepage_with_tab( ?int $page_id, $action, $section = null, $customizer_fallback_args = [] ): string { + if ( Utils::is_elementor_active() ) { + $url = $page_id ? $this->get_elementor_editor_url( $page_id, $action ) : Page::get_site_settings_url_config( $action )['url']; + + if ( $section ) { + $url = add_query_arg( 'active-section', $section, $url ); + } + + return $url; } return add_query_arg( $customizer_fallback_args, self_admin_url( 'customize.php' ) ); } - public function get_quicklinks( $config ): array { + public function get_quicklinks( $config, ?int $elementor_page_id = null ): array { $config['quickLinks'] = [ 'site_name' => [ 'title' => __( 'Site Name', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( 'settings-site-identity', [ 'autofocus[section]' => 'title_tagline' ] ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity', null, [ 'autofocus[section]' => 'title_tagline' ] ), 'icon' => 'TextIcon', ], 'site_logo' => [ 'title' => __( 'Site Logo', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( 'settings-site-identity', [ 'autofocus[section]' => 'title_tagline' ] ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity', null, [ 'autofocus[section]' => 'title_tagline' ] ), 'icon' => 'PhotoIcon', ], 'site_favicon' => [ 'title' => __( 'Site Favicon', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( 'settings-site-identity', [ 'autofocus[section]' => 'title_tagline' ] ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity', null, [ 'autofocus[section]' => 'title_tagline' ] ), 'icon' => 'AppsIcon', ], ]; @@ -244,13 +304,13 @@ public function get_quicklinks( $config ): array { if ( Utils::is_elementor_active() ) { $config['quickLinks']['site_colors'] = [ 'title' => __( 'Site Colors', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( 'global-colors' ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'global-colors' ), 'icon' => 'BrushIcon', ]; $config['quickLinks']['site_fonts'] = [ 'title' => __( 'Site Fonts', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( 'global-typography' ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'global-typography' ), 'icon' => 'UnderlineIcon', ]; } diff --git a/tests/playwright/tests/admin/hello-theme-admin-home.test.ts b/tests/playwright/tests/admin/hello-theme-admin-home.test.ts new file mode 100644 index 00000000..7b31a422 --- /dev/null +++ b/tests/playwright/tests/admin/hello-theme-admin-home.test.ts @@ -0,0 +1,77 @@ +import { parallelTest as test } from '../../parallelTest.ts'; +import { expect } from '@playwright/test'; + +test.describe( 'Hello Theme Admin Home Page', () => { + test.beforeEach( async ( { page } ) => { + await page.goto( '/wp-admin/admin.php?page=hello-elementor' ); + } ); + + test( 'should display Welcome to Hello Theme message and take screenshot', async ( { page } ) => { + const welcomeSection = page.locator( 'text=Go Pro, Go Limitless' ).locator( '..' ).locator( '..' ); + await expect.soft( welcomeSection ).toHaveScreenshot( 'welcome-section.png' ); + } ); + + test( 'should display Quick Links section', async ( { page } ) => { + const quickLinksHeading = page.locator( 'h6:has-text("Quick Links")' ); + await expect( quickLinksHeading ).toBeVisible(); + await expect( quickLinksHeading ).toContainText( 'Quick Links' ); + const quickLinksSection = page.locator( 'text=Quick Links' ).locator( '..' ).locator( '..' ); + await expect( quickLinksSection ).toContainText( 'These quick actions will get your site airborne in a flash.' ); + const expectedQuickLinks = [ + 'Site Name', + 'Site Logo', + 'Site Favicon', + 'Site Colors', + 'Site Fonts', + ]; + for ( const linkText of expectedQuickLinks ) { + const linkElement = page.locator( `h6:has-text("${ linkText }")` ); + await expect( linkElement ).toBeVisible(); + } + } ); + + test( 'should navigate to correct pages from Quick Links', async ( { page } ) => { + const quickLinksTests = [ + { + linkText: 'Site Name', + expectedUrlPattern: /post\.php\?post=\d+&action=elementor.*active-tab=settings-site-identity/, + expectedPageSection: '.elementor-control-section_settings-site-identity', + }, + { + linkText: 'Site Logo', + expectedUrlPattern: /post\.php\?post=\d+&action=elementor.*active-tab=settings-site-identity/, + expectedPageSection: '.elementor-control-section_settings-site-identity', + }, + { + linkText: 'Site Favicon', + expectedUrlPattern: /post\.php\?post=\d+&action=elementor.*active-tab=settings-site-identity/, + expectedPageSection: '.elementor-control-section_settings-site-identity', + }, + { + linkText: 'Site Colors', + expectedUrlPattern: /post\.php\?post=\d+&action=elementor.*active-tab=global-colors/, + expectedPageSection: '.elementor-control-section_global_colors', + }, + { + linkText: 'Site Fonts', + expectedUrlPattern: /post\.php\?post=\d+&action=elementor.*active-tab=global-typography/, + expectedPageSection: '.elementor-control-section_text_style', + }, + ]; + for ( const linkTest of quickLinksTests ) { + await page.goto( '/wp-admin/admin.php?page=hello-elementor' ); + const linkElement = page.locator( `h6:has-text("${ linkTest.linkText }") a` ); + await expect( linkElement ).toBeVisible(); + + await Promise.all( [ + page.waitForURL( linkTest.expectedUrlPattern ), + linkElement.click(), + ] ); + + expect( page.url() ).toMatch( linkTest.expectedUrlPattern ); + await page.waitForSelector( '#elementor-kit-panel' ); + const location = page.locator( linkTest.expectedPageSection ); + await expect( location ).toBeVisible(); + } + } ); +} ); diff --git a/tests/playwright/tests/admin/hello-theme-admin-home.test.ts-snapshots/welcome-section-linux.png b/tests/playwright/tests/admin/hello-theme-admin-home.test.ts-snapshots/welcome-section-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa5aae52645e3eb9fd1db3bddb5dfdb7a85a052 GIT binary patch literal 15182 zcmd73XEiOEub{e{mg_tk523kwT3 z3%3JwKOxP>7caogz_EK&GgtrT#^Ate+{yj-?*8Wwf2Mcs+KZR}XQ#T;4M|8y`jf?| z&l&jmIC@7$Dt#`FZE0vzQbab^*L@a^x%BI3$mzJ?xj6+kR#x-#^WO^#In0_8Pjgaz27fgxQvG|5acSS!FxLrXl`!5#F2;yYv^Sq8^Sz zORS?#Ynz*MbsiZW2P<>s@xd|7X~HgY3y<;fLqjS0lj7sO<+_)- zBVEgfd8)#~!gv(Ei|ye?Eizi#2yc=HPo7B{7^FHdl5%nu^@cgOk4f| zq2v(frOv_5&Q94F=ES5V(!uj1B(}z!Gj zXV0Fck}{u9Hy!nD?%yV5QK<7i!z1R@sVucmYm$}@G%}jMx_;$#vh8*H3yJ+ezdd(w zxd|`M&ld1Jv{ayj&Xaf^ZH!J%>YP^YqQFMj&1_6nbL0Orgx@GSdqqq0X z&71!A9EO1(KFDw+*3EBiEiCks%uMTn7cK$Kc$NOemoHx^zJGVEs`695?M_8i@49^o zCn4w3Q*s);{^v1$p!&g-&Z%2XMn=YOHDr2>);5l@8O?7aX%j}bwY7!Q?@Z()5Ffus z$&A_6yY3X{<|@72+nPj}&_~C_1b6mqPR5s+`1||s%pfI9*Gj<#mgb$EorRKfy1KeP zd&*}$)^wRJ6?(A0-(>wVl!BW%-C@y}Tw3)Nr*0KyuY*1qCZ+dETwGi-kdT+x-q?KB z^!JaK;4@y~w|mG;)9w)~d0%(Q4hQ*ARr)}^3|(XfduqMMpjl}9zQsU5=pd~7#NGDRbTl-WZQ=isvRGMdg2myK9VRE!2zYsWH@tYL zRc+S@uTsQb-TZ8Zck5GYYwHR*IY(PND#FL|ojLH&hZX^$p`jCc4h{~E{pGG(!tcIFZ%W)!^Gxu3MRAoqc^~x?w*0b!bgaTiSUP=@kL3fF1`E4^MR8P+11= zMPgzibK=L?E`ga@pNr209MfUV=OWLmWEEwNC;^guuE4L}XbuQnO8AFEcjI8`85zO3 zz?=4Oz4aDP3)e5RUhY1u9D&8nbGNjFh28c4^r^}o8^UFai6)Ui1|cy#sW5O_3O8%F z(XB+4CC0BvM zc6Rpu5)qMKt?P_1L*2@9Z2Y~nd)V`#tWZd$%O;8in%aqsF#P)UE1yYwSp3>r5YZ(E z2gmqta@CwS9%OqwkFF3I8H`g@#!me2EY-BW%w@o={9x?|>N%v`-4}t3!-m zdCNJfXc9%n$H$)?NE}h?A+OvRCTkodr9E}Pkq00eL6ea~AqD5G;6Tu(j#hgNca=g+#stejDbv9;S2vH#_5H{^6UPUPc8PB?3?R zjQx%_1=ohFxkJgTY-iX69M8`VR)H^4Q&P*w$QUAhQ()kH^YE{S3;@?!f(S_lFL8+g zCNU1kHF?BzHVXhZG+F>~7FzVpgqlUbYO|^c!spO@OHfdgVd4FAeKFCM-UJ0mM+7al zo0CI6N0G}$qlAZtr?LV843da=LQA(q{~{?kShmsgs6Ff|3T7bHa6V~_kB{%CTMvi9 zFY5}GGo&GzIXNBa!_%^~}GAm+Nt|5YZ+5@!IUnM4Q>#mq*RX<^OxTGYSg| z3bL}))zrSGrVdtGslq2mTO`M$3iI>x;oI1&GHx$LCYm>&@^q`YE_SzPL@2M1mh`~; zk_1meUCPVLNqiOMJS8E;#VM`(e72K(%*-qL8gNneE*$cK{{EG?uXiL7S@LiW{qoN~ zgar6b4ri6H?(Xi>Q+EdI;dbT9d!(eQ405sxu@=FOJWo&OULSHq452hIen$T_o=vwo z04yBMDgVwYU^{tQwy@Y18rRTJ?BSu$$iQ9z=QZzrAmF_AKc<`U26BAtN<@D?=l34z zIsFQ~o*vcv`oqKTgHUBGpNq^WZ(vKTXM@;+@a{CV z)^2ODAVs%c>Kg_*oR=*A{{8z?F#!QMjEa()y^=1Pm6dh$t<@{h*|c-%kTL{eTs;tm-a>1+t12nIKgu5)EilMpDESzyjr64@zKw(9>8bcTw1EyD7bob1LYMBo zAMDkycVS8gVKFu~w(M(ia&m!zX0YY%m!JGi5p$mgxQkOQ&CT1}c@OJc72?+x7kRz< zlNFK#H`ms3^Ye@K5Z29~gU`|of2k-d8(j+UBlygqm-VQ-f1kMFiv-xn$Vip_6skhA zM6-lJx2n?7b$h%{eX{|B>4>CfVPc}Bq@<#v3i$lFlyX|cZF^yR+iS-lD55`gvEzWx zr7RhBO4kihRVPbq@gEyrE=G1{fr^#EWCnh@j zd~t0Ma-V|Qct3g!Ux{QdAG9)S;2yWRK9YTB;nJoPY=+ zEcc>+us}76^jL*u)zw`V10`?>=y>dBF}b-<3g8;g%AVm8(mV#-Mu452-Nwe|WOHn+ zXEU)tcU6{@#oBuR(uFyxXCzM+@~Jau^c*5@Ss{xs zJPCMrnDdU;{EeoHhEBQZdPItdb_g7fT35{(k6+nO;A7idQ5R=v|lIA)D!0}!5?;LY))-0@iIREDQ#Wg#5f@aA(# zs0H73c6(CXzt3l}t!ETSJ5{Z#TYa_gkL$dBZoG4Ud3m|5y&dE=y4utf+&sIkuCB5!77lN3ZO_im1bM{N z_;_wXL8v0xom*vPWrKsy^ti@;{rWL9q;g31d_wgvdwuch#gV<5n%YQ)4D_aC%fV{D z?@rwx>%aB`%gB#09&iH?kX`(}%%x{#N1yobe@?N>$lcHXV%zWfQ*P1k|3d#M*FB}b z7rpl6&ULcCLqB}_e|@S3^7U(Sbj*PPAEGq($)jiMCQ<=mLNTf;P6zueJl zOTEcSaTL@i=Qb33W3dN_XjPSpS+kxr305H{ZizG)7{bFdr!nv)>P&!BEJJ$p)aOZq znO09>>LUr{!)+JuaMYd%X>ob{=T^bmT0@`d%f2hJSd0vR5>-iXCF8RF0W)iDY3`bc z#y4}HQC9X%eb<$#LS&8f0tiAGCdTqT-B&BizRFTkQm>3v2sGZ5&Cy-E=EurK+?QB? z+PdzPp7-+SqebR7eQ=M<`1zMAT2Xh;O*Q}+=7O#!Tf&&q62wlv^lgA`Jn@b0q~M5=zl6Tp5ZSTJFJz?nI^G#${RJopUn{*$fOQJoUM_bzd-_9?iaS846g|L}a7 z{SvV64PCm0->;2VrFgY*N$#IcV$wMuZ_d=q4zFZpXLm{1_eE=*p_5O*vK8KVtE%Fw zpsR7O{V?31A6w=IY@@SG6=ZE~WXs%~t2>n@J@j-b`bamL>FqX z&9`n`m+$TN6twuM!WCCVt(=*BJCNTyQd!EmGb`gZW$HFy(^p!#nj-C zh|7Yw1?*bzjt>&ag~bX=MAGux0B|>uUy@(m}|iB zvltOUfnmukx5TBT$&4JwK)9}WT#3PechYE~73qM3iH?>|=^^`A1K1G*H8u3YwC{_# z+3f7_&lPI_-NGfL^`T9xdE0;2=dzCD*{1%n{iYzv;0|@Q;vr23iT&JOqvuxp1yL=4 zh!kO~hUjP#Vlz|IZ83K~VP@2LXRcvdYKopP47Ez#BjmdO#>1l)aHkzHBo4s_md_Ic zF|9lapOTZ418jF=WiWy4!M^C>NWwu^S02DO8eZ%8TJ6ORU2f#J_ggzj^tZ*WEKQ#~ zj^ER``ozTU>3Z-s&1BJFXVPo8TD_+dQK^_JzJtok2t7zcElXLRt~*gwl+Oww9DX0j ze_kiCp#vB19^LfuI(hDmUOII!q201A&|KdZLuy7TXETR4*w1pYvTn^(OqD*mS*yoI z+!zuz>$hg<{VM&XKi~z&J1g`3^Y1g4CA`t5>Sm+d5|Pa5k@OP%+NI9ZPzjyt@=3Q{ zSZeWXJsKT!J@UxeCY)BR+-FL_(T>u}Om3P7`1SF&1j&i;Y;$^okw4B{lNqdY$LNKr zbD@^Sn68_5u;o?qI`BSJQPB;$+Xl6+8AUM}mCo~Ff_7(?R@TA%iss9Sb4ddH^v|5{ z5f^D!N43mzXg?2v6?@Eil2JCg|9m&7-sIRfwc0Pnu(7bstkcQAqdO~TUyz^gva@j| zEdDdg#LG*BI+*i7_Sf*R1^2zd!wGy14*lH1bnmvFsgqPgfWf*fG6RO~`2~5wqr2Vw zJ0Cu<*hfciZN2k6TC=tpPNb#M^GP0(UQg`CN_Dr*fTL@;YQNJ*r>R6TiqZfP-_pBD}$P;+0kX3!STlg$3SKF0uc7bquZs`%#{2zv=H1 zTvc*ONwxXCn=LNRu6nzDmx+mKBByT`rU@QVyqFJOz1HKLOuNatVW(-W0yvzcglDM# zLC%0a2RHYak|xr9c{1vMt+e#~`_d{lx3IF%BCa!d0uzgW*-Ki9kE2D8=P-V-UM zhRh0pwLK6%#bsplUoIG%Il;eIG$aU*Nlf(J=)H~o(4jxAzqm-s0!{Neo@P4fPqE%y zFS;<{^%7bFDAN$oQ$w>2HIXJKBM(n{s<1GnP`z`?%)}B&^{g^C*Zpk6rO;k_ci4j7 z(MdZnJ$)gLI0_{4koz?I9K4$;Yv})i?ac=aqm!dIwo$CRvb+94X&S0JeLxhu;h)N- zSEnK)lVg`MN#bT{zM@;QDadWuIGdwMlp{cRK}1`RURHp}%Cf3j^cQ4h@cQ+Kp^6Go z_T$}lujKpEk`t4oySobu^F1kvwUv}Q>GsjHZcl}nTzYfo5!RzR4ew%G<0K#dfhUbQ zo-8x7VRO#i1HYw>p}m%%=@^TCzYF-IbXn5&t?BcQNXEbr=Iku9N;|WxLd^QMzifuI zgTo%rP{0lUSIq{}ul2qJ2A-$XpG*+(%w71p?TEeQPClJIS={4;Xr3jW6xoU#v#}S9 zPiWDLd%ilwTR5Vw7PO!G6NiB9Q&*#R>wFLNT_Y;tR+g4;jRwPDqSG@YqodFi@g1LG zixJp&un)kt#JsMewT`wgZoiu<8*6QK-)}YC$Hzlml_j`*c%z^o;k?x9BY~yIIm|08 zoUSt2Ny;>(jJ?k^V1zI_h;X7P38N8kZ$2%1_ROJTh12|}t*LYGIf3rZtk+wcDV>M+ zIJC+!@Bw{6O$$NII7u1BcXJ5nJ8h7H$;Xv=P!bDyEkBtQ)UV{NU6 zpxvC=fwWZHt=mEI35jy-nS~7)GsqIAt*5V#%FV%z0FQ72aq`eB*leTljFmMnMzjMY zSAQ08awTbnh(&#na&feSLg3_mx>^F<+}vq=K8h-i-G%F_IG4Y6MiTI++_uaf<+eIM z`uL*s_(UPkYCVSKYN&b07KBEkHFkD+lw=ffW(1Nz zwMmGwT3a*6$M%flzH?XUmSGI1D~vfmXT6)M)kNB**y+#Q^iSQMaMMcdVIp2$SvfzG z&_O!bSd1yIn1`1b)H`e*>suWF6}G-sc&_o}_ezn7w{KUSM3tJl`ozSf8gfO$4Kp&a zRezkoZzpQ{>jTTrN2=KaMTLd$MoNuZbK=O!3{F` zLLHs*>SV(XmV1M-1+!oQc_z4r&Mv`gmls5Ue*t{e^IzU|rxK~Q8~LR)HZn2|V5`?E zM!44bwRg;6#p+1r(tRFmYCd#yB zWv$*~n`S(*zkP;fPEQr-D7ZX`2fG+AMn}|ei8kg6=I+6{yzqOI#ELW{?aJk^T)HsX z3cbNk1O;~hANI#N6!V(riOeYju?55@VB6Z-JBlf_zxU3pB#$sWcw@t(`i9_A^YRQ#2Fr6qMINIakZQIalF2??i3RpV`JK*78jj3**g8^6k#OUQh!1R zXynk)gpbAq4SLINwn=>hFQUcI84S{TBm0Dz$+F2Ox>(mS_gB2pZkOQ%Zh$cQH< zbp~{6!W4wP4^2;sx1B5$7#TJ-I4L-Fk688PdMYc*ny^2R(2{MmTRvcj#ro6FX%tDF zDv0PE+wwK_^hAxv-?}O#@$nodi!Qo&-i zRr=VdjhnUBYv(6;`sXKGQjlzBX40H~JUl{&?OzcAVk{A8RZUf|D+V-hX!`=Vi{&Z= zVx6B~e@q8#MjDt{%|l;VfQ9W6k(6e3=H01YqIcb=>n#MW`m$w!GDt+r&c%fq8S%dV zATy_6sykomSsHiQy{bEaeM{e^?iH^XTcr~{1d^aorF~9qf>oNq%rGxci=p%gYB*MF z>O%+gF$$tK#+6dNJw7~{AK+rco>qTSQQ?Hznd)L|dDOq{gX?$ZaX9>if@C-#U}>o# z(kta@*MS9*nCkVy*aItdE z01F(Fa?tZHi=+1yL!snFRk_WRy{}A*N+k7n zeadD+mgA~ACK8G~@nvNdNNwQ&VGFf=_Z(RdJ0{gNI5~svZb%%*b%E$;+PgWw?Yi?3 z3)b1v%;5{}bN)w%@U?{J&6fo*8EZx1s!h-91(KVFr z;p_Xdvw{MDrT;5DLF_Z`wbPul`%1xL&c-!zX{m-2zT1nMC8^?@XAke@;^E@61E#*%!R95xAw6B79xzYMXzcyq9#Fo7%Sk8^f* z8*-oYB(Y<-=KUU<{6G(P?v?Hmbx)Zk>W!pi3hdC?hBzuEg`apGmEY#e2e1qz7d(Qz zKtfx~A=6YRoqa+!it37T*-%ndb+KODMVK5)NlR7RPX)Rh{94-6skZJKGPA!9+|!UF zK}rU_8kL64*x%nD+uO6HK?mq76&C8;!Vx2zB`!=gl%5CalbWU`3xf+kKlP>th!&#< z-iz>HuaqB)R$4lICWa}K;}x8{Te{hG(a}R8A=nwpWyf02x;i~V868ih_jjll*_oL5 zC6K>E;sl8k5)wdmLt<_oB<=hLU6A_#OvB^sjJPBnEF`$I?g(2qva+(Wys|7LG+9wn z1i+67eM)jwWodSlXVf{t6GT8+<1tk{C;@fe1{G#qnZdN4H^9zY7!7E}e1*jr4<-(j z7=RS(9Aar?_0#tTDnCmSa{Kn}AvWz4bW6ynY7Lh{FEwdY>7Ki@tJx*VA}Ps)e@$nn zrNAN6CYKrN)bDz16&%&gi}5&s~WOq zP%vJgrh{hetu{}P1|J^2v087YJUZH}b8(yn1bmU@=hjr!`uMEub7O|hNpi{(b< z9?{JkC$yr`se35w0Atj<*{V<&&f#XC@b&JA=QH~H@DhW#s3=()#aG5d& z#QZkaT;vMG%Ahv(MuDo)lPoJe9k|+ET1-pKx121q76WNW1dV`}D*;n#d6WB-|GI|l zq-3Wm(yyz#a7xho935_!o3mnqyM+9LPwSq%LK`vNrj(A9HUKE}zQDUkndS zxa~N?Uc0XXo0go!fZPV6CX-2|ZYGr#U9MteL`*z7go=7T_WR={w_cs+WxK5_y_x`- z*PE z=clWvs4&1^9(Oi_8>QrC*pJFTK99b+X{)8Id^RtcS`?0Ws$c08(26lW zx__CkyXkk)h*^{g9vq{n4%12)&DlWZGu_1kfnYqyewv45G*4C6`ToVHPtD8OJQ# z#>$XBiIAW*1d2wXiOZiLt5!x zg_FFL)NPyex;g|1P)x27Y%2#r5tv{pImL)$^|Z9E*ERxyfjFEToOEJ@`GzG1b_S{S z1)*WD9?Va1Bo7ch#>c~Rwi#W(oSkJ>PRbPo^94vr9UUG85J>=C00u(9Yk7(kx2t4I z*D4hBQ|h+Zd()kdj7fqRa~8+U9wh!_9n9v&Zy>viRNA0M8We5CTrWNh4v)Gxm)0*V z&wx|B<{^H#Z=VV!k|STvQKsF}~65=nH<%oQt=#;ZzrcJ)TUmeN%ZlUEEJR^!-PkeS)K zXtjIBWIbwt{FzT&m1h(J3hvE*+^L%5}Mam!et>Bv4fu&W5IR_Fn)6G(kHAGfWiFGx$qs zb&oIXE`fz&Qmaa_-hn`_A<|RPRWn*YEG;O|#nr`#HtlnZ{9~q^POUFdQAVddnrJ6= zb#+TEcWT@V`?(vG3HCsA9lyL<{XTzw?&2Xz0Gd#gqT<-oGfcv%seGvFBvpKwxT?Pl zSR|;bV4bVAYE(ej{BAUFm-5(|JF3Ra^eb!ouWvtT=Pm#|qtB!*$K~M$sQPngbztDs?3fD`Qe6}ao=tvb_DJi?)xNKFOp1Gy%fl?l+P9`zy?YSxo@^9RVn7N?YvTc** zifWKPI-KxtYHIWqphCk6Jy-K}9!&CqdocMr&EZr(d3 zIu{-F)>xi`?Cz*+pzjjV;Y{!E^>ur?p_dYDMOqCh%$u7Tf%*4$dHBsoQ=}OVH5Q0~ zpfef}pj4a9t%c9l9;2YETgKh*nzh#pLY1CzoA?Q@#-(<<}y*;Vbr;+db! z`cF&X-EY!)1LD*qK&%pNz=-}5Q(?&+%dBp(SftjUV z2F;n9rPRAKJ$lyFHTY7xE*ZV`Zd{ipTtOjG&_)gd+`{iwg_Us4gIJ^i8>W8%jx+%+*Le53Pjf<#$KG#sI=VB@NIse$Scs!wpqH*{3PW zL2_`lnubtDUOr}Eb#;}ZAp$yH=9RYl>?>r5?F_-enYg|=Cgyad(tkk&s3p+^vtzSvAg2Q*FCN1R&%nOpiqkbADMEN@%|ut1gJ zp+D8BTKvyvF3y#~Yb`+yKXF|-!h!X|+GiXwZeu|+q zq$vz$dZL}FZ`QOC_GqL$fN2wBHQKDApfK9sF1+pXYDyptr7TTQkX8iFPh;`0R8N_bC`atm>;FhX!&j8 z%jd>x$+zW!LYxlLOQd~C!I<406HTKXs;WFM*ArMs#F_0S^YK%q2ML|32cSX<lzWd|?%8J9S{mM<~*3VAm!rb}(Z71!fC-qzX{9O3v=!=pQM z545MmWcL}(qyd$qj3-Com}5$%y-FP^E@onESn)+xr>D|-;#0?P{8Ka3L`;w`6|dvg zxk83tYNsozvWv8JL%@7w7gPmC?0?;rBet?yA%3+nOt9oI<+T;PhLhDT|iIV(}P z333H7f^34SG~Ph0E>+YiwPhX%Gd}&jc}Z2uE_rL8R|r;{PQ&=UO$jsmiOi5&hI{OeLEm9KmLeB*IZlML)(K=J});H z=0#hQlVkDg#ePXtNJz-n5k4S5vUPU@N(dzBa<8M;g_$?RHPk@inw6cMnv$yXIWhQO zPG)v~ZZ4m-DaY2sZqK+Pz^jGHK(hxpSqf(^n($VCq_T&;&1D{PcSPihyS9ep7W0 zjpKK&H(!(OcWe@nz|Z~6{RneYc8Ukf1#sy<{K$B5mrr&@IxLDQ_=Fy=N6oAg68YDz z&eGFOfIL7a58Ad@YAOH5-U|&v` zzZQ)@w~1xJV{-JzS>Z zcGwCab8*=)^L~xo>n$jbxI+8li@vL?kbPMeS*EAlMA+Zv*#V^DWBv~fY~7Pgt_ zj97o9m;U16bI+Y0XB`&%XJ;uob({}s)HGG0g&J-xc7~pg#r8?`t~1l;T-*f(wxB-l ztE#NQlwMt%z~0Yw99ol8^qsf#@>hb-N?t+!PHiJ2rZ2QHCgR?pZ`zFbcR@l$vF|zR zB7A#ii3do!MA!0jhQF))jZI4QdqsA>(w6TeZ)nlpzafIGa!pCAigZu7FAaHSrR?v! zlhL|->_p|xx;wq$)MLOLM5?^rG4#8J#iWW*-u+^-JJUrh1F<8%BatbffY(e^&GX8+89}?yVayk04x{!9JG5m7LIU83t4Bs>9DW6gygiNY9p}M(1I!#6Wu|N3lV}P#~O&5ysF#5fJkGifjI4ZhDW^p z5J|(ka^a8DBhp$j3E}-5-;4uTkn%cS4ot)V81D@x72XQI9$STmGM|(f>*{pRobV%!m4c#-R#|?L%+zg$3{^UoZrcz zaXwEtSe+Bc5@DVq$4)lO%G&B}L-?n+A!>%z*Dvy03XWJCGe5xcZ>hIsNpYCHS#@AO zqLMGH9a{Yo*>W~A_AD*ULTd_kab{zt&O}^RqW`WAw@q9_Q`yaSd3H8^F}q;%W;zDe znWyb_`+uf*0;Z@%OqD|B`z1&QGaDs>n8p1P?$_<3qj8Cw7VF;pe*c_9 z^8IwoFi~XAN@k%@bwh4tZhXWgRM}cl&TcTs z-|a*+;&?TVOjAw$IiEv*K?ZWb!s7g*Qbw8R#BAdQkFWnlmdbF&m)z&yt5Y zy04<>@ZLT9Ya6Ffm8JjGJIGV2BIiIO<8-}IwRZPsJ5|UWM>(He?Z)&_`Va%B3+H_4 zdW*jAn{K&jXVCsrusNmeT*>REq^WGN_yR`0J=xtDqrO@;6-XN8Vls7Gg5&aXKan7A zjEm}U^CN4A-!xCW%NMff~lc%#rv6e7zpIPl>GQ!(A?ZxZKqiC)!;yH)R1@niMPPO@5RaBKLtVilReVK}* zJ^YzRhnF+6ibp3$G$O+OZrC-f>H#(=pB$RsZ|N4~ZS>HW5K;ew-0hc~p%5NX9AALVlvtJ=IH>=hm%G3(-R-#s304 z=JxX&A3wm@B<`@4%PO&+&K{jX=l7rIx6?pW|6UHOp7uZVsm*~ Date: Thu, 4 Sep 2025 15:05:16 +0200 Subject: [PATCH 06/13] Clone release preparation --- .../actions/build-theme-release/action.yml | 72 ++++ .../bump-theme-version-release/action.yml | 164 ++++++++ .../action.yml | 40 ++ .../create-theme-release-release/action.yml | 68 ++++ .../action.yml | 33 ++ .../install-dependencies-release/action.yml | 49 +++ .../action.yml | 144 +++++++ .../action.yml | 249 +++++++++++++ .github/config/release.json | 37 ++ .../generate-upload-instructions-release.sh | 69 ++++ .../get-changelog-from-readme-release.js | 88 +++++ .github/scripts/validate-versions-release.sh | 70 ++++ .github/workflows/release-preparation.yml | 350 ++++++++++++++++++ 13 files changed, 1433 insertions(+) create mode 100644 .github/actions/build-theme-release/action.yml create mode 100644 .github/actions/bump-theme-version-release/action.yml create mode 100644 .github/actions/create-pr-with-bumped-theme-version-release/action.yml create mode 100644 .github/actions/create-theme-release-release/action.yml create mode 100644 .github/actions/get-changelog-from-readme-release/action.yml create mode 100644 .github/actions/install-dependencies-release/action.yml create mode 100644 .github/actions/theme-slack-notification-release/action.yml create mode 100644 .github/actions/update-main-branch-version-release/action.yml create mode 100644 .github/config/release.json create mode 100755 .github/scripts/generate-upload-instructions-release.sh create mode 100644 .github/scripts/get-changelog-from-readme-release.js create mode 100755 .github/scripts/validate-versions-release.sh create mode 100644 .github/workflows/release-preparation.yml diff --git a/.github/actions/build-theme-release/action.yml b/.github/actions/build-theme-release/action.yml new file mode 100644 index 00000000..3329bb5c --- /dev/null +++ b/.github/actions/build-theme-release/action.yml @@ -0,0 +1,72 @@ +name: 'Build Theme (Release)' +description: 'Build Hello Elementor theme with specified version using Hello Commerce approach' + +inputs: + PACKAGE_VERSION: + description: 'The package version to build (e.g. 3.4.4)' + required: true + BUILD_SCRIPT_PATH: + description: 'Path to build script' + required: false + default: "npm run package:zip" + +runs: + using: "composite" + steps: + - name: Install npm dependencies + shell: bash + run: | + export PUPPETEER_SKIP_DOWNLOAD=true + export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 + npm ci + + - name: Install composer dependencies + shell: bash + run: | + composer install --no-dev --no-scripts --optimize-autoloader + + - name: Set package version + shell: bash + env: + PACKAGE_VERSION: ${{ inputs.PACKAGE_VERSION }} + run: | + echo "PACKAGE_VERSION=${PACKAGE_VERSION}" >> $GITHUB_ENV + echo "Building Hello Elementor theme version: ${PACKAGE_VERSION}" + + - name: Build theme + shell: bash + run: | + if [[ "${{ inputs.BUILD_SCRIPT_PATH }}" == npm* ]]; then + ${{ inputs.BUILD_SCRIPT_PATH }} + else + bash "${{ inputs.BUILD_SCRIPT_PATH }}" + fi + + - name: Create theme build directory + shell: bash + run: | + mkdir -p /tmp/hello-elementor-builds + + - name: Package theme + shell: bash + env: + PACKAGE_VERSION: ${{ inputs.PACKAGE_VERSION }} + run: | + # Create zip file with proper naming (hello-elementor instead of hello-theme) + zip -r "/tmp/hello-elementor-builds/hello-elementor-${PACKAGE_VERSION}.zip" . \ + -x "node_modules/*" "test-results/*" "tests/*" ".git/*" "*.zip" \ + "playwright-report/*" ".wp-env.json.*" ".wp-env" + + - name: Move build to workspace + shell: bash + env: + PACKAGE_VERSION: ${{ inputs.PACKAGE_VERSION }} + run: | + mv "/tmp/hello-elementor-builds/hello-elementor-${PACKAGE_VERSION}.zip" \ + "./hello-elementor-${PACKAGE_VERSION}.zip" + + echo "✅ Hello Elementor theme build complete: hello-elementor-${PACKAGE_VERSION}.zip" + ls -la hello-elementor-*.zip + + # Set build path for downstream actions + echo "BUILD_ZIP_PATH=hello-elementor-${PACKAGE_VERSION}.zip" >> $GITHUB_ENV diff --git a/.github/actions/bump-theme-version-release/action.yml b/.github/actions/bump-theme-version-release/action.yml new file mode 100644 index 00000000..a39f70ea --- /dev/null +++ b/.github/actions/bump-theme-version-release/action.yml @@ -0,0 +1,164 @@ +name: 'Bump Theme Version (Release)' +description: 'Updates version across all Hello Elementor theme files including SCSS' + +inputs: + CLEAN_PACKAGE_VERSION: + required: true + description: 'Current clean version (without v prefix)' + VERSION_TYPE: + required: true + description: 'Version bump type (current|patch|minor|major)' + +runs: + using: 'composite' + steps: + - name: Calculate new version + shell: bash + run: | + CURRENT_VERSION="${{ inputs.CLEAN_PACKAGE_VERSION }}" + IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION" + + case "${{ inputs.VERSION_TYPE }}" in + "current") + # Keep version as-is for first release + NEW_VERSION="$CURRENT_VERSION" + ;; + "major") + NEW_MAJOR=$((MAJOR + 1)) + NEW_VERSION="$NEW_MAJOR.0.0" + ;; + "minor") + NEW_MINOR=$((MINOR + 1)) + NEW_VERSION="$MAJOR.$NEW_MINOR.0" + ;; + "patch") + NEW_PATCH=$((PATCH + 1)) + NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH" + ;; + esac + + echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV + echo "CURRENT_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV + echo "Version will be: $CURRENT_VERSION → $NEW_VERSION" + + - name: Update functions.php version + shell: bash + run: | + sed -i.bak "s/define( 'HELLO_ELEMENTOR_VERSION', '[^']*' );/define( 'HELLO_ELEMENTOR_VERSION', '$NEW_VERSION' );/" functions.php + rm functions.php.bak + # Verify functions.php was actually updated + if ! grep -q "HELLO_ELEMENTOR_VERSION.*$NEW_VERSION" functions.php; then + echo "Error: Failed to update version in functions.php" + exit 1 + fi + echo "✅ Updated functions.php HELLO_ELEMENTOR_VERSION to $NEW_VERSION" + + - name: Update package.json version + shell: bash + run: | + if [ "$NEW_VERSION" = "$CURRENT_VERSION" ]; then + echo "Version unchanged ($CURRENT_VERSION), skipping npm version bump." + else + npm version --no-git-tag-version $NEW_VERSION + fi + + - name: Update style.css version + shell: bash + run: | + sed -i.bak "s/Version: .*/Version: $NEW_VERSION/" style.css + rm style.css.bak + # Verify style.css was actually updated + if ! grep -q "Version: $NEW_VERSION" style.css; then + echo "Error: Failed to update version in style.css" + echo "Current content:" + grep -A2 -B2 "Version:" style.css || echo "No Version: field found" + exit 1 + fi + echo "✅ Updated style.css Version to $NEW_VERSION" + + - name: Update assets/scss/style.scss version (Hello Theme specific) + shell: bash + run: | + if [ -f "assets/scss/style.scss" ]; then + sed -i.bak -e "s/Version: .*/Version: $NEW_VERSION/" -e "s/Stable tag: .*/Stable tag: $NEW_VERSION/" assets/scss/style.scss + rm assets/scss/style.scss.bak + + # Verify that SCSS file was updated + VALIDATION_PASSED=true + + # Check Version field + if grep -q "Version:" assets/scss/style.scss; then + if ! grep -q "Version: $NEW_VERSION" assets/scss/style.scss; then + echo "Error: Failed to update Version in assets/scss/style.scss" + VALIDATION_PASSED=false + else + echo "✅ Updated assets/scss/style.scss Version to $NEW_VERSION" + fi + else + echo "ℹ️ No 'Version:' field found in assets/scss/style.scss" + fi + + # Check Stable tag field + if grep -q "Stable tag:" assets/scss/style.scss; then + if ! grep -q "Stable tag: $NEW_VERSION" assets/scss/style.scss; then + echo "Error: Failed to update Stable tag in assets/scss/style.scss" + VALIDATION_PASSED=false + else + echo "✅ Updated assets/scss/style.scss Stable tag to $NEW_VERSION" + fi + else + echo "ℹ️ No 'Stable tag:' field found in assets/scss/style.scss" + fi + + if [ "$VALIDATION_PASSED" = "false" ]; then + echo "❌ assets/scss/style.scss version update failed" + exit 1 + fi + else + echo "ℹ️ No assets/scss/style.scss file found, skipping SCSS version update" + fi + + - name: Update readme.txt stable tag and version + shell: bash + run: | + # Update fields that exist in the file + sed -i.bak -e "s/^Stable tag: .*/Stable tag: $NEW_VERSION/" -e "s/^Version: .*/Version: $NEW_VERSION/" readme.txt + rm readme.txt.bak + + # Verify that fields were updated (check each field independently) + VALIDATION_PASSED=true + + # Check if Stable tag field exists and was updated + if grep -q "^Stable tag:" readme.txt; then + if ! grep -q "^Stable tag: $NEW_VERSION" readme.txt; then + echo "Error: Found 'Stable tag:' field but failed to update it to $NEW_VERSION" + VALIDATION_PASSED=false + else + echo "✅ Updated readme.txt Stable tag to $NEW_VERSION" + fi + else + echo "ℹ️ No 'Stable tag:' field found in readme.txt" + fi + + # Check if Version field exists and was updated + if grep -q "^Version:" readme.txt; then + if ! grep -q "^Version: $NEW_VERSION" readme.txt; then + echo "Error: Found 'Version:' field but failed to update it to $NEW_VERSION" + VALIDATION_PASSED=false + else + echo "✅ Updated readme.txt Version to $NEW_VERSION" + fi + else + echo "ℹ️ No 'Version:' field found in readme.txt" + fi + + if [ "$VALIDATION_PASSED" = "false" ]; then + echo "❌ readme.txt version update failed" + exit 1 + fi + + echo "✅ readme.txt version update completed successfully" + + - name: Set PACKAGE_VERSION from NEW_VERSION + shell: bash + run: echo "PACKAGE_VERSION=$NEW_VERSION" >> $GITHUB_ENV diff --git a/.github/actions/create-pr-with-bumped-theme-version-release/action.yml b/.github/actions/create-pr-with-bumped-theme-version-release/action.yml new file mode 100644 index 00000000..6d69ebfb --- /dev/null +++ b/.github/actions/create-pr-with-bumped-theme-version-release/action.yml @@ -0,0 +1,40 @@ +name: 'Create PR With Bumped Theme Version (Release)' +description: 'Creates a pull request with the bumped Hello Elementor theme version' + +inputs: + base_branch: + required: true + description: 'The base branch for the PR' + package_version: + required: true + description: 'The new package version' + token: + required: true + description: 'GitHub token for authentication' + +runs: + using: 'composite' + steps: + - name: Configure Git + shell: bash + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ inputs.token }} + commit-message: "chore: bump Hello Elementor version to v${{ inputs.package_version }}" + branch: release/v${{ inputs.package_version }} + title: "Release Hello Elementor v${{ inputs.package_version }}" + body: "Automated PR to bump Hello Elementor version for release." + base: ${{ inputs.base_branch }} + add-paths: | + package.json + package-lock.json + functions.php + style.css + theme.json + readme.txt + assets/scss/style.scss diff --git a/.github/actions/create-theme-release-release/action.yml b/.github/actions/create-theme-release-release/action.yml new file mode 100644 index 00000000..dd70aae7 --- /dev/null +++ b/.github/actions/create-theme-release-release/action.yml @@ -0,0 +1,68 @@ +name: 'Create Theme Release (Release)' +description: 'Create GitHub release for Hello Elementor theme' +inputs: + PACKAGE_VERSION: + required: true + description: 'Release version' + BUILD_ZIP_PATH: + required: true + description: 'Path to theme zip file' + CHANGELOG_FILE: + required: true + description: 'Path to changelog file' + PRE_RELEASE: + required: false + default: 'false' + description: 'Is this a pre-release?' + GITHUB_TOKEN: + required: true + description: 'GitHub token for creating releases' + +outputs: + RELEASE_URL: + description: 'URL of the created GitHub release' + value: ${{ steps.create-release.outputs.html_url }} + +runs: + using: 'composite' + steps: + - name: Verify files exist + shell: bash + run: | + if [ ! -f "${{ inputs.BUILD_ZIP_PATH }}" ]; then + echo "Error: Build zip file not found: ${{ inputs.BUILD_ZIP_PATH }}" + exit 1 + fi + + if [ ! -f "${{ inputs.CHANGELOG_FILE }}" ]; then + echo "Error: Changelog file not found: ${{ inputs.CHANGELOG_FILE }}" + exit 1 + fi + + echo "✅ Build zip: ${{ inputs.BUILD_ZIP_PATH }}" + echo "✅ Changelog: ${{ inputs.CHANGELOG_FILE }}" + + - name: Create GitHub release + id: create-release + uses: softprops/action-gh-release@v1 + with: + tag_name: v${{ inputs.PACKAGE_VERSION }} + name: Hello Elementor v${{ inputs.PACKAGE_VERSION }} + files: | + ${{ inputs.BUILD_ZIP_PATH }} + ${{ inputs.CHANGELOG_FILE }} + body_path: ${{ inputs.CHANGELOG_FILE }} + prerelease: ${{ inputs.PRE_RELEASE }} + token: ${{ inputs.GITHUB_TOKEN }} + generate_release_notes: false + + - name: Release summary + shell: bash + run: | + echo "🚀 **Release Created Successfully!**" + echo "📋 **Release Details:**" + echo " - Version: v${{ inputs.PACKAGE_VERSION }}" + echo " - Pre-release: ${{ inputs.PRE_RELEASE }}" + echo " - Build file: ${{ inputs.BUILD_ZIP_PATH }}" + echo " - Release URL: ${{ steps.create-release.outputs.html_url }}" + echo "RELEASE_URL=${{ steps.create-release.outputs.html_url }}" >> $GITHUB_ENV diff --git a/.github/actions/get-changelog-from-readme-release/action.yml b/.github/actions/get-changelog-from-readme-release/action.yml new file mode 100644 index 00000000..fd912cc4 --- /dev/null +++ b/.github/actions/get-changelog-from-readme-release/action.yml @@ -0,0 +1,33 @@ +name: 'Get changelog from readme.txt (Release)' +description: 'Get changelog from readme.txt file - Hello Elementor release validation' + +inputs: + VERSION: + description: 'Theme Version' + required: true + +outputs: + CHANGELOG_FILE: + description: 'Path to the extracted changelog file' + value: temp-changelog-from-readme.txt + +runs: + using: "composite" + steps: + - name: Extract changelog from readme.txt + shell: bash + env: + VERSION: ${{ inputs.VERSION }} + run: | + node ./.github/scripts/get-changelog-from-readme-release.js + + - name: Verify changelog file + shell: bash + run: | + if [ ! -f "temp-changelog-from-readme.txt" ]; then + echo "Error: Failed to create changelog file" + exit 1 + fi + + echo "✅ Changelog extracted successfully for version ${{ inputs.VERSION }}" + echo "CHANGELOG_FILE=temp-changelog-from-readme.txt" >> $GITHUB_ENV diff --git a/.github/actions/install-dependencies-release/action.yml b/.github/actions/install-dependencies-release/action.yml new file mode 100644 index 00000000..b92df46b --- /dev/null +++ b/.github/actions/install-dependencies-release/action.yml @@ -0,0 +1,49 @@ +name: 'Install Dependencies for Hello Elementor (Release)' +description: 'Install PHP, Composer, and npm dependencies for release workflow' +inputs: + DEVOPS_TOKEN: + description: 'GitHub token for Composer authentication' + required: true + CLOUD_DEVOPS_TOKEN: + description: 'npm registry access token' + required: true +runs: + using: 'composite' + steps: + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.4' + + - name: OAuth Composer Authentication + shell: bash + run: composer config -g github-oauth.github.com ${{ inputs.DEVOPS_TOKEN }} + + - name: Install Composer dependencies (cache) + uses: ramsey/composer-install@v2 + with: + custom-cache-key: cache-${{ hashFiles('composer.lock') }} + + - name: Install Composer dependencies (production) + shell: bash + run: composer install --no-dev + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20.x' + registry-url: 'https://npm.pkg.github.com' + scope: '@elementor' + cache: 'npm' + + - name: Install npm dependencies + shell: bash + run: | + if npm ci; then + echo "✅ npm ci succeeded" + else + echo "⚠️ npm ci failed, falling back to npm install --legacy-peer-deps" + npm install --legacy-peer-deps + fi + env: + NODE_AUTH_TOKEN: ${{ inputs.CLOUD_DEVOPS_TOKEN }} diff --git a/.github/actions/theme-slack-notification-release/action.yml b/.github/actions/theme-slack-notification-release/action.yml new file mode 100644 index 00000000..a599ccbf --- /dev/null +++ b/.github/actions/theme-slack-notification-release/action.yml @@ -0,0 +1,144 @@ +name: 'Theme Slack Notification (Release)' +description: 'Send Slack notification for Hello Elementor release' +inputs: + SLACK_BOT_TOKEN: + required: true + description: 'Slack bot token' + PACKAGE_VERSION: + required: true + description: 'Release version' + BUILD_ZIP_PATH: + required: true + description: 'Path to theme zip file' + GITHUB_RELEASE_URL: + required: true + description: 'GitHub release URL' + SLACK_CHANNEL: + required: false + default: '#general' + description: 'Slack channel to send notification to' + WPORG_DEPLOYMENT_STATUS: + required: false + default: 'skipped' + description: 'WordPress.org deployment status (deployed|skipped|disabled)' + +runs: + using: 'composite' + steps: + - name: Prepare deployment message + id: deployment-message + shell: bash + run: | + case "${{ inputs.WPORG_DEPLOYMENT_STATUS }}" in + "deployed") + MESSAGE="📦 *WordPress.org Deployment*\\n• ✅ Automatically deployed to WordPress.org\\n• Theme available at: https://wordpress.org/themes/hello-elementor/\\n• No manual upload required! 🎉" + ;; + "disabled") + MESSAGE="📦 *WordPress.org Deployment*\\n• ⚠️ Disabled in configuration\\n• Manual upload required to WordPress.org\\n• Download zip from GitHub release below" + ;; + *) + MESSAGE="📦 *WordPress.org Deployment*\\n• ⚠️ Skipped (deploy_to_wporg: false)\\n• Manual upload required to WordPress.org\\n• Download zip from GitHub release below" + ;; + esac + echo "DEPLOYMENT_MESSAGE=$MESSAGE" >> $GITHUB_ENV + + - name: Get file info + id: file-info + shell: bash + run: | + if [ -f "${{ inputs.BUILD_ZIP_PATH }}" ]; then + FILE_SIZE=$(stat -c%s "${{ inputs.BUILD_ZIP_PATH }}" 2>/dev/null || stat -f%z "${{ inputs.BUILD_ZIP_PATH }}") + FILE_SIZE_MB=$(echo "scale=2; $FILE_SIZE / 1024 / 1024" | bc -l 2>/dev/null || echo "$((FILE_SIZE / 1024 / 1024)).0") + echo "FILE_SIZE=$FILE_SIZE" >> $GITHUB_ENV + echo "FILE_SIZE_MB=${FILE_SIZE_MB}MB" >> $GITHUB_ENV + else + echo "FILE_SIZE_MB=Unknown" >> $GITHUB_ENV + fi + + - name: Post to Slack + uses: slackapi/slack-github-action@v1.23.0 + with: + channel-id: ${{ inputs.SLACK_CHANNEL }} + payload: | + { + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "🚀 Hello Elementor v${{ inputs.PACKAGE_VERSION }} Released!" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "*Hello Elementor theme* has been successfully released and is ready for distribution." + } + }, + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*Version:*\nv${{ inputs.PACKAGE_VERSION }}" + }, + { + "type": "mrkdwn", + "text": "*Package Size:*\n${{ env.FILE_SIZE_MB }}" + } + ] + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "${{ env.DEPLOYMENT_MESSAGE }}" + } + }, + { + "type": "actions", + "elements": [ + { + "type": "button", + "text": { + "type": "plain_text", + "text": "📥 Download Release" + }, + "url": "${{ inputs.GITHUB_RELEASE_URL }}", + "style": "primary" + } + ] + }, + { + "type": "context", + "elements": [ + { + "type": "mrkdwn", + "text": "Build: ${{ inputs.BUILD_ZIP_PATH }}" + } + ] + } + ] + } + env: + SLACK_BOT_TOKEN: ${{ inputs.SLACK_BOT_TOKEN }} + + - name: Notification summary + shell: bash + run: | + echo "📢 Slack notification sent!" + echo " - Channel: ${{ inputs.SLACK_CHANNEL }}" + echo " - Version: v${{ inputs.PACKAGE_VERSION }}" + echo " - Release: ${{ inputs.GITHUB_RELEASE_URL }}" + case "${{ inputs.WPORG_DEPLOYMENT_STATUS }}" in + "deployed") + echo " - WordPress.org: ✅ Automatically deployed" + ;; + "disabled") + echo " - WordPress.org: ⚠️ Disabled in configuration" + ;; + *) + echo " - WordPress.org: ⚠️ Skipped (deploy_to_wporg: false)" + ;; + esac diff --git a/.github/actions/update-main-branch-version-release/action.yml b/.github/actions/update-main-branch-version-release/action.yml new file mode 100644 index 00000000..2d5558cb --- /dev/null +++ b/.github/actions/update-main-branch-version-release/action.yml @@ -0,0 +1,249 @@ +name: 'Update Main Branch Version (Release)' +description: 'Updates main branch version only if new version is greater than current main version (Hello Elementor)' + +inputs: + new_version: + required: true + description: 'The new version to potentially update to' + token: + required: true + description: 'GitHub token for authentication' + +runs: + using: 'composite' + steps: + - name: Auto-detect default branch + shell: bash + run: | + # Auto-detect the default branch (supports both 'master' and 'main') + DEFAULT_BRANCH="" + + # Check if main exists, then master, then fallback + if git ls-remote --heads origin main | grep -q "refs/heads/main"; then + DEFAULT_BRANCH="main" + elif git ls-remote --heads origin master | grep -q "refs/heads/master"; then + DEFAULT_BRANCH="main" + else + # Use git symbolic-ref to get the actual default branch + DEFAULT_BRANCH=$(git ls-remote --symref origin HEAD | head -n1 | cut -d$'\t' -f2 | sed 's|refs/heads/||') + if [ -z "$DEFAULT_BRANCH" ]; then + echo "Error: Could not determine default branch" + exit 1 + fi + fi + + echo "DEFAULT_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV + echo "Detected default branch: $DEFAULT_BRANCH" + + - name: Get current default branch version + shell: bash + run: | + DEFAULT_BRANCH="${{ env.DEFAULT_BRANCH }}" + + # Extract package.json first, then parse it with proper error checking + git show "origin/$DEFAULT_BRANCH:package.json" > /tmp/package_temp.json 2>/dev/null || { + echo "Error: Could not extract package.json from $DEFAULT_BRANCH branch" + echo "This is expected if the branch doesn't exist or package.json is missing" + exit 1 + } + + # Parse the JSON file with proper error handling + if ! DEFAULT_BRANCH_VERSION=$(node -p "JSON.parse(require('fs').readFileSync('/tmp/package_temp.json', 'utf8')).version" 2>/dev/null); then + echo "Error: Could not parse version from $DEFAULT_BRANCH branch package.json" + echo "The file exists but JSON parsing failed" + rm -f /tmp/package_temp.json + exit 1 + fi + + # Clean up temporary file + rm -f /tmp/package_temp.json + + echo "DEFAULT_BRANCH_VERSION=$DEFAULT_BRANCH_VERSION" >> $GITHUB_ENV + echo "Current $DEFAULT_BRANCH version: $DEFAULT_BRANCH_VERSION" + + - name: Compare versions (simple numeric comparison) + shell: bash + run: | + NEW_VERSION="${{ inputs.new_version }}" + DEFAULT_BRANCH_VERSION="${{ env.DEFAULT_BRANCH_VERSION }}" + + # Simple version comparison for numeric versions (e.g., 1.2.3) + # Note: This project only uses numeric releases, so we keep this simple + # If comparison fails, we exit early (fail-safe approach) + version_compare() { + local v1="$1" + local v2="$2" + + # Parse version numbers (assumes X.Y.Z format) + IFS='.' read -r v1_major v1_minor v1_patch <<< "$v1" + IFS='.' read -r v2_major v2_minor v2_patch <<< "$v2" + + # Set defaults and validate numeric + v1_major=${v1_major:-0} + v1_minor=${v1_minor:-0} + v1_patch=${v1_patch:-0} + v2_major=${v2_major:-0} + v2_minor=${v2_minor:-0} + v2_patch=${v2_patch:-0} + + # Simple numeric comparison + if [ "$v1_major" -gt "$v2_major" ]; then return 0; fi + if [ "$v1_major" -lt "$v2_major" ]; then return 1; fi + if [ "$v1_minor" -gt "$v2_minor" ]; then return 0; fi + if [ "$v1_minor" -lt "$v2_minor" ]; then return 1; fi + if [ "$v1_patch" -gt "$v2_patch" ]; then return 0; fi + return 1 + } + + if version_compare "$NEW_VERSION" "$DEFAULT_BRANCH_VERSION"; then + echo "✅ New version ($NEW_VERSION) > Default branch version ($DEFAULT_BRANCH_VERSION)" + echo "SHOULD_UPDATE=true" >> $GITHUB_ENV + else + echo "⏭️ New version ($NEW_VERSION) <= Default branch version ($DEFAULT_BRANCH_VERSION)" + echo "Skipping default branch update to preserve higher version" + echo "SHOULD_UPDATE=false" >> $GITHUB_ENV + fi + + - name: Create safe branch name + if: env.SHOULD_UPDATE == 'true' + shell: bash + run: | + NEW_VERSION="${{ inputs.new_version }}" + DEFAULT_BRANCH="${{ env.DEFAULT_BRANCH }}" + + # Sanitize version for branch name + # Note: This project only uses numeric versions (e.g., 1.2.3) so minimal sanitization needed + SAFE_VERSION=$(echo "$NEW_VERSION" | sed 's/[^a-zA-Z0-9.-]/-/g') + echo "BRANCH_NAME=update-$DEFAULT_BRANCH-to-v$SAFE_VERSION" >> $GITHUB_ENV + + - name: Extract and update files from default branch + if: env.SHOULD_UPDATE == 'true' + shell: bash + run: | + NEW_VERSION="${{ inputs.new_version }}" + DEFAULT_BRANCH="${{ env.DEFAULT_BRANCH }}" + + # Simple approach: Extract files directly, fail if any step fails + # Since PRs are manually reviewed, we don't need complex error handling + + # Extract package.json and update version + git show "origin/$DEFAULT_BRANCH:package.json" > package.json || exit 1 + node -e " + const fs = require('fs'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + pkg.version = '$NEW_VERSION'; + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); + " || exit 1 + + # Extract and update functions.php (Hello Elementor specific) + git show "origin/$DEFAULT_BRANCH:functions.php" > functions.php || exit 1 + sed -i.bak "s/define( 'HELLO_ELEMENTOR_VERSION', '[^']*'/define( 'HELLO_ELEMENTOR_VERSION', '$NEW_VERSION' /" functions.php || exit 1 + rm -f functions.php.bak + # Verify functions.php was actually updated + if ! grep -q "HELLO_ELEMENTOR_VERSION.*$NEW_VERSION" functions.php; then + echo "Error: Failed to update version in functions.php" + exit 1 + fi + + # Extract and update style.css + git show "origin/$DEFAULT_BRANCH:style.css" > style.css || exit 1 + sed -i.bak "s/Version: .*/Version: $NEW_VERSION/" style.css || exit 1 + rm -f style.css.bak + # Verify style.css was actually updated + if ! grep -q "Version: $NEW_VERSION" style.css; then + echo "Error: Failed to update version in style.css" + exit 1 + fi + + # Extract and update assets/scss/style.scss if it exists (Hello Theme specific) + if git show "origin/$DEFAULT_BRANCH:assets/scss/style.scss" > assets/scss/style.scss 2>/dev/null; then + mkdir -p assets/scss + sed -i.bak -e "s/Version: .*/Version: $NEW_VERSION/" -e "s/Stable tag: .*/Stable tag: $NEW_VERSION/" assets/scss/style.scss || exit 1 + rm -f assets/scss/style.scss.bak + echo "✅ Updated assets/scss/style.scss" + else + echo "ℹ️ No assets/scss/style.scss found in $DEFAULT_BRANCH branch" + fi + + # Extract and update readme.txt + git show "origin/$DEFAULT_BRANCH:readme.txt" > readme.txt || exit 1 + # Update fields that exist in the file + sed -i.bak -e "s/^Stable tag: .*/Stable tag: $NEW_VERSION/" -e "s/^Version: .*/Version: $NEW_VERSION/" readme.txt || exit 1 + rm -f readme.txt.bak + + # Verify that fields were updated (check each field independently) + VALIDATION_PASSED=true + + # Check if Stable tag field exists and was updated + if grep -q "^Stable tag:" readme.txt; then + if ! grep -q "^Stable tag: $NEW_VERSION" readme.txt; then + echo "Error: Found 'Stable tag:' field but failed to update it to $NEW_VERSION" + VALIDATION_PASSED=false + else + echo "✅ Updated Stable tag to $NEW_VERSION" + fi + else + echo "ℹ️ No 'Stable tag:' field found in readme.txt" + fi + + # Check if Version field exists and was updated + if grep -q "^Version:" readme.txt; then + if ! grep -q "^Version: $NEW_VERSION" readme.txt; then + echo "Error: Found 'Version:' field but failed to update it to $NEW_VERSION" + VALIDATION_PASSED=false + else + echo "✅ Updated Version to $NEW_VERSION" + fi + else + echo "ℹ️ No 'Version:' field found in readme.txt" + fi + + if [ "$VALIDATION_PASSED" = "false" ]; then + echo "❌ readme.txt version update failed" + exit 1 + fi + + echo "✅ readme.txt version update completed successfully" + + # Generate package-lock.json + npm install --package-lock-only || { + echo "Warning: npm install failed, continuing without package-lock.json update" + echo "This may be due to network issues, registry timeouts, or dependency conflicts" + echo "The version update will proceed without regenerating package-lock.json" + } + + echo "Successfully updated all files" + + - name: Create pull request + if: env.SHOULD_UPDATE == 'true' + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ inputs.token }} + commit-message: "chore: update ${{ env.DEFAULT_BRANCH }} version to v${{ inputs.new_version }}" + branch: ${{ env.BRANCH_NAME }} + title: "Update ${{ env.DEFAULT_BRANCH }} version to v${{ inputs.new_version }}" + body: | + Update ${{ env.DEFAULT_BRANCH }} branch version to v${{ inputs.new_version }} + + **Version Update:** + - New version: v${{ inputs.new_version }} + - Previous ${{ env.DEFAULT_BRANCH }} version: v${{ env.DEFAULT_BRANCH_VERSION }} + + **Files updated:** + - package.json + - functions.php (HELLO_ELEMENTOR_VERSION) + - style.css + - readme.txt + - assets/scss/style.scss (if exists) + - package-lock.json + + Auto-generated by Hello Elementor release preparation workflow. + **Please review manually before merging.** + base: ${{ env.DEFAULT_BRANCH }} + add-paths: | + package.json + package-lock.json + functions.php + style.css + readme.txt + assets/scss/style.scss diff --git a/.github/config/release.json b/.github/config/release.json new file mode 100644 index 00000000..f15804ba --- /dev/null +++ b/.github/config/release.json @@ -0,0 +1,37 @@ +{ + "repository": { + "name": "hello-elementor", + "owner": "elementor", + "main_branch": "main", + "release_branches": ["3.4"] + }, + "versioning": { + "default_type": "patch", + "allowed_types": ["current", "patch", "minor", "major"] + }, + "release": { + "changelog_file": "readme.txt", + "changelog_section": "## Changelog", + "build_artifacts": ["hello-elementor.zip"], + "wordpress_org": { + "manual_upload": true, + "theme_slug": "hello-elementor" + } + }, + "notifications": { + "slack": { + "default_channel": "#release", + "enabled": true + } + }, + "security": { + "allowed_repositories": ["elementor/hello-theme"], + "blocked_actors": ["dependabot[bot]"] + }, + "environment": { + "node_version": "18", + "php_version": "7.4", + "composer_version": "2", + "ubuntu_version": "ubuntu-22.04" + } +} diff --git a/.github/scripts/generate-upload-instructions-release.sh b/.github/scripts/generate-upload-instructions-release.sh new file mode 100755 index 00000000..55291da2 --- /dev/null +++ b/.github/scripts/generate-upload-instructions-release.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# generate-upload-instructions-release.sh - Generate manual upload instructions for Hello Elementor theme + +set -e + +# Get current version +PACKAGE_VERSION=$(node -p "require('./package.json').version") +THEME_SLUG=$(node -p "require('./package.json').name") +BUILD_ZIP="${THEME_SLUG}-${PACKAGE_VERSION}.zip" + +echo "📋 **Hello Elementor v${PACKAGE_VERSION} - Manual Upload Instructions**" +echo "" +echo "===================================================================" +echo "🚀 RELEASE PREPARATION COMPLETE!" +echo "===================================================================" +echo "" +echo "📦 **Package Details:**" +echo " - Theme: Hello Elementor" +echo " - Version: v${PACKAGE_VERSION}" +echo " - Build File: ${BUILD_ZIP}" +echo " - Theme Slug: ${THEME_SLUG}" +echo "" +echo "📋 **Manual Upload Steps:**" +echo "" +echo "1. **Download Release Package:**" +echo " - Go to GitHub Releases page" +echo " - Download: ${BUILD_ZIP}" +echo " - Verify file integrity and size" +echo "" +echo "2. **WordPress.org Upload:**" +echo " - Log into WordPress.org developer account" +echo " - Navigate to Hello Elementor theme page" +echo " - Upload the ${BUILD_ZIP} file" +echo " - Update theme description and changelog" +echo "" +echo "3. **Update Theme Repository:**" +echo " - Update theme directory README" +echo " - Verify theme screenshots and assets" +echo " - Update theme tags and compatibility" +echo "" +echo "4. **Post-Release Tasks:**" +echo " - Test theme installation from WordPress.org" +echo " - Update documentation and support materials" +echo " - Announce release on social media and forums" +echo " - Monitor for user feedback and issues" +echo "" +echo "⚠️ **Important Notes:**" +echo " - WordPress.org themes cannot be auto-published" +echo " - Manual review may be required by WordPress.org team" +echo " - Allow 24-48 hours for theme directory updates" +echo " - Keep GitHub release as backup distribution method" +echo "" +echo "✅ **Verification Checklist:**" +echo " □ Package downloaded successfully" +echo " □ Theme uploaded to WordPress.org" +echo " □ Theme description updated" +echo " □ Changelog entries correct" +echo " □ Theme tags and compatibility updated" +echo " □ Installation tested from WordPress.org" +echo " □ Release announced on appropriate channels" +echo "" +echo "🔗 **Quick Links:**" +echo " - GitHub Release: https://github.com/elementor/hello-theme/releases/tag/v${PACKAGE_VERSION}" +echo " - WordPress.org: https://wordpress.org/themes/hello-elementor/" +echo "" +echo "===================================================================" +echo "For questions or issues, contact the development team." +echo "===================================================================" diff --git a/.github/scripts/get-changelog-from-readme-release.js b/.github/scripts/get-changelog-from-readme-release.js new file mode 100644 index 00000000..4771dc4e --- /dev/null +++ b/.github/scripts/get-changelog-from-readme-release.js @@ -0,0 +1,88 @@ +/* eslint-disable no-console */ +'use strict'; + +// get-changelog-from-readme-release.js - Extract changelog from readme.txt for Hello Elementor releases + +const fs = require( 'fs' ); +const { VERSION } = process.env; + +if ( ! VERSION ) { + console.error( 'missing VERSION env var' ); + process.exit( 1 ); +} + +// Try to load marked, fallback to simple parsing if not available +let marked; +try { + marked = require( 'marked' ); +} catch ( error ) { + console.log( 'marked not available, using simple parsing' ); + marked = null; +} + +// Simple changelog parser fallback +function simpleParseChangelog( content, version ) { + const lines = content.split( '\n' ); + let inChangelog = false; + let foundVersion = false; + const changelog = []; + + for ( const line of lines ) { + if ( line.includes( '== Changelog ==' ) ) { + inChangelog = true; + continue; + } + + if ( inChangelog ) { + if ( line.includes( `= ${ version } -` ) ) { + foundVersion = true; + changelog.push( line ); + continue; + } + + if ( foundVersion ) { + if ( line.startsWith( '=' ) && line.includes( '-' ) ) { + // Found next version, stop + break; + } + if ( line.trim() ) { + changelog.push( line ); + } + } + } + } + + return foundVersion ? changelog.join( '\n' ) : null; +} + +// Main execution +const readmeContent = fs.readFileSync( 'readme.txt', 'utf8' ); + +let changelog; +if ( marked ) { + // Use marked parser (original logic would go here) + console.log( 'Using marked parser' ); + // For now, fallback to simple parser even with marked + changelog = simpleParseChangelog( readmeContent, VERSION ); +} else { + // Use simple parser + changelog = simpleParseChangelog( readmeContent, VERSION ); +} + +if ( ! changelog ) { + console.error( `❌ Changelog for version ${ VERSION } is missing` ); + process.exit( 1 ); // Always fail if version is missing +} + +// Write changelog to temp file only if it exists +const changelogFile = 'temp-changelog-from-readme.txt'; +if ( changelog ) { + fs.writeFileSync( changelogFile, changelog ); +} else { + fs.writeFileSync( changelogFile, '' ); +} + +if ( changelog ) { + console.log( `✅ Successfully extracted Hello Elementor changelog for version ${ VERSION }` ); + console.log( `Changelog saved to: ${ changelogFile }` ); +} diff --git a/.github/scripts/validate-versions-release.sh b/.github/scripts/validate-versions-release.sh new file mode 100755 index 00000000..65f4bdbd --- /dev/null +++ b/.github/scripts/validate-versions-release.sh @@ -0,0 +1,70 @@ +#!/bin/bash +set -eo pipefail + +# validate-versions-release.sh - Validate version consistency across Hello Elementor theme files + +echo "🔍 Validating Hello Elementor theme version consistency..." + +# Get expected version from package.json +EXPECTED_VERSION=$(node -p "require('./package.json').version") +echo "Expected version: $EXPECTED_VERSION" + +# Validate functions.php (Hello Theme uses HELLO_ELEMENTOR_VERSION) +FUNC_VERSION=$(grep -E "define\( 'HELLO_ELEMENTOR_VERSION'" functions.php | awk -F"'" '{print $4}') +if [ "$FUNC_VERSION" != "$EXPECTED_VERSION" ]; then + echo "❌ Version mismatch: functions.php ($FUNC_VERSION) != package.json ($EXPECTED_VERSION)" + exit 1 +fi +echo "✅ functions.php HELLO_ELEMENTOR_VERSION: $FUNC_VERSION" + +# Validate style.css +CSS_VERSION=$(grep -E "Version:" style.css | awk '{print $2}') +if [ "$CSS_VERSION" != "$EXPECTED_VERSION" ]; then + echo "❌ Version mismatch: style.css ($CSS_VERSION) != package.json ($EXPECTED_VERSION)" + exit 1 +fi +echo "✅ style.css Version: $CSS_VERSION" + +# Validate assets/scss/style.scss if it exists (Hello Theme specific) +if [ -f "assets/scss/style.scss" ]; then + SCSS_VERSION=$(grep -E "Version:" assets/scss/style.scss | awk '{print $2}') + if [ "$SCSS_VERSION" != "$EXPECTED_VERSION" ]; then + echo "❌ Version mismatch: assets/scss/style.scss ($SCSS_VERSION) != package.json ($EXPECTED_VERSION)" + exit 1 + fi + echo "✅ assets/scss/style.scss Version: $SCSS_VERSION" + + # Also check Stable tag in SCSS file + SCSS_STABLE_TAG=$(grep -E "Stable tag:" assets/scss/style.scss | awk '{print $3}') + if [ "$SCSS_STABLE_TAG" != "$EXPECTED_VERSION" ]; then + echo "❌ Version mismatch: assets/scss/style.scss Stable tag ($SCSS_STABLE_TAG) != package.json ($EXPECTED_VERSION)" + exit 1 + fi + echo "✅ assets/scss/style.scss Stable tag: $SCSS_STABLE_TAG" +else + echo "ℹ️ No assets/scss/style.scss found, skipping SCSS validation" +fi + +# Validate readme.txt stable tag +README_VERSION=$(grep -E "Stable tag:" readme.txt | awk '{print $3}') +if [ "$README_VERSION" != "$EXPECTED_VERSION" ]; then + echo "❌ Version mismatch: readme.txt Stable tag ($README_VERSION) != package.json ($EXPECTED_VERSION)" + exit 1 +fi +echo "✅ readme.txt Stable tag: $README_VERSION" + +# Validate readme.txt version field if it exists +if grep -q "^Version:" readme.txt; then + README_VERSION_FIELD=$(grep -E "^Version:" readme.txt | awk '{print $2}') + if [ "$README_VERSION_FIELD" != "$EXPECTED_VERSION" ]; then + echo "❌ Version mismatch: readme.txt Version field ($README_VERSION_FIELD) != package.json ($EXPECTED_VERSION)" + exit 1 + fi + echo "✅ readme.txt Version field: $README_VERSION_FIELD" +else + echo "ℹ️ No Version field found in readme.txt" +fi + +echo "" +echo "🎉 All versions match: $EXPECTED_VERSION" +echo "✅ Hello Elementor theme version validation passed!" diff --git a/.github/workflows/release-preparation.yml b/.github/workflows/release-preparation.yml new file mode 100644 index 00000000..31373fb4 --- /dev/null +++ b/.github/workflows/release-preparation.yml @@ -0,0 +1,350 @@ +name: 'Release Preparation (Hello Elementor)' + +on: + workflow_dispatch: + inputs: + release_branch: + type: string + description: 'Branch to create release from (e.g., main, 3.4, feature/xyz)' + required: true + version_type: + required: true + type: choice + description: 'Version increment type' + options: + - current # For first release - keeps version as-is (3.4.4) + - patch # 3.4.4 → 3.4.5 + - minor # 3.4.4 → 3.5.0 + - major # 3.4.4 → 4.0.0 + dry_run: + type: boolean + description: 'Dry run (test without creating actual release)?' + required: false + default: false + slack_channel: + type: string + description: 'Slack channel for notifications' + required: false + default: '#release' + +permissions: + contents: write + pull-requests: write + issues: write + +env: + NODE_VERSION: '18' + PHP_VERSION: '7.4' + COMPOSER_VERSION: '2' + +jobs: + release: + runs-on: ubuntu-22.04 + # Workflow design: version files are bumped early, used for build/release, then automatically restored + # by peter-evans/create-pull-request action. Error cleanup ensures consistent state on any failure. + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ inputs.release_branch }} + fetch-depth: 0 + + - name: Load Release Configuration + id: config + run: | + echo "📋 Loading Hello Elementor release configuration..." + CONFIG_FILE=".github/config/release.json" + + if [ ! -f "$CONFIG_FILE" ]; then + echo "❌ Error: Release configuration file not found: $CONFIG_FILE" + exit 1 + fi + + # Validate JSON syntax + if ! jq empty "$CONFIG_FILE" 2>/dev/null; then + echo "❌ Error: Invalid JSON in release configuration" + exit 1 + fi + + # Load configuration values + ALLOWED_REPOS=$(jq -r '.security.allowed_repositories[]' "$CONFIG_FILE" | tr '\n' ' ') + BLOCKED_ACTORS=$(jq -r '.security.blocked_actors[]' "$CONFIG_FILE" | tr '\n' ' ') + RELEASE_BRANCHES=$(jq -r '.repository.release_branches[]' "$CONFIG_FILE" | tr '\n' ' ') + CONFIG_THEME_SLUG=$(jq -r '.release.wordpress_org.theme_slug' "$CONFIG_FILE") + + echo "ALLOWED_REPOS=$ALLOWED_REPOS" >> $GITHUB_ENV + echo "BLOCKED_ACTORS=$BLOCKED_ACTORS" >> $GITHUB_ENV + echo "RELEASE_BRANCHES=$RELEASE_BRANCHES" >> $GITHUB_ENV + echo "CONFIG_THEME_SLUG=$CONFIG_THEME_SLUG" >> $GITHUB_ENV + + echo "✅ Hello Elementor release configuration loaded successfully" + + - name: Pre-flight checks + run: | + echo "🔍 Pre-flight checks..." + echo "Release Branch: ${{ inputs.release_branch }}" + echo "Current Branch: ${{ github.ref_name }}" + echo "Version Type: ${{ inputs.version_type }}" + echo "Dry Run: ${{ inputs.dry_run }}" + echo "Repository: ${{ github.repository }}" + echo "Actor: ${{ github.actor }}" + + if [ "${{ inputs.dry_run }}" == "true" ]; then + echo "🧪 **DRY RUN MODE** - No actual release will be created" + fi + + # Repository permissions validation + REPO_ALLOWED=false + for allowed_repo in ${{ env.ALLOWED_REPOS }}; do + if [ "${{ github.repository }}" == "$allowed_repo" ]; then + REPO_ALLOWED=true + break + fi + done + + if [ "$REPO_ALLOWED" != "true" ]; then + echo "⚠️ Warning: Running on unauthorized repository: ${{ github.repository }}" + fi + + # Check actor permissions (basic validation) + for blocked_actor in ${{ env.BLOCKED_ACTORS }}; do + if [ "${{ github.actor }}" == "$blocked_actor" ]; then + echo "❌ Error: Blocked actor cannot create releases: ${{ github.actor }}" + exit 1 + fi + done + + # Check if the specified branch exists + if ! git show-ref --verify --quiet refs/remotes/origin/${{ inputs.release_branch }}; then + echo "❌ Error: Branch '${{ inputs.release_branch }}' does not exist" + echo "💡 Available branches:" + git branch -r --format='%(refname:short)' | sed 's/origin\///' | head -10 + exit 1 + fi + + # Check if selected release branch is allowed (if configured) + if [ -n "${{ env.RELEASE_BRANCHES }}" ]; then + BRANCH_ALLOWED=false + for release_branch in ${{ env.RELEASE_BRANCHES }}; do + if [ "${{ inputs.release_branch }}" == "$release_branch" ]; then + BRANCH_ALLOWED=true + break + fi + done + + if [ "$BRANCH_ALLOWED" != "true" ]; then + echo "⚠️ Warning: Branch '${{ inputs.release_branch }}' is not in configured release branches" + echo "📋 Configured release branches: ${{ env.RELEASE_BRANCHES }}" + echo "🔄 Continuing anyway - remove this branch from release.json if releases should be blocked" + fi + fi + + # Check for uncommitted changes + if ! git diff --quiet; then + echo "❌ Error: Uncommitted changes found" + exit 1 + fi + + echo "✅ Pre-flight checks passed" + + - name: Install Dependencies + uses: ./.github/actions/install-dependencies-release + with: + DEVOPS_TOKEN: ${{ secrets.DEVOPS_TOKEN }} + CLOUD_DEVOPS_TOKEN: ${{ secrets.CLOUD_DEVOPS_TOKEN }} + + - name: Get current version + id: current-version + run: | + PACKAGE_VERSION=$(node -p "require('./package.json').version") + echo "CLEAN_PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV + echo "Current Hello Elementor version: $PACKAGE_VERSION" + + - name: Bump Theme Version (Dry Run) + if: ${{ inputs.dry_run == true }} + run: | + echo "🧪 DRY RUN: Would bump Hello Elementor version from ${{ env.CLEAN_PACKAGE_VERSION }}" + + CURRENT_VERSION="${{ env.CLEAN_PACKAGE_VERSION }}" + IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION" + + case "${{ inputs.version_type }}" in + "current") + NEW_VERSION="$CURRENT_VERSION" + ;; + "major") + NEW_MAJOR=$((MAJOR + 1)) + NEW_VERSION="$NEW_MAJOR.0.0" + ;; + "minor") + NEW_MINOR=$((MINOR + 1)) + NEW_VERSION="$MAJOR.$NEW_MINOR.0" + ;; + "patch") + NEW_PATCH=$((PATCH + 1)) + NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH" + ;; + esac + + echo "DRY_RUN_VERSION=$NEW_VERSION" >> $GITHUB_ENV + echo "PACKAGE_VERSION=$NEW_VERSION" >> $GITHUB_ENV + echo "🧪 DRY RUN: Version would be: $CURRENT_VERSION → $NEW_VERSION" + echo "🧪 DRY RUN: Changelog validation will use current version: $CURRENT_VERSION" + + - name: Bump Theme Version (Actual) + if: ${{ inputs.dry_run == false }} + uses: ./.github/actions/bump-theme-version-release + with: + CLEAN_PACKAGE_VERSION: ${{ env.CLEAN_PACKAGE_VERSION }} + VERSION_TYPE: ${{ inputs.version_type }} + + - name: Validate current versions (Dry Run) + if: ${{ inputs.dry_run == true }} + run: | + CURRENT_VERSION=$(node -p "require('./package.json').version") + echo "🔍 Validating CURRENT versions ($CURRENT_VERSION)..." + bash .github/scripts/validate-versions-release.sh + + - name: Validate changelog for updated version (Dry Run) + if: ${{ inputs.dry_run == true }} + uses: ./.github/actions/get-changelog-from-readme-release + with: + VERSION: ${{ env.DRY_RUN_VERSION }} + + - name: Validate changelog for new version (Actual) + if: ${{ inputs.dry_run == false }} + uses: ./.github/actions/get-changelog-from-readme-release + with: + VERSION: ${{ env.PACKAGE_VERSION }} + + # Build with version-bumped files to ensure release assets contain correct versions + - name: Build Hello Elementor Theme + id: build + uses: ./.github/actions/build-theme-release + with: + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + BUILD_SCRIPT_PATH: "npm run package:zip" + + - name: Create GitHub Release (Dry Run) + if: ${{ inputs.dry_run == true }} + run: | + echo "🧪 DRY RUN: Would create GitHub release" + echo " - Tag: v${{ env.PACKAGE_VERSION }}" + echo " - Build file: ${{ env.BUILD_ZIP_PATH }}" + echo " - Changelog: ${{ env.CHANGELOG_FILE }}" + echo "RELEASE_URL=https://github.com/elementor/hello-theme/releases/tag/v${{ env.PACKAGE_VERSION }}" >> $GITHUB_ENV + + # Create GitHub release with version-bumped assets before repository cleanup + # This ensures the published release contains the correct version numbers + - name: Create GitHub Release (Actual) + if: ${{ inputs.dry_run == false }} + id: create-release + uses: softprops/action-gh-release@v1 + with: + tag_name: v${{ env.PACKAGE_VERSION }} + name: Hello Elementor v${{ env.PACKAGE_VERSION }} + body_path: ${{ env.CHANGELOG_FILE }} + files: ${{ env.BUILD_ZIP_PATH }} + prerelease: false + token: ${{ secrets.GITHUB_TOKEN }} + + # Repository maintenance steps happen after release creation + # Note: peter-evans/create-pull-request automatically restores working directory + # This design ensures release assets are created before any git cleanup occurs + + # Skip PR creation for 'current' version type since no version bump occurs + - name: Create PR With Bumped Version + if: ${{ inputs.dry_run == false && inputs.version_type != 'current' }} + uses: ./.github/actions/create-pr-with-bumped-theme-version-release + with: + base_branch: ${{ inputs.release_branch }} + # Use NEW_VERSION (bumped version) instead of CLEAN_PACKAGE_VERSION (old version) + # This ensures PR title/branch reflects the actual new version (e.g., "Release v3.4.5") + # Fallback to CLEAN_PACKAGE_VERSION for safety if NEW_VERSION is not set + package_version: ${{ env.NEW_VERSION || env.CLEAN_PACKAGE_VERSION }} + token: ${{ secrets.GITHUB_TOKEN }} + + # Update main branch version if new version > main version + - name: Update Main Branch Version + if: ${{ inputs.dry_run == false && inputs.version_type != 'current' }} + uses: ./.github/actions/update-main-branch-version-release + with: + new_version: ${{ env.NEW_VERSION }} + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set Release URL + if: ${{ inputs.dry_run == false }} + run: | + echo "RELEASE_URL=${{ steps.create-release.outputs.html_url }}" >> $GITHUB_ENV + + - name: Send Slack Notification (Dry Run) + if: false + run: | + echo "🧪 DRY RUN: Would send Slack notification" + echo " - Channel: ${{ inputs.slack_channel }}" + echo " - Version: v${{ env.PACKAGE_VERSION }}" + echo " - Message: Hello Elementor release preparation complete (DRY RUN)" + + - name: Slack Notification Skipped + if: ${{ inputs.dry_run == true }} + run: | + echo "📢 Slack notification skipped (release-preparation workflow)" + echo " - Only full releases with WordPress.org deployment trigger Slack notifications" + + - name: Send Slack Notification (Actual) + if: false + uses: ./.github/actions/theme-slack-notification-release + with: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} + PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + BUILD_ZIP_PATH: ${{ env.BUILD_ZIP_PATH }} + GITHUB_RELEASE_URL: ${{ env.RELEASE_URL }} + SLACK_CHANNEL: ${{ inputs.slack_channel }} + WPORG_DEPLOYMENT_STATUS: 'skipped' + + - name: Manual Upload Instructions + run: | + if [ "${{ inputs.dry_run }}" == "true" ]; then + echo "🧪 **DRY RUN COMPLETE!**" + echo "" + echo "📋 **This was a test run - no actual release was created**" + echo "" + echo "🔍 **What would have happened:**" + echo "1. Version would be bumped to: v${{ env.PACKAGE_VERSION }}" + echo "2. Hello Elementor theme would be built: ${{ env.BUILD_ZIP_PATH }}" + echo "3. GitHub release would be created: ${{ env.RELEASE_URL }}" + echo "4. Slack notification would be sent to #release" + echo "" + echo "✅ **Dry run validation passed - ready for actual release!**" + else + bash .github/scripts/generate-upload-instructions-release.sh + fi + + # Error recovery: restore repository to clean state on any workflow failure + # Design principle: always return to original branch state for consistency + # This prevents partial updates and ensures repository remains in sync with branch + - name: Cleanup on Error + if: ${{ always() && !inputs.dry_run && failure() }} + run: | + echo "🧹 Workflow failed - restoring to original state..." + + # Restore all version-bumped files to their original branch state + # This maintains consistency between working directory and remote branch + if ! git diff --quiet; then + echo "⚠️ Found modified files, restoring original versions..." + + # Restore specific files that were version-bumped earlier in workflow + git checkout -- package.json functions.php style.css readme.txt 2>/dev/null || true + git checkout -- assets/scss/style.scss 2>/dev/null || true + + echo "✅ Files restored to original state" + else + echo "ℹ️ Working directory already clean" + fi + + # Remove temporary files generated during workflow execution + rm -f temp-changelog-from-readme.txt 2>/dev/null || true + rm -f *.bak 2>/dev/null || true + + echo "🔍 Final state check:" + git status --porcelain || true From f6926867a11c9d90ffeb9a65c422f08a1bd5db7b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:38:54 +0200 Subject: [PATCH 07/13] Tweak: improve changelog appearance [TMZ-928] (#543) (#544) --- .gitignore | 4 +- modules/admin-home/assets/images/plus.svg | 1 + .../js/components/settings/changelog.js | 44 +++++++++++++++++++ .../js/components/settings/plus-icon.js | 10 +++++ .../js/components/settings/settings-page.js | 30 +------------ .../assets/js/components/settings/update.js | 18 +++++--- 6 files changed, 72 insertions(+), 35 deletions(-) create mode 100644 modules/admin-home/assets/images/plus.svg create mode 100644 modules/admin-home/assets/js/components/settings/changelog.js create mode 100644 modules/admin-home/assets/js/components/settings/plus-icon.js diff --git a/.gitignore b/.gitignore index 74438716..4a3bc0c8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,8 @@ node_modules/ .sass-cache/ build/** -assets/ +# Only ignore root-level assets directory (build output), not module assets (source files) +/assets/ hello-elementor/ elementor-hello-theme/ log/ @@ -13,7 +14,6 @@ Thumbs.db *.log *.map yarn.lock -assets/js/ *.zip .npmrc .env diff --git a/modules/admin-home/assets/images/plus.svg b/modules/admin-home/assets/images/plus.svg new file mode 100644 index 00000000..ceedebe3 --- /dev/null +++ b/modules/admin-home/assets/images/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/modules/admin-home/assets/js/components/settings/changelog.js b/modules/admin-home/assets/js/components/settings/changelog.js new file mode 100644 index 00000000..72e824f8 --- /dev/null +++ b/modules/admin-home/assets/js/components/settings/changelog.js @@ -0,0 +1,44 @@ +import Dialog from '@elementor/ui/Dialog'; +import DialogContent from '@elementor/ui/DialogContent'; +import DialogHeader from '@elementor/ui/DialogHeader'; +import Typography from '@elementor/ui/Typography'; +import { __ } from '@wordpress/i18n'; +import Stack from '@elementor/ui/Stack'; +import Update from './update'; +import Divider from '@elementor/ui/Divider'; +import { PlusIcon } from './plus-icon'; +import { Fragment } from 'react'; + +export const ChangelogDialog = ( { open, onClose, whatsNew } ) => { + return ( + + } + > + + { __( 'Changelog', 'hello-elementor' ) } + + + + + + { whatsNew.map( ( item, index ) => { + return ( + + + { index !== whatsNew.length - 1 && } + + ); + } ) } + + + + ); +}; diff --git a/modules/admin-home/assets/js/components/settings/plus-icon.js b/modules/admin-home/assets/js/components/settings/plus-icon.js new file mode 100644 index 00000000..5d1c8685 --- /dev/null +++ b/modules/admin-home/assets/js/components/settings/plus-icon.js @@ -0,0 +1,10 @@ +import SvgIcon from '@elementor/ui/SvgIcon'; +import { ReactComponent as Icon } from '../../../images/plus.svg'; + +export const PlusIcon = ( props ) => { + return ( + + + + ); +}; diff --git a/modules/admin-home/assets/js/components/settings/settings-page.js b/modules/admin-home/assets/js/components/settings/settings-page.js index 57d99422..7c5f1282 100644 --- a/modules/admin-home/assets/js/components/settings/settings-page.js +++ b/modules/admin-home/assets/js/components/settings/settings-page.js @@ -18,8 +18,7 @@ import Paper from '@elementor/ui/Paper'; import { styled } from '@elementor/ui/styles'; import Link from '@elementor/ui/Link'; import Stack from '@elementor/ui/Stack'; -import Modal from '@elementor/ui/Modal'; -import Update from './update'; +import { ChangelogDialog } from './changelog'; const Notices = () => { const notices = useSelect( @@ -75,19 +74,6 @@ const StyledTabs = styled( Tabs )( () => ( { }, } ) ); -const style = { - position: 'absolute', - top: '50%', - left: '50%', - transform: 'translate(-50%, -50%)', - bgcolor: 'background.paper', - border: '1px solid #000', - boxShadow: 24, - p: 2, - maxHeight: '80vh', - overflowY: 'auto', -}; - export const SettingsPage = () => { const { whatsNew } = useSettingsContext(); const { getTabsProps, getTabProps, getTabPanelProps } = useTabs( 'one' ); @@ -131,19 +117,7 @@ export const SettingsPage = () => { - - - { __( 'Changelog', 'hello-plus' ) } - - { whatsNew.map( ( item ) => ) } - - - + ); }; diff --git a/modules/admin-home/assets/js/components/settings/update.js b/modules/admin-home/assets/js/components/settings/update.js index 06baf9f2..143dcc49 100644 --- a/modules/admin-home/assets/js/components/settings/update.js +++ b/modules/admin-home/assets/js/components/settings/update.js @@ -1,11 +1,19 @@ -import Stack from '@elementor/ui/Stack'; +import Box from '@elementor/ui/Box'; import Typography from '@elementor/ui/Typography'; +import { useMemo } from 'react'; export default function Update( { title, description } ) { + const descriptionToShow = useMemo( () => { + const parser = new DOMParser(); + const doc = parser.parseFromString( description, 'text/html' ); + const listItems = doc.querySelectorAll( 'li' ); + const extractedContent = Array.from( listItems ).map( ( item ) => item.textContent.trim() ); + return extractedContent.join( '\n' ); + }, [ description ] ); return ( - - { title } -
- + + { title } + { descriptionToShow } + ); } From 2cec5ca8a2c5bd9582474c0e8d2ec9673dc0f7e5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Sep 2025 11:03:23 +0200 Subject: [PATCH 08/13] Internal: Revert changes to quicklinks [TMZ-923] (#545) (#546) --- modules/admin-home/rest/admin-config.php | 7 +++---- .../playwright/tests/admin/hello-theme-admin-home.test.ts | 5 ----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/modules/admin-home/rest/admin-config.php b/modules/admin-home/rest/admin-config.php index 482a710a..52055518 100644 --- a/modules/admin-home/rest/admin-config.php +++ b/modules/admin-home/rest/admin-config.php @@ -86,7 +86,6 @@ private function get_elementor_editor_url( ?int $page_id, string $active_tab ): 'post' => $page_id, 'action' => 'elementor', 'active-tab' => $active_tab, - 'active-document' => $active_kit_id, ], admin_url( 'post.php' ) ); @@ -285,18 +284,18 @@ public function get_quicklinks( $config, ?int $elementor_page_id = null ): array $config['quickLinks'] = [ 'site_name' => [ 'title' => __( 'Site Name', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity' ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity', null, [ 'autofocus[section]' => 'title_tagline' ] ), 'icon' => 'TextIcon', ], 'site_logo' => [ 'title' => __( 'Site Logo', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity' ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity', null, [ 'autofocus[section]' => 'title_tagline' ] ), 'icon' => 'PhotoIcon', ], 'site_favicon' => [ 'title' => __( 'Site Favicon', 'hello-elementor' ), - 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity' ), + 'link' => $this->get_open_homepage_with_tab( $elementor_page_id, 'settings-site-identity', null, [ 'autofocus[section]' => 'title_tagline' ] ), 'icon' => 'AppsIcon', ], ]; diff --git a/tests/playwright/tests/admin/hello-theme-admin-home.test.ts b/tests/playwright/tests/admin/hello-theme-admin-home.test.ts index 97c54ba8..de0bb079 100644 --- a/tests/playwright/tests/admin/hello-theme-admin-home.test.ts +++ b/tests/playwright/tests/admin/hello-theme-admin-home.test.ts @@ -63,11 +63,6 @@ test.describe( 'Hello Theme Admin Home Page', () => { const linkElement = page.locator( `h6:has-text("${ linkTest.linkText }") a` ); await expect( linkElement ).toBeVisible(); - if ( !! process.env.DAILY_MATRIX_WORKFLOW ) { - // Skip this test in Daily Matrix workflow due to artifact deployment timing issues - continue; - } - await Promise.all( [ page.waitForURL( linkTest.expectedUrlPattern ), linkElement.click(), From 6974bba5ed612478c4925ca67d921d9835cd3858 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:24:32 +0200 Subject: [PATCH 09/13] Tweak: Show PLG only on selected pages [TMZ-919] (#547) (#548) --- .buildignore | 1 + .vscode/settings.json | 8 + composer.json | 36 ++-- .../js/hello-elementor-conversion-banner.js | 18 +- .../components/conversion-banner.php | 166 ++++++++++++++++-- tests/bootstrap.php | 6 +- 6 files changed, 186 insertions(+), 49 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.buildignore b/.buildignore index e3e90448..c199bf70 100644 --- a/.buildignore +++ b/.buildignore @@ -32,3 +32,4 @@ tsconfig.json .wp-env.json .phpunit.result.cache temp-changelog-from-readme.txt +.vscode/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..74b0ac78 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "phpcs.standard": "./phpcs.xml", + "phpcs.executablePath": "vendor/bin/phpcs", + "phpcbf.executablePath": "vendor/bin/phpcbf", + "phpcs.enable": true, + "phpcbf.enable": true, + "phpcs.showSources": true +} \ No newline at end of file diff --git a/composer.json b/composer.json index dc89ea2f..da76fc57 100644 --- a/composer.json +++ b/composer.json @@ -3,23 +3,23 @@ "require-dev": { "squizlabs/php_codesniffer": "^3.6", "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", - "wp-coding-standards/wpcs": "^2.3", - "phpunit/phpunit": "9.5.14", - "elementor/elementor-editor-testing": "0.0.3", - "yoast/phpunit-polyfills": "^1.0.1" - }, - "require": { - "elementor/wp-notifications-package": "1.2.*" - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, + "wp-coding-standards/wpcs": "^2.3", + "phpunit/phpunit": "9.5.14", + "elementor/elementor-editor-testing": "0.0.3", + "yoast/phpunit-polyfills": "^1.0.1" + }, + "require": { + "elementor/wp-notifications-package": "1.2.*" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, "scripts": { - "lint": "phpcs --extensions=php -p", - "lint:fix": "vendor/bin/phpcbf --ignore=node_modules,vendor,build .", - "test": "phpunit --testsuite hello-elementor", - "test:install": "bash ./bin/install-wp-tests-local.sh" + "lint": "phpcs --extensions=php --standard=./phpcs.xml --ignore=node_modules,vendor,assets,tmp -p .", + "lint:fix": "vendor/bin/phpcbf --extensions=php --standard=./phpcs.xml --ignore=node_modules,vendor,assets,tmp .", + "test": "phpunit --testsuite hello-elementor", + "test:install": "bash ./bin/install-wp-tests-local.sh" } -} +} \ No newline at end of file diff --git a/modules/admin-home/assets/js/hello-elementor-conversion-banner.js b/modules/admin-home/assets/js/hello-elementor-conversion-banner.js index ccd203de..5f13d414 100644 --- a/modules/admin-home/assets/js/hello-elementor-conversion-banner.js +++ b/modules/admin-home/assets/js/hello-elementor-conversion-banner.js @@ -20,21 +20,21 @@ document.addEventListener( 'DOMContentLoaded', () => { const container = document.getElementById( 'ehe-admin-cb' ); if ( container ) { - let headerEnd = document.querySelector( '.wp-header-end' ); - - if ( ! headerEnd ) { - headerEnd = document.querySelector( '.wrap h1, .wrap h2' ); - } + const { beforeWrap = false } = window.ehe_cb; + const { selector, before = false } = window.ehe_cb.data; + const headerEnd = document.querySelector( selector ); if ( headerEnd ) { - if ( window.ehe_cb.beforeWrap ) { + if ( beforeWrap ) { const wrapElement = document.querySelector( '.wrap' ); if ( wrapElement ) { wrapElement.insertAdjacentElement( 'beforebegin', container ); } - } else { - headerEnd.insertAdjacentElement( 'afterend', container ); - } + } else if ( before ) { + headerEnd.insertAdjacentElement( 'beforebegin', container ); + } else { + headerEnd.insertAdjacentElement( 'afterend', container ); + } } const root = createRoot( container ); diff --git a/modules/admin-home/components/conversion-banner.php b/modules/admin-home/components/conversion-banner.php index d2a444ca..72e09a86 100644 --- a/modules/admin-home/components/conversion-banner.php +++ b/modules/admin-home/components/conversion-banner.php @@ -11,6 +11,13 @@ class Conversion_Banner { + const DEFAULT_SELECTOR = '.wrap h1, .wrap h2'; + const SCRIPT_HANDLE = 'hello-conversion-banner'; + const NONCE_ACTION = 'ehe_cb_nonce'; + const OBJECT_NAME = 'ehe_cb'; + const USER_META_KEY = '_hello_elementor_install_notice'; + const AJAX_ACTION = 'ehe_dismiss_theme_notice'; + private function render_conversion_banner() { ?>
@@ -18,23 +25,144 @@ private function render_conversion_banner() { [ 'selector' => '#wpbody #wpbody-content .wrap h1' ], + 'update-core' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'edit-post' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'edit-category' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'edit-post_tag' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'upload' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'media' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'edit-page' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'elementor_page_elementor-settings' => [ 'selector' => self::DEFAULT_SELECTOR ], + 'edit-elementor_library' => [ + 'selector' => self::DEFAULT_SELECTOR, + 'before' => true, + ], + 'elementor_page_elementor-tools' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'elementor_page_elementor-role-manager' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'elementor_page_elementor-element-manager' => [ + 'selector' => '.wrap h1, .wrap h3.wp-heading-inline', + ], + 'elementor_page_elementor-system-info' => [ + 'selector' => '#wpbody #wpbody-content #elementor-system-info .elementor-system-info-header', + 'before' => true, + ], + 'elementor_library_page_e-floating-buttons' => [ + 'selector' => '#wpbody-content .e-landing-pages-empty, .wrap h2', + 'before' => true, + ], + 'edit-e-floating-buttons' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'edit-elementor_library_category' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'themes' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'nav-menus' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'theme-editor' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'plugins' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'plugin-install' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'plugin-editor' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'users' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'user' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'profile' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'tools' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'import' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'export' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'site-health' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'export-personal-data' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'erase-personal-data' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-general' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-writing' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-reading' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-discussion' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-media' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-permalink' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'options-privacy' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + 'privacy-policy-guide' => [ + 'selector' => self::DEFAULT_SELECTOR, + ], + ]; + } + + private function is_allowed_admin_page(): array { + $current_screen = get_current_screen(); + + if ( ! $current_screen ) { + return []; } - if ( Utils::has_pro() && Utils::is_elementor_active() ) { - return false; + $allowed_pages = $this->get_allowed_admin_pages(); + $current_page = $current_screen->id; + + return $allowed_pages[ $current_page ] ?? []; + } + + private function is_conversion_banner_active(): array { + if ( get_user_meta( get_current_user_id(), self::USER_META_KEY, true ) ) { + return []; } - $current_screen = get_current_screen(); + if ( Utils::has_pro() && Utils::is_elementor_active() ) { + return []; + } - return false === strpos( $current_screen->id ?? '', EHP_THEME_SLUG ); + return $this->is_allowed_admin_page(); } - private function enqueue_scripts() { + private function enqueue_scripts( array $conversion_banner_active ) { $script = new Script( - 'hello-conversion-banner', + self::SCRIPT_HANDLE, [ 'wp-util' ] ); @@ -43,29 +171,31 @@ private function enqueue_scripts() { $is_installing_plugin_with_uploader = 'upload-plugin' === filter_input( INPUT_GET, 'action', FILTER_UNSAFE_RAW ); wp_localize_script( - 'hello-conversion-banner', - 'ehe_cb', + self::SCRIPT_HANDLE, + self::OBJECT_NAME, [ - 'nonce' => wp_create_nonce( 'ehe_cb_nonce' ), + 'nonce' => wp_create_nonce( self::NONCE_ACTION ), 'beforeWrap' => $is_installing_plugin_with_uploader, + 'data' => $conversion_banner_active, ] ); } public function dismiss_theme_notice() { - check_ajax_referer( 'ehe_cb_nonce', 'nonce' ); + check_ajax_referer( self::NONCE_ACTION, 'nonce' ); - update_user_meta( get_current_user_id(), '_hello_elementor_install_notice', true ); + update_user_meta( get_current_user_id(), self::USER_META_KEY, true ); wp_send_json_success( [ 'message' => __( 'Notice dismissed.', 'hello-elementor' ) ] ); } public function __construct() { - add_action( 'wp_ajax_ehe_dismiss_theme_notice', [ $this, 'dismiss_theme_notice' ] ); + add_action( 'wp_ajax_' . self::AJAX_ACTION, [ $this, 'dismiss_theme_notice' ] ); add_action( 'current_screen', function () { - if ( ! $this->is_conversion_banner_active() ) { + $conversion_banner_active = $this->is_conversion_banner_active(); + if ( ! $conversion_banner_active ) { return; } @@ -73,8 +203,8 @@ public function __construct() { $this->render_conversion_banner(); }, 11 ); - add_action( 'admin_enqueue_scripts', function () { - $this->enqueue_scripts(); + add_action( 'admin_enqueue_scripts', function () use ( $conversion_banner_active ) { + $this->enqueue_scripts( $conversion_banner_active ); } ); } ); } diff --git a/tests/bootstrap.php b/tests/bootstrap.php index f81de1b7..bbf96dbf 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -65,8 +65,8 @@ do_action('plugins_loaded'); -function initialize_elementor_plugin($plugin_class) -{ +function initialize_elementor_plugin($plugin_class){ + if (!class_exists($plugin_class)) { return null; } @@ -76,7 +76,5 @@ function initialize_elementor_plugin($plugin_class) $plugin_instance = initialize_elementor_plugin('Elementor\Plugin'); -$plugin_instance->initialize_container(); - do_action('init'); do_action('wp_loaded'); From dbe0ec10b3422ae7bee658558ce76555da0d8656 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:03:57 +0200 Subject: [PATCH 10/13] New: Add theme home to Finder [TMZ-935] (#549) (#550) --- modules/admin-home/components/finder.php | 27 ++++++++++++++++++++++++ modules/admin-home/module.php | 1 + 2 files changed, 28 insertions(+) create mode 100644 modules/admin-home/components/finder.php diff --git a/modules/admin-home/components/finder.php b/modules/admin-home/components/finder.php new file mode 100644 index 00000000..f42e12fa --- /dev/null +++ b/modules/admin-home/components/finder.php @@ -0,0 +1,27 @@ + esc_html__( 'Hello Theme Home', 'hello-elementor' ), + 'icon' => 'paint-brush', + 'url' => admin_url( 'admin.php?page=hello-elementor' ), + 'keywords' => [ 'theme', 'hello', 'home', 'plus', '+' ], + ]; + } + + return $categories_data; + } + + public function __construct() { + add_filter( 'elementor/finder/categories', [ $this, 'add_hello_theme_finder_entry' ] ); + } +} diff --git a/modules/admin-home/module.php b/modules/admin-home/module.php index f7820ad3..38fe3b23 100644 --- a/modules/admin-home/module.php +++ b/modules/admin-home/module.php @@ -35,6 +35,7 @@ protected function get_component_ids(): array { 'Admin_Top_Bar', 'Settings_Controller', 'Notificator', + 'Finder', ]; } } From 4ece011972d58bbcc364d77c5293a57bae5c85c7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Sep 2025 13:41:30 +0200 Subject: [PATCH 11/13] Internal: Bump version and add changelog [TMZ-954] (#551) (#552) --- functions.php | 2 +- package-lock.json | 5219 +++++++++++++++++++++++++-------------------- package.json | 2 +- readme.txt | 13 +- style.css | 4 +- 5 files changed, 2918 insertions(+), 2322 deletions(-) diff --git a/functions.php b/functions.php index 28f52eca..f9bfe47b 100644 --- a/functions.php +++ b/functions.php @@ -9,7 +9,7 @@ exit; // Exit if accessed directly. } -define( 'HELLO_ELEMENTOR_VERSION', '3.4.4' ); +define( 'HELLO_ELEMENTOR_VERSION', '3.4.5' ); define( 'EHP_THEME_SLUG', 'hello-elementor' ); define( 'HELLO_THEME_PATH', get_template_directory() ); diff --git a/package-lock.json b/package-lock.json index 47849099..fe2b0509 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "hello-elementor", - "version": "3.4.4", + "version": "3.4.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hello-elementor", - "version": "3.4.4", + "version": "3.4.5", "dependencies": { "@elementor/icons": "1.42.0", "@elementor/ui": "1.34.2", @@ -58,13 +58,13 @@ "license": "MIT" }, "node_modules/@ariakit/react": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.17.tgz", - "integrity": "sha512-HQaIboE2axtlncJz1hRTaiQfJ1GGjhdtNcAnPwdjvl2RybfmlHowIB+HTVBp36LzroKPs/M4hPCxk7XTaqRZGg==", + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.4.18.tgz", + "integrity": "sha512-r38DFvdv6JzjC/8mHekTaJEXO6hmx+YPIiyjq9oL7DckLmqGkAKbFrmQd2CeKZZ1c372DDVw7lLhYjj/VYCBZQ==", "dev": true, "license": "MIT", "dependencies": { - "@ariakit/react-core": "0.4.17" + "@ariakit/react-core": "0.4.18" }, "funding": { "type": "opencollective", @@ -76,9 +76,9 @@ } }, "node_modules/@ariakit/react-core": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.17.tgz", - "integrity": "sha512-kFF6n+gC/5CRQIyaMTFoBPio2xUe0k9rZhMNdUobWRmc/twfeLVkODx+8UVYaNyKilTge8G0JFqwvFKku/jKEw==", + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.4.18.tgz", + "integrity": "sha512-wHtojXF7KPRwGTSbPg50l203Qngg2aGYCzCut+mYEwe3S0ZzuYVpiY+2Yh15HssnQ/S5yiDGRL4q94UEXsyO+w==", "dev": true, "license": "MIT", "dependencies": { @@ -106,9 +106,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, "license": "MIT", "engines": { @@ -116,22 +116,22 @@ } }, "node_modules/@babel/core": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.4", - "@babel/parser": "^7.27.4", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.4", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -165,16 +165,26 @@ "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, "node_modules/@babel/generator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.5", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -212,18 +222,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", + "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "engines": { @@ -252,22 +262,31 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", @@ -296,15 +315,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -415,41 +434,41 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -526,14 +545,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", - "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -870,15 +889,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", - "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -922,9 +941,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", - "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz", + "integrity": "sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==", "dev": true, "license": "MIT", "dependencies": { @@ -955,13 +974,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", - "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { @@ -972,18 +991,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -1010,13 +1029,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", - "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1358,16 +1378,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", - "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.3", - "@babel/plugin-transform-parameters": "^7.27.1" + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -1427,9 +1448,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", - "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, "license": "MIT", "dependencies": { @@ -1510,9 +1531,9 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", - "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", "dev": true, "license": "MIT", "dependencies": { @@ -1599,9 +1620,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", - "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "dev": true, "license": "MIT", "dependencies": { @@ -1733,13 +1754,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", + "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", @@ -1994,9 +2015,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -2017,27 +2038,27 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.4", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.4", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -2054,6 +2075,47 @@ "dev": true, "license": "MIT" }, + "node_modules/@cacheable/memoize": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@cacheable/memoize/-/memoize-2.0.2.tgz", + "integrity": "sha512-wPrr7FUiq3Qt4yQyda2/NcOLTJCFcQSU3Am2adP+WLy+sz93/fKTokVTHmtz+rjp4PD7ee0AEOeRVNN6IvIfsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.0.2" + } + }, + "node_modules/@cacheable/memory": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.2.tgz", + "integrity": "sha512-sJTITLfeCI1rg7P3ssaGmQryq235EGT8dXGcx6oZwX5NRnKq9IE6lddlllcOl+oXW+yaeTRddCjo0xrfU6ZySA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memoize": "^2.0.1", + "@cacheable/utils": "^2.0.2", + "@keyv/bigmap": "^1.0.2", + "hookified": "^1.12.1", + "keyv": "^5.5.2" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.3.tgz", + "integrity": "sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.0.2.tgz", + "integrity": "sha512-JTFM3raFhVv8LH95T7YnZbf2YoE9wEtkPPStuRF9a6ExZ103hFvs+QyCuYJ6r0hA9wRtbzgZtwUCoDWxssZd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@csstools/css-parser-algorithms": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", @@ -2199,14 +2261,14 @@ } }, "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", + "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", "dev": true, "license": "MIT", "funding": { "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/JounQin" } }, "node_modules/@elementor/design-tokens": { @@ -2261,6 +2323,7 @@ "resolved": "https://registry.npmjs.org/@elementor/wp-lite-env/-/wp-lite-env-0.0.20.tgz", "integrity": "sha512-q4DJSCThe0e2k5Wyw1QzhU0IrL302zn6d3wR2aZM9Ktxe+JyhPIgE8OJ4HP0dNyHL0WcNJD/xMEfpsWYNHmcKA==", "dev": true, + "license": "ISC", "dependencies": { "command-line-args": "^6.0.1", "docker-compose": "^1.1.0", @@ -2271,24 +2334,6 @@ "wp-lite-env": "dist/bin.cjs" } }, - "node_modules/@elementor/wp-lite-env/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@elementor/wp-lite-env/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@emotion/babel-plugin": { "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", @@ -2381,9 +2426,9 @@ "license": "MIT" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", - "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0" @@ -2504,9 +2549,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, "license": "MIT", "dependencies": { @@ -2569,17 +2614,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2587,35 +2625,6 @@ "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2629,19 +2638,6 @@ "node": "*" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@eslint/js": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", @@ -2653,31 +2649,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz", - "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.9" + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz", - "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.1", - "@floating-ui/utils": "^0.2.9" + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz", - "integrity": "sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.0.0" + "@floating-ui/dom": "^1.7.4" }, "peerDependencies": { "react": ">=16.8.0", @@ -2685,9 +2681,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", "license": "MIT" }, "node_modules/@formatjs/ecma402-abstract": { @@ -2746,21 +2742,58 @@ "tslib": "^2.8.0" } }, + "node_modules/@hapi/address": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz", + "integrity": "sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^11.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@hapi/formula": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz", + "integrity": "sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz", + "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/pinpoint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz", + "integrity": "sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==", "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@hapi/tlds": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.3.tgz", + "integrity": "sha512-QIvUMB5VZ8HMLZF9A2oWr3AFM430QC8oGd0L35y2jHpuW6bIIca6x/xL7zUf4J7L9WJ3qjz+iJII8ncaeMbpSg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz", + "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@hapi/hoek": "^9.0.0" + "@hapi/hoek": "^11.0.2" } }, "node_modules/@humanwhocodes/config-array": { @@ -2780,9 +2813,9 @@ } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2825,16 +2858,27 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@inquirer/ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.0.tgz", + "integrity": "sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@inquirer/checkbox": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.1.tgz", - "integrity": "sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.4.tgz", + "integrity": "sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/ansi": "^1.0.0", + "@inquirer/core": "^10.2.2", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2850,12 +2894,13 @@ } }, "node_modules/@inquirer/confirm": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz", - "integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==", + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.18.tgz", + "integrity": "sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "engines": { @@ -2871,14 +2916,15 @@ } }, "node_modules/@inquirer/core": { - "version": "10.1.15", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.15.tgz", - "integrity": "sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.2.2.tgz", + "integrity": "sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==", "dev": true, + "license": "MIT", "dependencies": { + "@inquirer/ansi": "^1.0.0", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", @@ -2897,40 +2943,15 @@ } } }, - "node_modules/@inquirer/core/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@inquirer/core/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@inquirer/editor": { - "version": "4.2.17", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.17.tgz", - "integrity": "sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==", + "version": "4.2.20", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.20.tgz", + "integrity": "sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", - "@inquirer/external-editor": "^1.0.1", + "@inquirer/core": "^10.2.2", + "@inquirer/external-editor": "^1.0.2", "@inquirer/type": "^3.0.8" }, "engines": { @@ -2946,12 +2967,13 @@ } }, "node_modules/@inquirer/expand": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.17.tgz", - "integrity": "sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==", + "version": "4.0.20", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.20.tgz", + "integrity": "sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, @@ -2968,13 +2990,14 @@ } }, "node_modules/@inquirer/external-editor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.1.tgz", - "integrity": "sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", + "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^2.1.0", - "iconv-lite": "^0.6.3" + "iconv-lite": "^0.7.0" }, "engines": { "node": ">=18" @@ -2993,17 +3016,19 @@ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz", "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@inquirer/input": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.1.tgz", - "integrity": "sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.4.tgz", + "integrity": "sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "engines": { @@ -3019,12 +3044,13 @@ } }, "node_modules/@inquirer/number": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.17.tgz", - "integrity": "sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.20.tgz", + "integrity": "sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8" }, "engines": { @@ -3040,14 +3066,15 @@ } }, "node_modules/@inquirer/password": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.17.tgz", - "integrity": "sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==", + "version": "4.0.20", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.20.tgz", + "integrity": "sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", - "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2" + "@inquirer/ansi": "^1.0.0", + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8" }, "engines": { "node": ">=18" @@ -3062,21 +3089,22 @@ } }, "node_modules/@inquirer/prompts": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.2.tgz", - "integrity": "sha512-nqhDw2ZcAUrKNPwhjinJny903bRhI0rQhiDz1LksjeRxqa36i3l75+4iXbOy0rlDpLJGxqtgoPavQjmmyS5UJw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.6.tgz", + "integrity": "sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.2.1", - "@inquirer/confirm": "^5.1.14", - "@inquirer/editor": "^4.2.17", - "@inquirer/expand": "^4.0.17", - "@inquirer/input": "^4.2.1", - "@inquirer/number": "^3.0.17", - "@inquirer/password": "^4.0.17", - "@inquirer/rawlist": "^4.1.5", - "@inquirer/search": "^3.1.0", - "@inquirer/select": "^4.3.1" + "@inquirer/checkbox": "^4.2.4", + "@inquirer/confirm": "^5.1.18", + "@inquirer/editor": "^4.2.20", + "@inquirer/expand": "^4.0.20", + "@inquirer/input": "^4.2.4", + "@inquirer/number": "^3.0.20", + "@inquirer/password": "^4.0.20", + "@inquirer/rawlist": "^4.1.8", + "@inquirer/search": "^3.1.3", + "@inquirer/select": "^4.3.4" }, "engines": { "node": ">=18" @@ -3091,12 +3119,13 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.5.tgz", - "integrity": "sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.8.tgz", + "integrity": "sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/core": "^10.2.2", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" }, @@ -3113,12 +3142,13 @@ } }, "node_modules/@inquirer/search": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.0.tgz", - "integrity": "sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.3.tgz", + "integrity": "sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/core": "^10.2.2", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", "yoctocolors-cjs": "^2.1.2" @@ -3136,15 +3166,16 @@ } }, "node_modules/@inquirer/select": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.1.tgz", - "integrity": "sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.4.tgz", + "integrity": "sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==", "dev": true, + "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.15", + "@inquirer/ansi": "^1.0.0", + "@inquirer/core": "^10.2.2", "@inquirer/figures": "^1.0.13", "@inquirer/type": "^3.0.8", - "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -3164,6 +3195,7 @@ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz", "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -3181,6 +3213,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3194,10 +3227,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3206,10 +3240,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3222,6 +3257,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3235,10 +3271,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3254,6 +3291,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3283,6 +3321,16 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -3293,13 +3341,34 @@ "node": ">=6" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", - "engines": { + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { "node": ">=8" } }, @@ -3626,17 +3695,24 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -3648,19 +3724,10 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", "dependencies": { @@ -3669,61 +3736,47 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@keyv/serialize": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.3.tgz", - "integrity": "sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==", + "node_modules/@keyv/bigmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.0.2.tgz", + "integrity": "sha512-KR03xkEZlAZNF4IxXgVXb+uNIVNvwdh8UwI0cnc7WI6a+aQcDp8GL80qVfeB4E5NpsKJzou5jU0r6yLSSbMOtA==", "dev": true, "license": "MIT", "dependencies": { - "buffer": "^6.0.3" + "hookified": "^1.12.1" + }, + "engines": { + "node": ">= 18" } }, - "node_modules/@keyv/serialize/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "license": "MIT" }, "node_modules/@kwsites/file-exists": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1" } @@ -3732,7 +3785,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", @@ -3775,9 +3829,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.17.1.tgz", - "integrity": "sha512-OcZj+cs6EfUD39IoPBOgN61zf1XFVY+imsGoBDwXeSq2UHJZE3N59zzBOVjclck91Ne3e9gudONOeILvHCIhUA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.18.0.tgz", + "integrity": "sha512-jbhwoQ1AY200PSSOrNXmrFCaSDSJWP7qk6urkTmIirvRXDROkqe+QwcLlUiw/PrREwsIF/vm3/dAXvjlMHF0RA==", "license": "MIT", "funding": { "type": "opencollective", @@ -3910,19 +3964,20 @@ } }, "node_modules/@mui/private-theming/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz", + "integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==", "license": "MIT" }, "node_modules/@mui/styled-engine": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz", - "integrity": "sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.18.0.tgz", + "integrity": "sha512-BN/vKV/O6uaQh2z5rXV+MBlVrEkwoS/TK75rFQ2mjxA7+NBo8qtTAOA4UaM0XeJfn7kh2wZ+xQw2HAx0u+TiBg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, @@ -3967,14 +4022,14 @@ "license": "MIT" }, "node_modules/@mui/system": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.17.1.tgz", - "integrity": "sha512-aJrmGfQpyF0U4D4xYwA6ueVtQcEMebET43CUmKMP7e7iFh3sMIF3sBR0l8Urb4pqx1CBjHAaWgB0ojpND4Q3Jg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.18.0.tgz", + "integrity": "sha512-ojZGVcRWqWhu557cdO3pWHloIGJdzVtxs3rk0F9L+x55LsUjcMUVkEhiF7E4TMxZoF9MmIHGGs0ZX3FDLAf0Xw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", "@mui/private-theming": "^5.17.1", - "@mui/styled-engine": "^5.16.14", + "@mui/styled-engine": "^5.18.0", "@mui/types": "~7.2.15", "@mui/utils": "^5.17.1", "clsx": "^2.1.0", @@ -4060,18 +4115,18 @@ } }, "node_modules/@mui/system/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz", + "integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==", "license": "MIT" }, "node_modules/@mui/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.3.tgz", - "integrity": "sha512-2UCEiK29vtiZTeLdS2d4GndBKacVyxGvReznGXGr+CzW/YhjIX+OHUdCIczZjzcRAgKBGmE9zCIgoV9FleuyRQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.6.tgz", + "integrity": "sha512-NVBbIw+4CDMMppNamVxyTccNv0WxtDb7motWDlMeSC8Oy95saj1TIZMGynPpFLePt3yOD8TskzumeqORCgRGWw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.1" + "@babel/runtime": "^7.28.3" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -4122,9 +4177,9 @@ } }, "node_modules/@mui/utils/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.1.tgz", + "integrity": "sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==", "license": "MIT" }, "node_modules/@mui/x-date-pickers": { @@ -4241,212 +4296,825 @@ "node": ">= 8" } }, - "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" + "node": ">=8.0.0" } }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" + "node_modules/@opentelemetry/api-logs": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz", + "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=14" } }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@opentelemetry/context-async-hooks": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz", + "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 10.0.0" + "node": ">=14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@paulirish/trace_engine": { - "version": "0.0.53", - "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.53.tgz", - "integrity": "sha512-PUl/vlfo08Oj804VI5nDPeSk9vyslnBlVzDDwFt8SUVxY8+KdGMkra/vrXjEEHe8gb7+RqVTfOIlGw0nyrEelA==", + "node_modules/@opentelemetry/core": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz", + "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==", "dev": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", "dependencies": { - "legacy-javascript": "latest", - "third-party-web": "latest" + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", "dev": true, - "optional": true, + "license": "Apache-2.0", "engines": { "node": ">=14" } }, - "node_modules/@pkgr/core": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", - "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", + "node_modules/@opentelemetry/instrumentation": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz", + "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.57.2", + "@types/shimmer": "^1.2.0", + "import-in-the-middle": "^1.8.1", + "require-in-the-middle": "^7.1.1", + "semver": "^7.5.2", + "shimmer": "^1.2.1" + }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": ">=14" }, - "funding": { - "url": "https://opencollective.com/pkgr" + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@playwright/test": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz", - "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==", + "node_modules/@opentelemetry/instrumentation-amqplib": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz", + "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.55.0" - }, - "bin": { - "playwright": "cli.js" + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" }, "engines": { - "node": ">=18" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.16.tgz", - "integrity": "sha512-kLQc9xz6QIqd2oIYyXRUiAp79kGpFBm3fEM9ahfG1HI0WI5gdZ2OVHWdmZYnwODt7ISck+QuQ6sBPrtvUBML7Q==", + "node_modules/@opentelemetry/instrumentation-connect": { + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz", + "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ansi-html": "^0.0.9", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^4.2.0", - "source-map": "^0.7.3" + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/connect": "3.4.38" }, "engines": { - "node": ">= 10.13" + "node": ">=14" }, "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x || 5.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "node_modules/@opentelemetry/instrumentation-dataloader": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz", + "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==", "dev": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, "engines": { - "node": ">= 8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "node_modules/@opentelemetry/instrumentation-express": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz", + "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==", "dev": true, - "license": "MIT" - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" } }, - "node_modules/@puppeteer/browsers": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", - "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", + "node_modules/@opentelemetry/instrumentation-fs": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz", + "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-generic-pool": { + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz", + "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-graphql": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz", + "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-hapi": { + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz", + "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http": { + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.2.tgz", + "integrity": "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/instrumentation": "0.57.2", + "@opentelemetry/semantic-conventions": "1.28.0", + "forwarded-parse": "2.1.2", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/instrumentation-ioredis": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz", + "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/redis-common": "^0.36.2", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-kafkajs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz", + "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-knex": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz", + "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-koa": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz", + "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-lru-memoizer": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz", + "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongodb": { + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz", + "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mongoose": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz", + "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql": { + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz", + "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/mysql": "2.15.26" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-mysql2": { + "version": "0.45.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz", + "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@opentelemetry/sql-common": "^0.40.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-pg": { + "version": "0.51.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz", + "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.26.0", + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@opentelemetry/sql-common": "^0.40.1", + "@types/pg": "8.6.1", + "@types/pg-pool": "2.0.6" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-redis-4": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz", + "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/redis-common": "^0.36.2", + "@opentelemetry/semantic-conventions": "^1.27.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-tedious": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz", + "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.57.1", + "@opentelemetry/semantic-conventions": "^1.27.0", + "@types/tedious": "^4.0.14" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/instrumentation-undici": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz", + "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.8.0", + "@opentelemetry/instrumentation": "^0.57.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.7.0" + } + }, + "node_modules/@opentelemetry/instrumentation/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@opentelemetry/redis-common": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", + "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.1", + "@opentelemetry/resources": "1.30.1", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.37.0.tgz", + "integrity": "sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sql-common": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", + "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@paulirish/trace_engine": { + "version": "0.0.59", + "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.59.tgz", + "integrity": "sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "legacy-javascript": "latest", + "third-party-web": "latest" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@playwright/test": { + "version": "1.55.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.1.tgz", + "integrity": "sha512-IVAh/nOJaw6W9g+RJVlIQJ6gSiER+ae6mKQ5CX1bERzQgbC1VSeBlwdvczT7pxb0GWiyrxH4TGKbMfDb4Sq/ig==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.55.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", + "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@prisma/instrumentation": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz", + "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.8" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", + "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4466,6 +5134,27 @@ "node": ">=18" } }, + "node_modules/@puppeteer/browsers/node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, "node_modules/@puppeteer/browsers/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -4486,115 +5175,107 @@ "dev": true, "license": "MIT" }, - "node_modules/@sentry-internal/tracing": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.3.tgz", - "integrity": "sha512-Ausx+Jw1pAMbIBHStoQ6ZqDZR60PsCByvHdw/jdH9AqPrNE9xlBSf9EwcycvmrzwyKspSLaB52grlje2cRIUMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@sentry/core": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.3.tgz", - "integrity": "sha512-vyy11fCGpkGK3qI5DSXOjgIboBZTriw0YDx/0KyX5CjIjDDNgp5AGgpgFkfZyiYiaU2Ww3iFuKo4wHmBusz1uA==", + "version": "9.46.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.46.0.tgz", + "integrity": "sha512-it7JMFqxVproAgEtbLgCVBYtQ9fIb+Bu0JD+cEplTN/Ukpe6GaolyYib5geZqslVxhp2sQgT+58aGvfd/k0N8Q==", "dev": true, "license": "MIT", - "dependencies": { - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" - }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@sentry/integrations": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.3.tgz", - "integrity": "sha512-6i/lYp0BubHPDTg91/uxHvNui427df9r17SsIEXa2eKDwQ9gW2qRx5IWgvnxs2GV/GfSbwcx4swUB3RfEWrXrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sentry/core": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3", - "localforage": "^1.8.1" + "node_modules/@sentry/node": { + "version": "9.46.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.46.0.tgz", + "integrity": "sha512-pRLqAcd7GTGvN8gex5FtkQR5Mcol8gOy1WlyZZFq4rBbVtMbqKOQRhohwqnb+YrnmtFpj7IZ7KNDo077MvNeOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.30.1", + "@opentelemetry/core": "^1.30.1", + "@opentelemetry/instrumentation": "^0.57.2", + "@opentelemetry/instrumentation-amqplib": "^0.46.1", + "@opentelemetry/instrumentation-connect": "0.43.1", + "@opentelemetry/instrumentation-dataloader": "0.16.1", + "@opentelemetry/instrumentation-express": "0.47.1", + "@opentelemetry/instrumentation-fs": "0.19.1", + "@opentelemetry/instrumentation-generic-pool": "0.43.1", + "@opentelemetry/instrumentation-graphql": "0.47.1", + "@opentelemetry/instrumentation-hapi": "0.45.2", + "@opentelemetry/instrumentation-http": "0.57.2", + "@opentelemetry/instrumentation-ioredis": "0.47.1", + "@opentelemetry/instrumentation-kafkajs": "0.7.1", + "@opentelemetry/instrumentation-knex": "0.44.1", + "@opentelemetry/instrumentation-koa": "0.47.1", + "@opentelemetry/instrumentation-lru-memoizer": "0.44.1", + "@opentelemetry/instrumentation-mongodb": "0.52.0", + "@opentelemetry/instrumentation-mongoose": "0.46.1", + "@opentelemetry/instrumentation-mysql": "0.45.1", + "@opentelemetry/instrumentation-mysql2": "0.45.2", + "@opentelemetry/instrumentation-pg": "0.51.1", + "@opentelemetry/instrumentation-redis-4": "0.46.1", + "@opentelemetry/instrumentation-tedious": "0.18.1", + "@opentelemetry/instrumentation-undici": "0.10.1", + "@opentelemetry/resources": "^1.30.1", + "@opentelemetry/sdk-trace-base": "^1.30.1", + "@opentelemetry/semantic-conventions": "^1.34.0", + "@prisma/instrumentation": "6.11.1", + "@sentry/core": "9.46.0", + "@sentry/node-core": "9.46.0", + "@sentry/opentelemetry": "9.46.0", + "import-in-the-middle": "^1.14.2", + "minimatch": "^9.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@sentry/node": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.120.3.tgz", - "integrity": "sha512-t+QtekZedEfiZjbkRAk1QWJPnJlFBH/ti96tQhEq7wmlk3VszDXraZvLWZA0P2vXyglKzbWRGkT31aD3/kX+5Q==", + "node_modules/@sentry/node-core": { + "version": "9.46.0", + "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-9.46.0.tgz", + "integrity": "sha512-XRVu5pqoklZeh4wqhxCLZkz/ipoKhitctgEFXX9Yh1e1BoHM2pIxT52wf+W6hHM676TFmFXW3uKBjsmRM3AjgA==", "dev": true, "license": "MIT", "dependencies": { - "@sentry-internal/tracing": "7.120.3", - "@sentry/core": "7.120.3", - "@sentry/integrations": "7.120.3", - "@sentry/types": "7.120.3", - "@sentry/utils": "7.120.3" + "@sentry/core": "9.46.0", + "@sentry/opentelemetry": "9.46.0", + "import-in-the-middle": "^1.14.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/types": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.3.tgz", - "integrity": "sha512-C4z+3kGWNFJ303FC+FxAd4KkHvxpNFYAFN8iMIgBwJdpIl25KZ8Q/VdGn0MLLUEHNLvjob0+wvwlcRBBNLXOow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=18" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", + "@opentelemetry/core": "^1.30.1 || ^2.0.0", + "@opentelemetry/instrumentation": ">=0.57.1 <1", + "@opentelemetry/resources": "^1.30.1 || ^2.0.0", + "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", + "@opentelemetry/semantic-conventions": "^1.34.0" } }, - "node_modules/@sentry/utils": { - "version": "7.120.3", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.3.tgz", - "integrity": "sha512-UDAOQJtJDxZHQ5Nm1olycBIsz2wdGX8SdzyGVHmD8EOQYAeDZQyIlQYohDe9nazdIOQLZCIc3fU0G9gqVLkaGQ==", + "node_modules/@sentry/opentelemetry": { + "version": "9.46.0", + "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-9.46.0.tgz", + "integrity": "sha512-w2zTxqrdmwRok0cXBoh+ksXdGRUHUZhlpfL/H2kfTodOL+Mk8rW72qUmfqQceXoqgbz8UyK8YgJbyt+XS5H4Qg==", "dev": true, "license": "MIT", "dependencies": { - "@sentry/types": "7.120.3" + "@sentry/core": "9.46.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" + "node": ">=18" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0", + "@opentelemetry/core": "^1.30.1 || ^2.0.0", + "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0", + "@opentelemetry/semantic-conventions": "^1.34.0" } }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -4607,6 +5288,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -4634,10 +5316,17 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "license": "MIT" + }, "node_modules/@stylistic/stylelint-plugin": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.2.tgz", - "integrity": "sha512-tylFJGMQo62alGazK74MNxFjMagYOHmBZiePZFOJK2n13JZta0uVkB3Bh5qodUmOLtRH+uxH297EibK14UKm8g==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz", + "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==", "dev": true, "license": "MIT", "dependencies": { @@ -4645,10 +5334,10 @@ "@csstools/css-tokenizer": "^3.0.1", "@csstools/media-query-list-parser": "^3.0.1", "is-plain-object": "^5.0.0", + "postcss": "^8.4.41", "postcss-selector-parser": "^6.1.2", "postcss-value-parser": "^4.2.0", - "style-search": "^0.1.0", - "stylelint": "^16.8.2" + "style-search": "^0.1.0" }, "engines": { "node": "^18.12 || >=20.9" @@ -4841,13 +5530,6 @@ "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/core/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@svgr/core/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -4875,19 +5557,6 @@ } } }, - "node_modules/@svgr/core/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@svgr/hast-util-to-babel-ast": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", @@ -4951,13 +5620,6 @@ "@svgr/core": "*" } }, - "node_modules/@svgr/plugin-svgo/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -4985,19 +5647,6 @@ } } }, - "node_modules/@svgr/plugin-svgo/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@svgr/webpack": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", @@ -5027,6 +5676,7 @@ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "dev": true, + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -5069,6 +5719,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@tannin/sprintf": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@tannin/sprintf/-/sprintf-1.3.3.tgz", + "integrity": "sha512-RwARl+hFwhzy0tg9atWcchLFvoQiOh4rrP7uG2N5E4W80BPCUX0ElcUR9St43fxB9EfjsW2df9Qp+UsTbvQDjA==", + "dev": true, + "license": "MIT" + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -5132,19 +5789,19 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "license": "MIT", "dependencies": { @@ -5167,6 +5824,7 @@ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", @@ -5218,16 +5876,16 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.22.tgz", - "integrity": "sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5238,9 +5896,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz", + "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5263,17 +5921,6 @@ "@types/send": "*" } }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -5302,12 +5949,13 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "license": "MIT" }, @@ -5379,6 +6027,7 @@ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5390,13 +6039,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", @@ -5411,20 +6053,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mysql": { + "version": "2.15.26", + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz", + "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "22.15.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", - "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", + "version": "24.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz", + "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.12.0" } }, "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dev": true, "license": "MIT", "dependencies": { @@ -5444,10 +6096,32 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "license": "MIT" }, + "node_modules/@types/pg": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", + "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "node_modules/@types/pg-pool": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz", + "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/pg": "*" + } + }, "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", "license": "MIT" }, "node_modules/@types/qs": { @@ -5465,9 +6139,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", - "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", + "version": "18.3.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.24.tgz", + "integrity": "sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -5498,6 +6172,7 @@ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5510,16 +6185,16 @@ "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", "dev": true, "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", "dev": true, "license": "MIT", "dependencies": { @@ -5538,9 +6213,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "dev": true, "license": "MIT", "dependencies": { @@ -5549,6 +6224,13 @@ "@types/send": "*" } }, + "node_modules/@types/shimmer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", @@ -5559,13 +6241,6 @@ "@types/node": "*" } }, - "node_modules/@types/source-list-map": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", - "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -5573,12 +6248,15 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/tapable": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", - "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "node_modules/@types/tedious": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", + "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/tough-cookie": { "version": "4.0.5", @@ -5587,73 +6265,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/uglify-js": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", - "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/@types/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/webpack": { - "version": "4.41.40", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz", - "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@types/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@types/ws": { "version": "8.18.1", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", @@ -5693,16 +6304,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.41.0.tgz", - "integrity": "sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.44.1.tgz", + "integrity": "sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.41.0", - "@typescript-eslint/types": "8.41.0", - "@typescript-eslint/typescript-estree": "8.41.0", - "@typescript-eslint/visitor-keys": "8.41.0", + "@typescript-eslint/scope-manager": "8.44.1", + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/typescript-estree": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1", "debug": "^4.3.4" }, "engines": { @@ -5718,14 +6329,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.41.0.tgz", - "integrity": "sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.44.1.tgz", + "integrity": "sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.41.0", - "@typescript-eslint/types": "^8.41.0", + "@typescript-eslint/tsconfig-utils": "^8.44.1", + "@typescript-eslint/types": "^8.44.1", "debug": "^4.3.4" }, "engines": { @@ -5740,14 +6351,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.41.0.tgz", - "integrity": "sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.44.1.tgz", + "integrity": "sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.41.0", - "@typescript-eslint/visitor-keys": "8.41.0" + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5758,9 +6369,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.41.0.tgz", - "integrity": "sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.44.1.tgz", + "integrity": "sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==", "dev": true, "license": "MIT", "engines": { @@ -5919,9 +6530,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.41.0.tgz", - "integrity": "sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.44.1.tgz", + "integrity": "sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==", "dev": true, "license": "MIT", "engines": { @@ -5933,16 +6544,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.41.0.tgz", - "integrity": "sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.44.1.tgz", + "integrity": "sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.41.0", - "@typescript-eslint/tsconfig-utils": "8.41.0", - "@typescript-eslint/types": "8.41.0", - "@typescript-eslint/visitor-keys": "8.41.0", + "@typescript-eslint/project-service": "8.44.1", + "@typescript-eslint/tsconfig-utils": "8.44.1", + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -6135,13 +6746,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.41.0.tgz", - "integrity": "sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.44.1.tgz", + "integrity": "sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.41.0", + "@typescript-eslint/types": "8.44.1", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -6152,19 +6763,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", @@ -6401,15 +6999,15 @@ } }, "node_modules/@wordpress/a11y": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.25.0.tgz", - "integrity": "sha512-9wJZC7gWUrDN1Ybch6pgGZL73kSm2b4dm9YDJtNJuCa/6T7TkVRVdpjVtnTLhvATPSXNV81P/bLK8fWbI3ze0A==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-4.31.0.tgz", + "integrity": "sha512-LU2Ea+RRaqe1Q8u15Y1dBxXfGwPsOtqXLZR7Bfk7y9yMsJnKqymovR7yvoPYe/4dWXy0B9sK1jUJtPAMUFfOng==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/dom-ready": "^4.25.0", - "@wordpress/i18n": "^5.25.0" + "@wordpress/dom-ready": "^4.31.0", + "@wordpress/i18n": "^6.4.0" }, "engines": { "node": ">=18.12.0", @@ -6429,10 +7027,32 @@ "node": ">=6.9.0" } }, + "node_modules/@wordpress/a11y/node_modules/@wordpress/i18n": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.4.0.tgz", + "integrity": "sha512-tLTjdLw8H778K4fmEo5NDLYJOAgvHxgfLU5N7lPuBy2TKi8tQl24xgmJOlDLiMzbmbSEwvUBZ/4xWJsGq9ITDQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.31.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, "node_modules/@wordpress/babel-preset-default": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.25.0.tgz", - "integrity": "sha512-8Sf4pkH7/4pcKt/jOkVNLOoScypMOM2xEHtyiTE5tHgX4z7UZRNbXFKqJ9fxDDb/cniDdNyeG5QhOLIZbO7hlg==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.31.0.tgz", + "integrity": "sha512-9ZOMKyhR5dBwFgXtxyGkwKp/tC6dcKm6zu8v5fXOepdF/in4Z+Bh438dTKCb6QHDcZrrv313S5bnxgWdWypC4A==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -6442,8 +7062,8 @@ "@babel/preset-env": "7.25.7", "@babel/preset-typescript": "7.25.7", "@babel/runtime": "7.25.7", - "@wordpress/browserslist-config": "^6.25.0", - "@wordpress/warning": "^3.25.0", + "@wordpress/browserslist-config": "^6.31.0", + "@wordpress/warning": "^3.31.0", "browserslist": "^4.21.10", "core-js": "^3.31.0", "react": "^18.3.0" @@ -6498,9 +7118,9 @@ } }, "node_modules/@wordpress/base-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.1.0.tgz", - "integrity": "sha512-5AC4M7jXQaSknrSiuBbUWJa00jYr6i3yABf93VFuVzy9QGZQTvupQo2/bi6uAZ98pDruniScrnJJq8UG6JsoJQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.7.0.tgz", + "integrity": "sha512-Ob2+lGMFJnPZE5OQLEsdvs2Rp1RxemqHufJFg00c5mWCXokKPaDBIa/EcS/O3nsQGA3qYHciUSM1uIYLOUdbzA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -6509,9 +7129,9 @@ } }, "node_modules/@wordpress/browserslist-config": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.25.0.tgz", - "integrity": "sha512-pJdhs1KJES46Z7/EFA4clmXlc+BBMlDrtFjoBX1FC5Lqh4RfJ1YD7VGdMSSuQpCF2iIrU4AijR31AZQ8NOy5mQ==", + "version": "6.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.31.0.tgz", + "integrity": "sha512-ZZZz/VjbHyDEc6/yOzyjyDkBAPbn5+nuDgujwm/GXTo2u0RoyiPTl/uuRsqz32JYhRHMhETxsQPdMZfrAh9lkg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -6520,9 +7140,9 @@ } }, "node_modules/@wordpress/components": { - "version": "29.11.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-29.11.0.tgz", - "integrity": "sha512-p/hicoCxHo4uC5DeGsdLme/JcRwedFkNctKS7uo5dy05odWXWOPDLiSsWYz6F7uCKbmBJNucxdF3f42YTh6y1Q==", + "version": "29.12.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-29.12.0.tgz", + "integrity": "sha512-jE96pUj84OZya54VusRdEIdTiLjbe2Qst3GbHZcQpA5GiSkPBmGjKWpO6FxR7kRDT4GMnZoVxgtV6xJk4IaNQw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -6538,23 +7158,23 @@ "@types/gradient-parser": "0.1.3", "@types/highlight-words-core": "1.2.1", "@use-gesture/react": "^10.3.1", - "@wordpress/a11y": "^4.25.0", - "@wordpress/compose": "^7.25.0", - "@wordpress/date": "^5.25.0", - "@wordpress/deprecated": "^4.25.0", - "@wordpress/dom": "^4.25.0", - "@wordpress/element": "^6.25.0", - "@wordpress/escape-html": "^3.25.0", - "@wordpress/hooks": "^4.25.0", - "@wordpress/html-entities": "^4.25.0", - "@wordpress/i18n": "^5.25.0", - "@wordpress/icons": "^10.25.0", - "@wordpress/is-shallow-equal": "^5.25.0", - "@wordpress/keycodes": "^4.25.0", - "@wordpress/primitives": "^4.25.0", - "@wordpress/private-apis": "^1.25.0", - "@wordpress/rich-text": "^7.25.0", - "@wordpress/warning": "^3.25.0", + "@wordpress/a11y": "^4.26.0", + "@wordpress/compose": "^7.26.0", + "@wordpress/date": "^5.26.0", + "@wordpress/deprecated": "^4.26.0", + "@wordpress/dom": "^4.26.0", + "@wordpress/element": "^6.26.0", + "@wordpress/escape-html": "^3.26.0", + "@wordpress/hooks": "^4.26.0", + "@wordpress/html-entities": "^4.26.0", + "@wordpress/i18n": "^5.26.0", + "@wordpress/icons": "^10.26.0", + "@wordpress/is-shallow-equal": "^5.26.0", + "@wordpress/keycodes": "^4.26.0", + "@wordpress/primitives": "^4.26.0", + "@wordpress/private-apis": "^1.26.0", + "@wordpress/rich-text": "^7.26.0", + "@wordpress/warning": "^3.26.0", "change-case": "^4.1.2", "clsx": "^2.1.1", "colord": "^2.7.0", @@ -6616,21 +7236,21 @@ } }, "node_modules/@wordpress/compose": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.25.0.tgz", - "integrity": "sha512-nfjtMZgrhdHU8/zOLUyA5o8ShLot1vbHZ0I2+IxLyNskRMVyR9pm4BAJSYKJ9XqBUom2/N51gfeKg5uhd9Y0TQ==", + "version": "7.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-7.31.0.tgz", + "integrity": "sha512-kxb1qHhiFwUDifBM9r4JZ3gYC1ZUvck5tgjmaWeg8EqIEnVn+Z7C+ntNA9ySLWrmDYc4Gki7YJZbfVHzrtcDLg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^4.25.0", - "@wordpress/dom": "^4.25.0", - "@wordpress/element": "^6.25.0", - "@wordpress/is-shallow-equal": "^5.25.0", - "@wordpress/keycodes": "^4.25.0", - "@wordpress/priority-queue": "^3.25.0", - "@wordpress/undo-manager": "^1.25.0", + "@wordpress/deprecated": "^4.31.0", + "@wordpress/dom": "^4.31.0", + "@wordpress/element": "^6.31.0", + "@wordpress/is-shallow-equal": "^5.31.0", + "@wordpress/keycodes": "^4.31.0", + "@wordpress/priority-queue": "^3.31.0", + "@wordpress/undo-manager": "^1.31.0", "change-case": "^4.1.2", "clipboard": "^2.0.11", "mousetrap": "^1.6.5", @@ -6658,20 +7278,20 @@ } }, "node_modules/@wordpress/data": { - "version": "10.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.25.0.tgz", - "integrity": "sha512-PHfF7S2jhgcH9D3Z9nskaQEDIbh0k0MX6KprzK4plT4Xu71YboMVWnBx78glzMMu17DOFoHJC25d+ymfGBM5rw==", + "version": "10.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-10.31.0.tgz", + "integrity": "sha512-iuQxrmbW55q+xy7lnXH8D6qHFAoG0/YcnjZ6jvqpDekRhdgl4kAPE+crx/kJ5RkrIIo38a+cLgVskCaKo+9E3w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/compose": "^7.25.0", - "@wordpress/deprecated": "^4.25.0", - "@wordpress/element": "^6.25.0", - "@wordpress/is-shallow-equal": "^5.25.0", - "@wordpress/priority-queue": "^3.25.0", - "@wordpress/private-apis": "^1.25.0", - "@wordpress/redux-routine": "^5.25.0", + "@wordpress/compose": "^7.31.0", + "@wordpress/deprecated": "^4.31.0", + "@wordpress/element": "^6.31.0", + "@wordpress/is-shallow-equal": "^5.31.0", + "@wordpress/priority-queue": "^3.31.0", + "@wordpress/private-apis": "^1.31.0", + "@wordpress/redux-routine": "^5.31.0", "deepmerge": "^4.3.0", "equivalent-key-map": "^0.2.2", "is-plain-object": "^5.0.0", @@ -6702,14 +7322,14 @@ } }, "node_modules/@wordpress/date": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.25.0.tgz", - "integrity": "sha512-w3De486/qx2/MbxCCjiW7KS8lGhJ00VvnrbXRlrY9l/6yqbz0iMVglmFKrlLPftgutyhe3OSOSZsXX/uCF6yOg==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-5.31.0.tgz", + "integrity": "sha512-xqKytkb60N9i+ETqTI+Asgb1myZIgnUne8zsGaYQU+B7H1M3ELw4lmc+ptDXjXrpI1Yb6BGUad4EIHBGVk+mog==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/deprecated": "^4.25.0", + "@wordpress/deprecated": "^4.31.0", "moment": "^2.29.4", "moment-timezone": "^0.5.40" }, @@ -6732,9 +7352,9 @@ } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.25.0.tgz", - "integrity": "sha512-bAVve8ksBNfCcBq09IoTLCdF604UXtVh4Fb+/LBqyJc1kTTS02PsIv5aguSvCjcNSakQgvs7IJqEGJ2ZmP4JZg==", + "version": "6.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.31.0.tgz", + "integrity": "sha512-5PFebfXy1nCV6qj54CDqMRTfcy5bf9/KPo0VvPATZeqQbhQ9rvbt7v1nkbwYQ/Nf/2meKm3J0zt25M93rpJctQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -6756,14 +7376,14 @@ "license": "BSD" }, "node_modules/@wordpress/deprecated": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.25.0.tgz", - "integrity": "sha512-NfVGSVfAESrgQRQu5QpyprTsDY0BLq6hJ2KrWlpscLetApxU5kSpP/wRzmjbtuuWSr5RsoopaeoTbiZNXb0QEA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-4.31.0.tgz", + "integrity": "sha512-bbDrL2lp7crFfvmJ1EYVxPDcheTIwimt3gVzqQWCDr0SSCQw4fii5NEKOrUnWhz51YCuPbfWXUBaFlbAMS2CXw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/hooks": "^4.25.0" + "@wordpress/hooks": "^4.31.0" }, "engines": { "node": ">=18.12.0", @@ -6784,14 +7404,14 @@ } }, "node_modules/@wordpress/dom": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.25.0.tgz", - "integrity": "sha512-uyP8oTjSYjU+OXSvpPITqMaF9Dk50WH7fiQIVUcjC/9VmrzIiaYaZ4USmuoUBtbFjJsSyANHw/anYMFqby9iIA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-4.31.0.tgz", + "integrity": "sha512-5/RBy9OreQktnBE75cB3R6Lva5c6hUlXvPo1NFfAebLeXX+7swZBmLYZnyf7dZbARRdqSwkundHZoKLcHa+20A==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/deprecated": "^4.25.0" + "@wordpress/deprecated": "^4.31.0" }, "engines": { "node": ">=18.12.0", @@ -6799,9 +7419,9 @@ } }, "node_modules/@wordpress/dom-ready": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.25.0.tgz", - "integrity": "sha512-HvGxncRhskqrkwyIPVsfznToFtSr6X0zBrIMHK7bgwGGiMr+yz5jYX3wnY1AsUDSr95ezhbCTdE2rNmvFkCD0g==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-4.31.0.tgz", + "integrity": "sha512-aRM4l5wzkrqAU686s4fz1bb+/7/BOFp+sXB0kx1vkiXl3ocfmHAr3jwEYU+OH/sX6Is3Ntkfh0uZe3EJLsqHTQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -6839,9 +7459,9 @@ } }, "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.25.0.tgz", - "integrity": "sha512-M1jn4qH9iq1igLZ+sMQYNWp0P1tDgDsXF1iWWdqRn9wWcwHFn7iyDEEZ68uXzNvavkGyIHxZIoBcmKGeUA11/A==", + "version": "1.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.31.0.tgz", + "integrity": "sha512-iOMZfnYxartxmI/9nnCzPH6LbveFxKdtpT040U4ccTYtN33YiUTPap9pDmwmR+Lc6UC9nIzdfQVmgbFly25q1A==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -6861,16 +7481,16 @@ } }, "node_modules/@wordpress/element": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.25.0.tgz", - "integrity": "sha512-zxdaf2s/en5Y+DfiswRZtQ+P8SvQ18+l5I2WmHb66+bVkFg7jrN+AJqLk86k2zcalOEjx7Fg4cce1wWytp8Wsw==", + "version": "6.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.31.0.tgz", + "integrity": "sha512-KOier6Y4b4Y5yEV1GYen81R9gCEOvJT6eVbsc93w2fFEKi2FK/oI7IKzGv9GeJMkoCWvTSX6C/ZYTWk6fCUfeA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", - "@wordpress/escape-html": "^3.25.0", + "@wordpress/escape-html": "^3.31.0", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", "react": "^18.3.0", @@ -6895,10 +7515,11 @@ } }, "node_modules/@wordpress/env": { - "version": "10.28.0", - "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.28.0.tgz", - "integrity": "sha512-4SbePb8kcD3mCUb2LXDp27luIP+ocT6Mvg42GK0loeUHk9KeiQJvrCvb6g2EFl0oVoOrX5voLb23x/+V3GIH0Q==", + "version": "10.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.31.0.tgz", + "integrity": "sha512-y/qCaz6CpAkjNgdCyZ7IQk56E0tvED6k6lwebWzlV5uN6fnoftjsAzh8RMu4Q+yxjycQaAv7TEd1K4kj/Y4zww==", "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { "@inquirer/prompts": "^7.2.0", "chalk": "^4.0.0", @@ -6921,13 +7542,14 @@ "npm": ">=8.19.2" } }, - "node_modules/@wordpress/env/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@wordpress/env/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "sprintf-js": "~1.0.2" } }, "node_modules/@wordpress/env/node_modules/docker-compose": { @@ -6935,6 +7557,7 @@ "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.8.tgz", "integrity": "sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==", "dev": true, + "license": "MIT", "dependencies": { "yaml": "^2.2.2" }, @@ -6942,67 +7565,33 @@ "node": ">= 6.0.0" } }, - "node_modules/@wordpress/env/node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - } - }, - "node_modules/@wordpress/env/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/@wordpress/env/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@wordpress/env/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/@wordpress/env/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "node_modules/@wordpress/env/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "BSD-3-Clause" }, "node_modules/@wordpress/env/node_modules/yaml": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -7011,9 +7600,9 @@ } }, "node_modules/@wordpress/escape-html": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.25.0.tgz", - "integrity": "sha512-sQ3graObu5K/RWrngk9bsULJ+9E7QLC6gMG34ja0Jm1LdeRjVgHv3FqP/uIkL36EvxEkjQ0LSbgbZsdV/E1q0w==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.31.0.tgz", + "integrity": "sha512-9g9qd7Q16PWDeYEa2dU+84d1SvjP4LfS7n7AuXkwl5+F7KfL2nZTmDTHWutw9jVjdDAGmjm1VNIj4ydQk9vaLA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7038,17 +7627,17 @@ } }, "node_modules/@wordpress/eslint-plugin": { - "version": "22.11.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.11.0.tgz", - "integrity": "sha512-JxN4T7r0k9lePG1dDJ2bxyqc5zFtLeTY0Ns8EfU2G/QZsB6gvxGTLhK2u6csflswUt2vnJ3oCT5MbPfANJuLDg==", + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-22.17.0.tgz", + "integrity": "sha512-2Qu8YxjbpvvSblPpYm0otOWUSILX3DmEcUPLrBTW4dD3VlYDr3O0Wk2pk+fmGMVZxt6bZ5cd4bkV1oCnW/3DyQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/eslint-parser": "7.25.7", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", - "@wordpress/babel-preset-default": "^8.25.0", - "@wordpress/prettier-config": "^4.25.0", + "@wordpress/babel-preset-default": "^8.31.0", + "@wordpress/prettier-config": "^4.31.0", "cosmiconfig": "^7.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.2", @@ -7385,22 +7974,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@wordpress/eslint-plugin/node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", @@ -7443,23 +8016,10 @@ "typescript": ">=4.2.0" } }, - "node_modules/@wordpress/eslint-plugin/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@wordpress/hooks": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.25.0.tgz", - "integrity": "sha512-IWqgozRE+8PE96TIsf5bfS7ezZfvleSm1YZAuhAWYH7QUVm07WK7/yhhDYkj9QyTpWSZnGkmR7YYH/NJ8jaMDQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.31.0.tgz", + "integrity": "sha512-8YOftWP54V4hvO46/FgXnpiB/fAC72CWD/F1JYtcfZcrWgbR96MGZxKXNvn5BgLx6juO36QQuFhJ5y2ZUEulkw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7484,9 +8044,9 @@ } }, "node_modules/@wordpress/html-entities": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.25.0.tgz", - "integrity": "sha512-SEf8nnLm85KH2fZiEzUgLuh4Nd53iW0rmA5k9xM7n0uM6BA6HMDidtT/5wxTlnMH8cxOSjL2IkCHwhuRFTibbg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.31.0.tgz", + "integrity": "sha512-5dk9h16jSXDTSdk0HnyXEOgZd7VSsMtr3YCSUQvzIYOFkpW2q1eB10coXHiuz0Z5ArlTuNYSfBd2J02xnG+a8g==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7511,14 +8071,14 @@ } }, "node_modules/@wordpress/i18n": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-5.25.0.tgz", - "integrity": "sha512-6MWkwmA9dwiLA+N4cj81JxxSqgJ+5HeLZHa3Sy2u7A2f4wgGCH+Bj2T6eQnZdky9fMy4vjvUpUZdv5sdmtYJlQ==", + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-5.26.0.tgz", + "integrity": "sha512-YHzaUWlCuN2ynl47qbsdMkTGtP52+E1giDOdWBgUaSexUYjbeFxKFUzRMB0Wuh1psL80+VzvJOH/mU440KAJnA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/hooks": "^4.25.0", + "@wordpress/hooks": "^4.26.0", "gettext-parser": "^1.3.1", "memize": "^2.1.0", "sprintf-js": "^1.1.1", @@ -7546,15 +8106,15 @@ } }, "node_modules/@wordpress/icons": { - "version": "10.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.25.0.tgz", - "integrity": "sha512-CNAgZ0ZE6pPjLWxPLBdmIQlxpkQCNZ9Zv4wuUDSMqG0jJDdf+YCpklwIMLWbv9WVubmzgURo54qeCedbpXhCjA==", + "version": "10.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-10.31.0.tgz", + "integrity": "sha512-Bfwt3SyjqClG6mwY78zhlzVRRW/OIqej09NLOGO0CDtjfrgQqD5HAK8kk2CayQr4hWeKMoFxzPBevMxWumBMPA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/element": "^6.25.0", - "@wordpress/primitives": "^4.25.0" + "@wordpress/element": "^6.31.0", + "@wordpress/primitives": "^4.31.0" }, "engines": { "node": ">=18.12.0", @@ -7575,9 +8135,9 @@ } }, "node_modules/@wordpress/is-shallow-equal": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.25.0.tgz", - "integrity": "sha512-/37IIoJz8/mp7TGZbdmakXr6YKqvpjYUHJx9LA9ibVVh6AsM72nI7N5V3AsGndan46vItfzhs0zpEWI7xF86Gw==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.31.0.tgz", + "integrity": "sha512-jqGEw+5DLNf2kNbjaNxIKWQGYkqxygRYDYTdhZ+f+Btw/gMKILJq0sZGRD8YjJFGG0cOC2qxtJnr9oF36Iu96Q==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7602,9 +8162,9 @@ } }, "node_modules/@wordpress/jest-console": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.25.0.tgz", - "integrity": "sha512-X2YzKV1Pv5PC6QHqUp+FDlBgu7C+a2Yxdk6p4XDsTIjLV+I7eQuAdBUMzjyKSd1wN/Tx0x6Dr7/HmrV0ThRm1Q==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.31.0.tgz", + "integrity": "sha512-pkeMoLokwUTsQpDxmzKtLS10JQhVln+TgibuDiygCnEWnR78G6++1l4PPgtRR33qdwyXlWIDZhLdBBGRRA3sOg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7633,13 +8193,13 @@ } }, "node_modules/@wordpress/jest-preset-default": { - "version": "12.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.25.0.tgz", - "integrity": "sha512-YLKfgQl5ZW63XuJh24Mzv1yXIO4otTXg9fTbSsEAHhZI8KQL9VuFJgNQ4hE8lZV2Wbmy6Njh8q4TY05/oMJ3KA==", + "version": "12.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.31.0.tgz", + "integrity": "sha512-e03LT1SvaciRhSfVkn6ZpAvZ6B8non9NKfdYNV9N6WQiVlega6S0I8gDS7/IDhEwa8RqQA8lWzqhrrcr3tj4cQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/jest-console": "^8.25.0", + "@wordpress/jest-console": "^8.31.0", "babel-jest": "29.7.0" }, "engines": { @@ -7652,14 +8212,14 @@ } }, "node_modules/@wordpress/keycodes": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.25.0.tgz", - "integrity": "sha512-cnV4/7RY4m+DNo3BF10pHdFITKyoYr4TqvcSmka5O7RulPQi/PTeLcFgTTM+LrULGSNfV5ZUgIuPwLpLA5pqGQ==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-4.31.0.tgz", + "integrity": "sha512-TmweVWZKUu3DreU9SAX69h7wGNnsl5cnN5S3RTVK3aMNOGhJabC7j7rueCmBgqgOFvzNEXeIL+SuYtWpIyEVsA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/i18n": "^5.25.0" + "@wordpress/i18n": "^6.4.0" }, "engines": { "node": ">=18.12.0", @@ -7671,24 +8231,46 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", "dev": true, - "license": "MIT", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@wordpress/keycodes/node_modules/@wordpress/i18n": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.4.0.tgz", + "integrity": "sha512-tLTjdLw8H778K4fmEo5NDLYJOAgvHxgfLU5N7lPuBy2TKi8tQl24xgmJOlDLiMzbmbSEwvUBZ/4xWJsGq9ITDQ==", + "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@babel/runtime": "7.25.7", + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.31.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=18.12.0", + "npm": ">=8.19.2" } }, "node_modules/@wordpress/notices": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.25.0.tgz", - "integrity": "sha512-BvgvvFPa9eA98Xiyb0NeTqfuVfD+5TMfBmWId+y6iwbplKHetW/Bj/36qRWzUGptPh3ae7NKc/ovi4KDO4t9og==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-5.31.0.tgz", + "integrity": "sha512-dU8ARG3UP1PSmPMfQNrz1DpDIn5xuW6t1J+mVkyAbq2o1+Fs72Fsmi6hXPc0ut+P0pGTmsASzIeo7CzZUihmGw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/a11y": "^4.25.0", - "@wordpress/data": "^10.25.0" + "@wordpress/a11y": "^4.31.0", + "@wordpress/data": "^10.31.0" }, "engines": { "node": ">=18.12.0", @@ -7712,9 +8294,9 @@ } }, "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.25.0.tgz", - "integrity": "sha512-wB35qxGlVkBx0GdoxDXjySMACHYgfrFacYcP6IkYHMu1e7/HU/Kz8ZW2g+4A+nea/SPO46V6xuSbayrYy6c+UQ==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.31.0.tgz", + "integrity": "sha512-FKlLoQx6q9lc/9drC77uHePYYnFCKKa/4ozmHHWad+EHKukmHZjoMnObv0cry4lsA/NCoUORDDODUjfiUFuliA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -7726,13 +8308,13 @@ } }, "node_modules/@wordpress/postcss-plugins-preset": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.25.0.tgz", - "integrity": "sha512-J9RK9R1cwiOBXC/iORi1Kz1i9VEASAv7OnERGxtHtbXFsPXq1cHDNJ3slwYGovUPjMOvfDNMjCgTWtM3MizEag==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.31.0.tgz", + "integrity": "sha512-nGhn23e5lRfFD9nba7CI7MgJRA8pKDrzmqmly+Z5Wc1ggcpJayiCCc1y8Rujotr2gSMJO29wwr4RMW6yIDqbEw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/base-styles": "^6.1.0", + "@wordpress/base-styles": "^6.7.0", "autoprefixer": "^10.4.20" }, "engines": { @@ -7744,9 +8326,9 @@ } }, "node_modules/@wordpress/prettier-config": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.25.0.tgz", - "integrity": "sha512-P18anKvMO9lEpr2827No0SFmeypX1A5Ce3DZ4NdNNnoJRGYkdlwRzwMpMoB9XpAQz5o45ystBrak2/OqzdBWLg==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.31.0.tgz", + "integrity": "sha512-gEnLhuM27DFZIdDaftx32ZCdiklP0mvTNTYDULpJ00HQyq0sqTAJ9bjWYR9YSt+2pCfwFd4o721f9vT2fVYoTA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -7758,14 +8340,14 @@ } }, "node_modules/@wordpress/primitives": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.25.0.tgz", - "integrity": "sha512-I8voo9KWDFOgVUzxO0n1UtaTGBwhA/MuYmh6Bpn4M33SQAm4K5aUFidnJOelILWSA4Ox4R7wskGhuItfyty1LA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.31.0.tgz", + "integrity": "sha512-cY4EKYQRqHu9NZuoWchxc/KWiofwGskzxz0oCfgbdkRlfTag8yBjWMayz+fRNaenw0l5pzLyIg3rcNDN8xLezw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/element": "^6.25.0", + "@wordpress/element": "^6.31.0", "clsx": "^2.1.1" }, "engines": { @@ -7800,9 +8382,9 @@ } }, "node_modules/@wordpress/priority-queue": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.25.0.tgz", - "integrity": "sha512-HtN8G1o/TaUIhapJf6Kq2dy1OOpC1beGB7sJUvq5JrwKd3VRdrXx0K3HKoHe99EJoE9v6lgEIS5VtVIaW0u0cQ==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-3.31.0.tgz", + "integrity": "sha512-OuHq9iGB8wppHfoMHs4g07Cc2yh2DyyqySDn+bpyXPbDcuqxU9s9EgjY08ZVjJEYMuFz2sjC16HlOFqv3NBYAg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7828,9 +8410,9 @@ } }, "node_modules/@wordpress/private-apis": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.25.0.tgz", - "integrity": "sha512-O+Vo4h1CjKkYubduKVXW2fi7vvse7YyyvQOEdCut0Sl9uc0lVoHB0Wstc2sHllDTAI2fyjTLrLbddYuM7sVvMA==", + "version": "1.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.31.0.tgz", + "integrity": "sha512-OS/OvnUFj2QKeAsPGwgzETLPQhN8Ek1AC3q7rpuu+kZhZxB5hOsHDF/759XxH0fGPL/n0/Xqo4ZlnVYwPwqMPg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7855,9 +8437,9 @@ } }, "node_modules/@wordpress/redux-routine": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.25.0.tgz", - "integrity": "sha512-0YZNyuL1QO3CbA6njHzoHMmYX+tnOSUIOpag5jeeNKzNE7iThKRmD07HtMo+hL5B3EFumvWDXlwOLpoi2xBJuw==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.31.0.tgz", + "integrity": "sha512-J16NmvIxWMU4lJMWrAshLCac5qjIs1QZnSzQXNKBXxg78ZjB7sa5Q9Qb8/aYxFVIIzTvpvDQVyHhHPcUnB4KYA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -7888,21 +8470,22 @@ } }, "node_modules/@wordpress/rich-text": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.25.0.tgz", - "integrity": "sha512-7M7kD5ix4XjuNRZP4ijG9jGhK+alMVO9nB2jCHIZW8RoGpnZ5QdITGQ25OOYhcIcBhRcAxP+1JS0yn2qzqkBOw==", + "version": "7.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-7.31.0.tgz", + "integrity": "sha512-s1CHb9vFYxa/fOPXSMn8GauOYb+gSVczHHx06Hj86JilGNAKmALADqzR+6D6ACKjahQypduYsF9P669PY7+PrQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/a11y": "^4.25.0", - "@wordpress/compose": "^7.25.0", - "@wordpress/data": "^10.25.0", - "@wordpress/deprecated": "^4.25.0", - "@wordpress/element": "^6.25.0", - "@wordpress/escape-html": "^3.25.0", - "@wordpress/i18n": "^5.25.0", - "@wordpress/keycodes": "^4.25.0", + "@wordpress/a11y": "^4.31.0", + "@wordpress/compose": "^7.31.0", + "@wordpress/data": "^10.31.0", + "@wordpress/deprecated": "^4.31.0", + "@wordpress/element": "^6.31.0", + "@wordpress/escape-html": "^3.31.0", + "@wordpress/i18n": "^6.4.0", + "@wordpress/keycodes": "^4.31.0", + "colord": "2.9.3", "memize": "^2.1.0" }, "engines": { @@ -7926,33 +8509,54 @@ "node": ">=6.9.0" } }, + "node_modules/@wordpress/rich-text/node_modules/@wordpress/i18n": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-6.4.0.tgz", + "integrity": "sha512-tLTjdLw8H778K4fmEo5NDLYJOAgvHxgfLU5N7lPuBy2TKi8tQl24xgmJOlDLiMzbmbSEwvUBZ/4xWJsGq9ITDQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "7.25.7", + "@tannin/sprintf": "^1.3.2", + "@wordpress/hooks": "^4.31.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, "node_modules/@wordpress/scripts": { - "version": "30.18.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.18.0.tgz", - "integrity": "sha512-NVtJYcmWjq57TDc0kStw0oeejpejH2KSJklOrDKf4Sah4gDQqy695COnHSVVoujCgUm6a5uv5+3mpujF08JsRA==", + "version": "30.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.24.0.tgz", + "integrity": "sha512-8L2tDBcopC0uFbIH7mFUNM+6Ib+hvc+56L5hOMVmwMNMUSSTXxrnEelsbhc/SM99E3Dy75KFa18lk2Y3Dzr5IQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/core": "7.25.7", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@svgr/webpack": "^8.0.1", - "@wordpress/babel-preset-default": "^8.25.0", - "@wordpress/browserslist-config": "^6.25.0", - "@wordpress/dependency-extraction-webpack-plugin": "^6.25.0", - "@wordpress/e2e-test-utils-playwright": "^1.25.0", - "@wordpress/eslint-plugin": "^22.11.0", - "@wordpress/jest-preset-default": "^12.25.0", - "@wordpress/npm-package-json-lint-config": "^5.25.0", - "@wordpress/postcss-plugins-preset": "^5.25.0", - "@wordpress/prettier-config": "^4.25.0", - "@wordpress/stylelint-config": "^23.17.0", + "@wordpress/babel-preset-default": "^8.31.0", + "@wordpress/browserslist-config": "^6.31.0", + "@wordpress/dependency-extraction-webpack-plugin": "^6.31.0", + "@wordpress/e2e-test-utils-playwright": "^1.31.0", + "@wordpress/eslint-plugin": "^22.17.0", + "@wordpress/jest-preset-default": "^12.31.0", + "@wordpress/npm-package-json-lint-config": "^5.31.0", + "@wordpress/postcss-plugins-preset": "^5.31.0", + "@wordpress/prettier-config": "^4.31.0", + "@wordpress/stylelint-config": "^23.23.0", "adm-zip": "^0.5.9", "babel-jest": "29.7.0", "babel-loader": "9.2.1", "browserslist": "^4.21.10", "chalk": "^4.0.0", "check-node-version": "^4.1.0", - "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^10.2.0", "cross-spawn": "^7.0.6", "css-loader": "^6.2.0", @@ -8002,9 +8606,15 @@ "npm": ">=8.19.2" }, "peerDependencies": { - "@playwright/test": "^1.51.1", + "@playwright/test": "^1.55.0", + "@wordpress/env": "^10.0.0", "react": "^18.0.0", "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@wordpress/env": { + "optional": true + } } }, "node_modules/@wordpress/scripts/node_modules/@babel/core": { @@ -8297,9 +8907,9 @@ } }, "node_modules/@wordpress/stylelint-config": { - "version": "23.17.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.17.0.tgz", - "integrity": "sha512-FYA2pEJWLfC3g08rmBmEY6frRD45NLBpLX1W4tLgPDFwC21WHr9aEvIdPS4YF+1/kNwRGWdkTITcR2Lq5dZ4wg==", + "version": "23.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.23.0.tgz", + "integrity": "sha512-YgaXlLieNrvES5qasprBmkXDQhbNWZFI2cc/aHrGl27ZbEeS/sn3s/lNQCEF5y8y36xe6Jhtydsw5WFG64ZAqA==", "dev": true, "license": "MIT", "dependencies": { @@ -8317,14 +8927,14 @@ } }, "node_modules/@wordpress/undo-manager": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.25.0.tgz", - "integrity": "sha512-Y+f8Xa+vpG+Cj/ekeI6ky54p/UTlFUZmutBusmsH+QzaGHb9bVKHPhXfTLyjhdDIUE3YV0vqz32DjNrbuiGRWg==", + "version": "1.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.31.0.tgz", + "integrity": "sha512-4jsvLaf+O/AMX/2m34BHS4Jz/Z+9vfxkNLP0mhuqftOWRC66XFseMqU19VszQypL7VxWKMahenYqZw4O22JNnQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "7.25.7", - "@wordpress/is-shallow-equal": "^5.25.0" + "@wordpress/is-shallow-equal": "^5.31.0" }, "engines": { "node": ">=18.12.0", @@ -8345,9 +8955,9 @@ } }, "node_modules/@wordpress/warning": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.25.0.tgz", - "integrity": "sha512-Pp4+1zgY6wDqiGPpb33+B7YplujkFyMVmi2VDBbJcy/OEXNU/cowfjYuGxgyQpJlCpKnrmVYV+snowZ3Iytk0g==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.31.0.tgz", + "integrity": "sha512-Npw1Apa6r+K+jtX40ABWAXv7J1bVnOi6h9VPiMY8l/iZoRHBXao8HTgQnIoCm+GzymaQs6NQoH4X8UAClggeXA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -8402,9 +9012,9 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -8425,6 +9035,29 @@ "acorn-walk": "^8.0.2" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -8576,6 +9209,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-html": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", @@ -8663,21 +9309,11 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "BSD-3-Clause" + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", @@ -8704,6 +9340,7 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -8765,16 +9402,6 @@ "node": ">=8" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -8957,10 +9584,21 @@ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, + "node_modules/atomically": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.0.3.tgz", + "integrity": "sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==", + "dev": true, + "dependencies": { + "stubborn-fs": "^1.2.5", + "when-exit": "^2.1.1" + } + }, "node_modules/autoprefixer": { "version": "10.4.21", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", @@ -9026,14 +9664,14 @@ } }, "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "dev": true, "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -9047,13 +9685,6 @@ "node": ">= 0.4" } }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -9143,14 +9774,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -9172,22 +9803,22 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-preset-current-node-syntax": { - "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "license": "MIT", "dependencies": { @@ -9208,7 +9839,7 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "node_modules/babel-preset-jest": { @@ -9236,24 +9867,25 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz", + "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==", "dev": true, - "license": "Apache-2.0", - "optional": true + "license": "Apache-2.0" }, "node_modules/bare-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.5.tgz", - "integrity": "sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.5.tgz", + "integrity": "sha512-TCtu93KGLu6/aiGWzMr12TmSRS6nKdfhAnzTQRbXoSWxkbb9eRd53jQ51jG7g1gYjjtto3hbBrrhzg6djcgiKg==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", - "bare-stream": "^2.6.4" + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" }, "engines": { "bare": ">=1.16.0" @@ -9268,9 +9900,9 @@ } }, "node_modules/bare-os": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", - "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -9290,9 +9922,9 @@ } }, "node_modules/bare-stream": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", - "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -9312,6 +9944,17 @@ } } }, + "node_modules/bare-url": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.2.2.tgz", + "integrity": "sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -9333,6 +9976,16 @@ ], "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.9.tgz", + "integrity": "sha512-hY/u2lxLrbecMEWSB0IpGzGyDyeoMFQhCvZd2jGFSE5I17Fh01sYUBPCJtkWERw7zrac9+cIghxm/ytJa2X8iA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/basic-ftp": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", @@ -9447,9 +10100,9 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9470,9 +10123,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "version": "4.26.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", + "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", "dev": true, "funding": [ { @@ -9490,9 +10143,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", + "baseline-browser-mapping": "^2.8.3", + "caniuse-lite": "^1.0.30001741", + "electron-to-chromium": "^1.5.218", + "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { @@ -9578,14 +10232,17 @@ } }, "node_modules/cacheable": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.9.0.tgz", - "integrity": "sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.0.2.tgz", + "integrity": "sha512-dWjhLx8RWnPsAWVKwW/wI6OJpQ/hSVb1qS0NUif8TR9vRiSwci7Gey8x04kRU9iAF+Rnbtex5Kjjfg/aB5w8Pg==", "dev": true, "license": "MIT", "dependencies": { - "hookified": "^1.8.2", - "keyv": "^5.3.3" + "@cacheable/memoize": "^2.0.2", + "@cacheable/memory": "^2.0.2", + "@cacheable/utils": "^2.0.2", + "hookified": "^1.12.1", + "keyv": "^5.5.2" } }, "node_modules/cacheable-lookup": { @@ -9593,6 +10250,7 @@ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.6.0" } @@ -9602,6 +10260,7 @@ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "dev": true, + "license": "MIT", "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -9615,29 +10274,14 @@ "node": ">=8" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cacheable/node_modules/keyv": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.3.tgz", - "integrity": "sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.3.tgz", + "integrity": "sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==", "dev": true, "license": "MIT", "dependencies": { - "@keyv/serialize": "^1.0.3" + "@keyv/serialize": "^1.1.1" } }, "node_modules/call-bind": { @@ -9751,6 +10395,16 @@ "node": ">=6" } }, + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -9765,9 +10419,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001721", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", - "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", + "version": "1.0.30001745", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz", + "integrity": "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==", "dev": true, "funding": [ { @@ -9849,7 +10503,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/check-node-version": { "version": "4.2.1", @@ -9902,9 +10557,9 @@ } }, "node_modules/chrome-launcher": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.0.tgz", - "integrity": "sha512-JbuGuBNss258bvGil7FT4HKdC3SC2K7UAEUqiPy3ACS3Yxo3hAW6bvFpCu2HsIJLgTqxgEX6BkujvzZfLpUD0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.1.tgz", + "integrity": "sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9973,28 +10628,12 @@ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", "license": "MIT" }, - "node_modules/clean-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/webpack": "^4.4.31", - "del": "^4.1.1" - }, - "engines": { - "node": ">=8.9.0" - }, - "peerDependencies": { - "webpack": "*" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -10007,6 +10646,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -10019,6 +10659,7 @@ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } @@ -10050,11 +10691,30 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -10094,6 +10754,7 @@ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" }, @@ -10179,6 +10840,7 @@ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", "find-replace": "^5.0.2", @@ -10238,9 +10900,9 @@ } }, "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", "dev": true, "license": "MIT", "dependencies": { @@ -10248,7 +10910,7 @@ "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, @@ -10288,6 +10950,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -10295,89 +10958,25 @@ "typedarray": "^0.0.6" } }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz", + "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/configstore/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" + "atomically": "^2.0.3", + "dot-prop": "^9.0.0", + "graceful-fs": "^4.2.11", + "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -10451,12 +11050,13 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.3.0.tgz", "integrity": "sha512-Q4+qBFnN4bwGwvtXXzbp4P/4iNk0MaiGAzvQ8OiMtlLjkIKjmNN689uVzShSM0908q7GoFHXIPx4zi75ocoaHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/copy-webpack-plugin": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.0.tgz", - "integrity": "sha512-FgR/h5a6hzJqATDGd9YG41SeDViH+0bkHn6WNXCi5zKAZkeESeSxLySSsFLHqLEVCh0E+rITmCf0dusXWYukeQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz", + "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==", "dev": true, "license": "MIT", "dependencies": { @@ -10478,9 +11078,9 @@ } }, "node_modules/core-js": { - "version": "3.42.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz", - "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", + "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -10490,13 +11090,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.42.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", - "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", + "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.4" + "browserslist": "^4.25.3" }, "funding": { "type": "opencollective", @@ -10504,9 +11104,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.42.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.42.0.tgz", - "integrity": "sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==", + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.45.1.tgz", + "integrity": "sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -10572,17 +11172,7 @@ "which": "^2.0.1" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">= 8" } }, "node_modules/csp_evaluator": { @@ -10593,9 +11183,9 @@ "license": "Apache-2.0" }, "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz", + "integrity": "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==", "dev": true, "license": "ISC", "engines": { @@ -10665,9 +11255,9 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -10696,9 +11286,9 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -11010,9 +11600,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -11064,9 +11654,9 @@ } }, "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "dev": true, "license": "MIT" }, @@ -11075,6 +11665,7 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -11090,6 +11681,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11098,9 +11690,9 @@ } }, "node_modules/dedent": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", - "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -11157,6 +11749,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -11169,6 +11762,7 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -11234,65 +11828,6 @@ "node": ">= 14" } }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -11362,9 +11897,9 @@ "license": "MIT" }, "node_modules/devtools-protocol": { - "version": "0.0.1467305", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1467305.tgz", - "integrity": "sha512-LxwMLqBoPPGpMdRL4NkLFRNy3QLp6Uqa7GNp1v6JaBheop2QrB9Q7q0A/q/CYYP9sBfZdHOyszVx4gc9zyk7ow==", + "version": "0.0.1507524", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz", + "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==", "dev": true, "license": "BSD-3-Clause" }, @@ -11405,10 +11940,11 @@ } }, "node_modules/docker-compose": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-1.2.0.tgz", - "integrity": "sha512-wIU1eHk3Op7dFgELRdmOYlPYS4gP8HhH1ZmZa13QZF59y0fblzFDFmKPhyc05phCy2hze9OEvNZAsoljrs+72w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-1.3.0.tgz", + "integrity": "sha512-7Gevk/5eGD50+eMD+XDnFnOrruFkL0kSd7jEG4cjmqweDSUhB7i0g8is/nBdVpl+Bx338SqIB2GLKm32M+Vs6g==", "dev": true, + "license": "MIT", "dependencies": { "yaml": "^2.2.2" }, @@ -11417,10 +11953,11 @@ } }, "node_modules/docker-compose/node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -11536,16 +12073,32 @@ } }, "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz", + "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==", "dev": true, "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "type-fest": "^4.18.2" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dotenv": { @@ -11553,6 +12106,7 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -11586,7 +12140,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", @@ -11596,9 +12151,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.165", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz", - "integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==", + "version": "1.5.227", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.227.tgz", + "integrity": "sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==", "dev": true, "license": "ISC" }, @@ -11652,10 +12207,23 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", "dependencies": { @@ -11663,9 +12231,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, "license": "MIT", "dependencies": { @@ -11714,9 +12282,9 @@ } }, "node_modules/envinfo": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", - "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.15.0.tgz", + "integrity": "sha512-chR+t7exF6y59kelhXw5I3849nTy7KIRO+ePdLMhCD+JRP/JvmkenDWP7QSFGlsHX+kxGxdDutOPrmj5j1HR6g==", "dev": true, "license": "MIT", "bin": { @@ -11734,9 +12302,9 @@ "license": "MIT" }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -12056,9 +12624,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", + "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", "dev": true, "license": "MIT", "bin": { @@ -12091,9 +12659,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -12135,30 +12703,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -12169,9 +12737,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -12283,9 +12851,9 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -12317,9 +12885,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz", - "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, "license": "MIT", "dependencies": { @@ -12394,9 +12962,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -12483,26 +13051,22 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -12557,35 +13121,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -12631,19 +13166,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -12762,6 +13284,16 @@ "node": ">=0.8.x" } }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -12786,6 +13318,26 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -12904,42 +13456,38 @@ "license": "MIT" }, "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", "yauzl": "^2.10.0" }, "bin": { "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" } }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "ms": "2.0.0" } }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -13005,19 +13553,10 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { @@ -13226,9 +13765,9 @@ } }, "node_modules/find-process": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.10.tgz", - "integrity": "sha512-ncYFnWEIwL7PzmrK1yZtaccN8GhethD37RzBHG6iOZoFYB4vSmLLXfeWJjeN5nMvCJMjOtBvBBF8OgxEcikiZg==", + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.11.tgz", + "integrity": "sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA==", "dev": true, "license": "MIT", "dependencies": { @@ -13245,6 +13784,7 @@ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -13327,9 +13867,9 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "dev": true, "funding": [ { @@ -13391,6 +13931,7 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" @@ -13402,28 +13943,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -13440,6 +13970,13 @@ "node": ">= 0.6" } }, + "node_modules/forwarded-parse": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz", + "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==", + "dev": true, + "license": "MIT" + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -13503,9 +14040,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", "dev": true, "license": "Unlicense" }, @@ -13516,20 +14053,6 @@ "dev": true, "license": "ISC" }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -13666,13 +14189,16 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13697,9 +14223,9 @@ } }, "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", "dev": true, "license": "MIT", "dependencies": { @@ -13765,9 +14291,9 @@ "license": "BSD-2-Clause" }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -13832,12 +14358,19 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -13913,6 +14446,7 @@ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -14129,9 +14663,9 @@ } }, "node_modules/hookified": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.1.tgz", - "integrity": "sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.12.1.tgz", + "integrity": "sha512-xnKGl+iMIlhrZmGHB729MqlmPoWBznctSQTYCpFKqNsCgimJQmithcW0xSQMMFzYnV2iKUh25alswn6epgxS0Q==", "dev": true, "license": "MIT" }, @@ -14181,46 +14715,6 @@ "wbuf": "^1.1.0" } }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -14274,7 +14768,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", @@ -14377,6 +14872,7 @@ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "dev": true, + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -14385,18 +14881,6 @@ "node": ">=10.19.0" } }, - "node_modules/http2-wrapper/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -14422,9 +14906,9 @@ } }, "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14432,6 +14916,10 @@ }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/icss-utils": { @@ -14492,9 +14980,9 @@ } }, "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -14522,17 +15010,10 @@ "dev": true, "license": "MIT" }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true, - "license": "MIT" - }, "node_modules/immutable": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz", - "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", "license": "MIT" }, "node_modules/import-fresh": { @@ -14560,6 +15041,19 @@ "node": ">=4" } }, + "node_modules/import-in-the-middle": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.14.4.tgz", + "integrity": "sha512-eWjxh735SJLFJJDs5X82JQ2405OdJeAHDBnaoFCfdr5GVc7AWc9xU7KbrF+3Xd5F2ccP1aQFKtY+65X6EfKZ7A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "acorn": "^8.14.0", + "acorn-import-attributes": "^1.9.5", + "cjs-module-lexer": "^1.2.2", + "module-details-from-path": "^1.0.3" + } + }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -14678,15 +15172,11 @@ } }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } @@ -14996,6 +15486,7 @@ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -15053,52 +15544,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -15258,13 +15703,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -15348,9 +15786,9 @@ } }, "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, "license": "MIT" }, @@ -15439,9 +15877,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -15475,6 +15913,7 @@ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -16116,17 +16555,22 @@ } }, "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-18.0.1.tgz", + "integrity": "sha512-IiQpRyypSnLisQf3PwuN2eIHAsAIGZIrLZkd4zdvIar2bDyhM91ubRjy8a3eYablXsh9BeI/c7dmPYHca5qtoA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" + "@hapi/address": "^5.1.1", + "@hapi/formula": "^3.0.2", + "@hapi/hoek": "^11.0.7", + "@hapi/pinpoint": "^2.0.1", + "@hapi/tlds": "^1.1.1", + "@hapi/topo": "^6.0.2", + "@standard-schema/spec": "^1.0.0" + }, + "engines": { + "node": ">= 20" } }, "node_modules/jpeg-js": { @@ -16153,26 +16597,18 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, "node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", @@ -16355,9 +16791,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", - "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", "dev": true, "license": "MIT" }, @@ -16382,14 +16818,14 @@ } }, "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz", + "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==", "dev": true, "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/lazy-cache": { @@ -16433,48 +16869,37 @@ "node": ">= 0.8.0" } }, - "node_modules/lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, "node_modules/lighthouse": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.6.1.tgz", - "integrity": "sha512-85WDkjcXAVdlFem9Y6SSxqoKiz/89UsDZhLpeLJIsJ4LlHxw047XTZhlFJmjYCB7K5S1erSBAf5cYLcfyNbH3A==", + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz", + "integrity": "sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@paulirish/trace_engine": "0.0.53", - "@sentry/node": "^7.0.0", + "@paulirish/trace_engine": "0.0.59", + "@sentry/node": "^9.28.1", "axe-core": "^4.10.3", "chrome-launcher": "^1.2.0", - "configstore": "^5.0.1", + "configstore": "^7.0.0", "csp_evaluator": "1.1.5", - "devtools-protocol": "0.0.1467305", + "devtools-protocol": "0.0.1507524", "enquirer": "^2.3.6", "http-link-header": "^1.1.1", "intl-messageformat": "^10.5.3", "jpeg-js": "^0.4.4", "js-library-detector": "^6.7.0", - "lighthouse-logger": "^2.0.1", + "lighthouse-logger": "^2.0.2", "lighthouse-stack-packs": "1.12.2", "lodash-es": "^4.17.21", "lookup-closest-locale": "6.2.0", "metaviewport-parser": "0.3.0", "open": "^8.4.0", "parse-cache-control": "1.0.1", - "puppeteer-core": "^24.10.0", + "puppeteer-core": "^24.17.1", "robots-parser": "^3.0.1", - "semver": "^5.3.0", "speedline-core": "^1.4.3", - "third-party-web": "^0.26.6", - "tldts-icann": "^6.1.16", + "third-party-web": "^0.27.0", + "tldts-icann": "^7.0.12", "ws": "^7.0.0", "yargs": "^17.3.1", "yargs-parser": "^21.0.0" @@ -16485,37 +16910,20 @@ "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js" }, "engines": { - "node": ">=18.20" + "node": ">=18.16" } }, "node_modules/lighthouse-logger": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.1.tgz", - "integrity": "sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.2.tgz", + "integrity": "sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "debug": "^2.6.9", + "debug": "^4.4.1", "marky": "^1.2.2" } }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/lighthouse-stack-packs": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz", @@ -16524,18 +16932,18 @@ "license": "Apache-2.0" }, "node_modules/lighthouse/node_modules/@puppeteer/browsers": { - "version": "2.10.5", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.5.tgz", - "integrity": "sha512-eifa0o+i8dERnngJwKrfp3dEq7ia5XFyoqB17S4gK8GhsQE4/P8nxOfQSE0zQHxzzLo/cmF+7+ywEQ7wK7Fb+w==", + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.10.tgz", + "integrity": "sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "debug": "^4.4.1", + "debug": "^4.4.3", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.2", - "tar-fs": "^3.0.8", + "tar-fs": "^3.1.0", "yargs": "^17.7.2" }, "bin": { @@ -16545,41 +16953,50 @@ "node": ">=18" } }, - "node_modules/lighthouse/node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "node_modules/lighthouse/node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, "bin": { - "semver": "bin/semver.js" + "extract-zip": "cli.js" }, "engines": { - "node": ">=10" + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, "node_modules/lighthouse/node_modules/puppeteer-core": { - "version": "24.10.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.10.0.tgz", - "integrity": "sha512-xX0QJRc8t19iAwRDsAOR38Q/Zx/W6WVzJCEhKCAwp2XMsaWqfNtQ+rBfQW9PlF+Op24d7c8Zlgq9YNmbnA7hdQ==", + "version": "24.22.3", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.22.3.tgz", + "integrity": "sha512-M/Jhg4PWRANSbL/C9im//Yb55wsWBS5wdp+h59iwM+EPicVQQCNs56iC5aEAO7avfDPRfxs4MM16wHjOYHNJEw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.5", - "chromium-bidi": "5.1.0", - "debug": "^4.4.1", - "devtools-protocol": "0.0.1452169", + "@puppeteer/browsers": "2.10.10", + "chromium-bidi": "9.1.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1495869", "typed-query-selector": "^2.12.0", - "ws": "^8.18.2" + "webdriver-bidi-protocol": "0.2.11", + "ws": "^8.18.3" }, "engines": { "node": ">=18" } }, "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-5.1.0.tgz", - "integrity": "sha512-9MSRhWRVoRPDG0TgzkHrshFSJJNZzfY5UFqUMuksg7zL1yoZIZ3jLB0YAgHclbiAxPI86pBnwDX1tbzoiV8aFw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-9.1.0.tgz", + "integrity": "sha512-rlUzQ4WzIAWdIbY/viPShhZU2n21CxDUgazXVbw4Hu1MwaeUSEksSeM6DqPgpRjCLXRk702AVRxJxoOz0dw4OA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16591,16 +17008,16 @@ } }, "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": { - "version": "0.0.1452169", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1452169.tgz", - "integrity": "sha512-FOFDVMGrAUNp0dDKsAU1TorWJUx2JOU1k9xdgBKKJF3IBh/Uhl2yswG5r3TEAOrCiGY2QRp1e6LVDQrCsTKO4g==", + "version": "0.0.1495869", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1495869.tgz", + "integrity": "sha512-i+bkd9UYFis40RcnkW7XrOprCujXRAHg62IVh/Ah3G8MmNXpCGt1m0dTFhSdx/AVs8XEMbdOGRwdkR1Bcta8AA==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -16620,13 +17037,16 @@ } }, "node_modules/lighthouse/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/lighthouse/node_modules/ws": { @@ -16652,9 +17072,9 @@ } }, "node_modules/lighthouse/node_modules/zod": { - "version": "3.25.51", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.51.tgz", - "integrity": "sha512-TQSnBldh+XSGL+opiSIq0575wvDPqu09AqWe1F7JhUMKY+M91/aGlK4MhpVNO7MgYfHcVCB1ffwAUTJzllKJqg==", + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "dev": true, "license": "MIT", "funding": { @@ -16715,16 +17135,6 @@ "node": ">=8.9.0" } }, - "node_modules/localforage": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", - "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "lie": "3.1.1" - } - }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -16756,7 +17166,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -16858,6 +17269,7 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -16948,13 +17360,6 @@ "markdown-it": "bin/markdown-it.js" } }, - "node_modules/markdown-it/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/markdown-it/node_modules/entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", @@ -17003,17 +17408,10 @@ "node": ">=12" } }, - "node_modules/markdownlint-cli/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/markdownlint-cli/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -17041,19 +17439,6 @@ "node": ">= 4" } }, - "node_modules/markdownlint-cli/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/markdownlint-cli/node_modules/minimatch": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", @@ -17160,9 +17545,9 @@ } }, "node_modules/memize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.0.tgz", - "integrity": "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz", + "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==", "dev": true, "license": "MIT" }, @@ -17340,6 +17725,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -17355,9 +17741,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17448,6 +17834,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -17488,6 +17875,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -17495,6 +17883,13 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/module-details-from-path": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz", + "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==", + "dev": true, + "license": "MIT" + }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -17577,6 +17972,7 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "dev": true, + "license": "ISC", "engines": { "node": "^18.17.0 || >=20.5.0" } @@ -17670,9 +18066,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", "dev": true, "license": "MIT" }, @@ -17730,6 +18126,7 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -17787,13 +18184,6 @@ "npm": ">=6.0.0" } }, - "node_modules/npm-package-json-lint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/npm-package-json-lint/node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -17821,19 +18211,6 @@ } } }, - "node_modules/npm-package-json-lint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/npm-package-json-lint/node_modules/jsonc-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", @@ -17913,9 +18290,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "version": "2.2.22", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", + "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", "dev": true, "license": "MIT" }, @@ -18060,6 +18437,7 @@ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -18078,9 +18456,9 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", "dev": true, "license": "MIT", "engines": { @@ -18164,6 +18542,7 @@ "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^3.0.0", "cli-cursor": "^3.1.0", @@ -18186,6 +18565,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18199,6 +18579,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -18207,13 +18588,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ora/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -18223,6 +18606,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -18232,6 +18616,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^2.4.2" }, @@ -18244,6 +18629,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -18256,6 +18642,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -18270,6 +18657,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -18281,7 +18669,8 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/os-homedir": { "version": "1.0.2", @@ -18316,6 +18705,7 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18365,16 +18755,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -18420,9 +18800,9 @@ } }, "node_modules/pac-proxy-agent/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -18475,7 +18855,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/param-case": { "version": "3.0.4", @@ -18548,9 +18929,9 @@ } }, "node_modules/parse5/node_modules/entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -18612,13 +18993,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true, - "license": "(WTFPL OR MIT)" - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -18640,6 +19014,7 @@ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -18655,7 +19030,8 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/path-to-regexp": { "version": "6.3.0", @@ -18680,6 +19056,40 @@ "dev": true, "license": "MIT" }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", + "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -18699,47 +19109,14 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pino": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.7.0.tgz", - "integrity": "sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==", + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.12.0.tgz", + "integrity": "sha512-0Gd0OezGvqtqMwgYxpL7P0pSHHzTJ0Lx992h+mNlMtRVfNnqweWmf0JmRWk5gJzHalyd2mxTzKjhiNbGS2Ztfw==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^2.0.0", "pino-std-serializers": "^7.0.0", @@ -18747,6 +19124,7 @@ "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", + "slow-redact": "^0.3.0", "sonic-boom": "^4.0.1", "thread-stream": "^3.0.0" }, @@ -18759,6 +19137,7 @@ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "dev": true, + "license": "MIT", "dependencies": { "split2": "^4.0.0" } @@ -18767,7 +19146,8 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pirates": { "version": "4.0.7", @@ -18884,13 +19264,13 @@ } }, "node_modules/playwright": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz", - "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==", + "version": "1.55.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.1.tgz", + "integrity": "sha512-cJW4Xd/G3v5ovXtJJ52MAOclqeac9S/aGGgRzLabuF8TnIb6xHvMzKIa6JmrRzUkeXJgfL1MhukP0NK6l39h3A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.55.0" + "playwright-core": "1.55.1" }, "bin": { "playwright": "cli.js" @@ -18903,9 +19283,9 @@ } }, "node_modules/playwright-core": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz", - "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==", + "version": "1.55.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.1.tgz", + "integrity": "sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==", "dev": true, "license": "Apache-2.0", "bin": { @@ -18942,9 +19322,9 @@ } }, "node_modules/postcss": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", - "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -19620,6 +20000,49 @@ "dev": true, "license": "MIT" }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -19631,9 +20054,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "peer": true, @@ -19709,7 +20132,8 @@ "type": "opencollective", "url": "https://opencollective.com/fastify" } - ] + ], + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", @@ -19797,9 +20221,9 @@ } }, "node_modules/proxy-agent/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -19865,9 +20289,9 @@ } }, "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, "license": "MIT", "dependencies": { @@ -19975,16 +20399,20 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/randombytes": { @@ -20199,20 +20627,28 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -20231,6 +20667,7 @@ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -20300,9 +20737,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, "license": "MIT", "dependencies": { @@ -20341,18 +20778,18 @@ } }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -20366,31 +20803,18 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/rememo": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/rememo/-/rememo-4.0.2.tgz", @@ -20432,6 +20856,21 @@ "node": ">=0.10.0" } }, + "node_modules/require-in-the-middle": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz", + "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", @@ -20473,7 +20912,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve-bin": { "version": "0.4.3", @@ -20537,6 +20977,7 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "dev": true, + "license": "MIT", "dependencies": { "lowercase-keys": "^2.0.0" }, @@ -20549,6 +20990,7 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -20557,6 +20999,13 @@ "node": ">=8" } }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -20579,17 +21028,40 @@ } }, "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "glob": "^10.3.7" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/robots-parser": { @@ -20708,6 +21180,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -20746,6 +21225,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-regex-test": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", @@ -20769,6 +21255,7 @@ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -20781,9 +21268,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.89.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.1.tgz", - "integrity": "sha512-eMLLkl+qz7tx/0cJ9wI+w09GQ2zodTkcE/aVfywwdlRcI3EO19xGnbmJwg/JMIm+5MxVJ6outddLZ4Von4E++Q==", + "version": "1.93.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", + "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", "license": "MIT", "dependencies": { "chokidar": "^4.0.0", @@ -21278,6 +21765,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -21355,17 +21849,24 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-git": { "version": "3.28.0", "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.28.0.tgz", "integrity": "sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==", "dev": true, + "license": "MIT", "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", @@ -21426,6 +21927,13 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/slow-redact": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/slow-redact/-/slow-redact-0.3.0.tgz", + "integrity": "sha512-cf723wn9JeRIYP9tdtd86GuqoR5937u64Io+CYjlm2i7jvu7g0H+Cp0l0ShAf/4ZL+ISUTVT+8Qzz7RZmp9FjA==", + "dev": true, + "license": "MIT" + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -21471,13 +21979,13 @@ } }, "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "dev": true, "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", + "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -21501,9 +22009,9 @@ } }, "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -21515,6 +22023,7 @@ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", "dev": true, + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -21559,6 +22068,19 @@ "webpack": "^5.0.0" } }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -21594,19 +22116,6 @@ "node": ">=16" } }, - "node_modules/spawnd/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -21648,9 +22157,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", - "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "dev": true, "license": "CC0-1.0" }, @@ -21686,6 +22195,21 @@ "wbuf": "^1.7.3" } }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/speedline-core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", @@ -21706,6 +22230,7 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10.x" } @@ -21772,29 +22297,34 @@ } }, "node_modules/streamx": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", - "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", "dev": true, "license": "MIT", "dependencies": { + "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" } }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -21830,6 +22360,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -21843,7 +22374,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", @@ -21984,6 +22516,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -22060,6 +22593,12 @@ "node": ">=0.8.0" } }, + "node_modules/stubborn-fs": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-1.2.5.tgz", + "integrity": "sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==", + "dev": true + }, "node_modules/style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", @@ -22085,9 +22624,9 @@ } }, "node_modules/stylelint": { - "version": "16.20.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz", - "integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==", + "version": "16.24.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.24.0.tgz", + "integrity": "sha512-7ksgz3zJaSbTUGr/ujMXvLVKdDhLbGl3R/3arNudH7z88+XZZGNLMTepsY28WlnvEFcuOmUe7fg40Q3lfhOfSQ==", "dev": true, "funding": [ { @@ -22101,9 +22640,9 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3", "@csstools/selector-specificity": "^5.0.0", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", @@ -22114,21 +22653,21 @@ "debug": "^4.4.1", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.1.0", + "file-entry-cache": "^10.1.4", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^7.0.4", + "ignore": "^7.0.5", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.36.0", + "known-css-properties": "^0.37.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.3", + "postcss": "^8.5.6", "postcss-resolve-nested-selector": "^0.1.6", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.0", @@ -22195,9 +22734,9 @@ } }, "node_modules/stylelint-scss": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.0.tgz", - "integrity": "sha512-U7CKhi1YNkM1pXUXl/GMUXi8xKdhl4Ayxdyceie1nZ1XNIdaUgMV6OArpooWcDzEggwgYD0HP/xIgVJo9a655w==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.1.tgz", + "integrity": "sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==", "dev": true, "license": "MIT", "dependencies": { @@ -22217,10 +22756,17 @@ "stylelint": "^16.0.2" } }, + "node_modules/stylelint-scss/node_modules/known-css-properties": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", + "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", + "dev": true, + "license": "MIT" + }, "node_modules/stylelint-scss/node_modules/mdn-data": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz", - "integrity": "sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.24.0.tgz", + "integrity": "sha512-i97fklrJl03tL1tdRVw0ZfLLvuDsdb6wxL+TrJ+PKkCbLrp2PCu2+OYdCKychIUm19nSM/35S6qz7pJpnXttoA==", "dev": true, "license": "CC0-1.0" }, @@ -22285,13 +22831,6 @@ "postcss-selector-parser": "^7.0.0" } }, - "node_modules/stylelint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", @@ -22327,25 +22866,25 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.0.tgz", - "integrity": "sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.4.tgz", + "integrity": "sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^6.1.9" + "flat-cache": "^6.1.13" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.9", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.9.tgz", - "integrity": "sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.14.tgz", + "integrity": "sha512-ExZSCSV9e7v/Zt7RzCbX57lY2dnPdxzU/h3UE6WJ6NtEMfwBd8jmi1n4otDEUfz+T/R+zxrFDpICFdjhD3H/zw==", "dev": true, "license": "MIT", "dependencies": { - "cacheable": "^1.9.0", + "cacheable": "^2.0.1", "flatted": "^3.3.3", - "hookified": "^1.8.2" + "hookified": "^1.12.0" } }, "node_modules/stylelint/node_modules/global-modules": { @@ -22386,19 +22925,6 @@ "node": ">= 4" } }, - "node_modules/stylelint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/stylelint/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -22436,19 +22962,6 @@ "node": ">=4" } }, - "node_modules/stylelint/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/stylelint/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -22614,13 +23127,13 @@ "license": "MIT" }, "node_modules/synckit": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", - "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.4" + "@pkgr/core": "^0.2.9" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -22681,19 +23194,23 @@ } }, "node_modules/tapable": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", - "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", "dev": true, "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar-fs": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.9.tgz", - "integrity": "sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", "dev": true, "license": "MIT", "dependencies": { @@ -22717,11 +23234,27 @@ "streamx": "^2.15.0" } }, + "node_modules/tar-stream/node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -22738,6 +23271,7 @@ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -22747,14 +23281,14 @@ } }, "node_modules/terser": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.41.0.tgz", - "integrity": "sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -22875,9 +23409,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -22908,6 +23442,21 @@ "b4a": "^1.6.4" } }, + "node_modules/text-decoder/node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -22916,9 +23465,9 @@ "license": "MIT" }, "node_modules/third-party-web": { - "version": "0.26.6", - "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.26.6.tgz", - "integrity": "sha512-GsjP92xycMK8qLTcQCacgzvffYzEqe29wyz3zdKVXlfRD5Kz1NatCTOZEeDaSd6uCZXvGd2CNVtQ89RNIhJWvA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.27.0.tgz", + "integrity": "sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==", "dev": true, "license": "MIT" }, @@ -22927,6 +23476,7 @@ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "dev": true, + "license": "MIT", "dependencies": { "real-require": "^0.2.0" } @@ -22953,14 +23503,14 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -22970,11 +23520,14 @@ } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz", - "integrity": "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -22985,9 +23538,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -22998,20 +23551,20 @@ } }, "node_modules/tldts-core": { - "version": "6.1.86", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", - "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "version": "7.0.16", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.16.tgz", + "integrity": "sha512-XHhPmHxphLi+LGbH0G/O7dmUH9V65OY20R7vH8gETHsp5AZCjBk9l8sqmRKLaGOxnETU7XNSDUPtewAy/K6jbA==", "dev": true, "license": "MIT" }, "node_modules/tldts-icann": { - "version": "6.1.86", - "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-6.1.86.tgz", - "integrity": "sha512-NFxmRT2lAEMcCOBgeZ0NuM0zsK/xgmNajnY6n4S1mwAKocft2s2ise1O3nQxrH3c+uY6hgHUV9GGNVp7tUE4Sg==", + "version": "7.0.16", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.16.tgz", + "integrity": "sha512-WS/pPasPs2cx6orcxCcIz01SlG3dwYlgjLAnQt7vLAusTuTLqdI8zmkqbM8TWYEf3Z0o1S4BzM3oSRFPk/6WnA==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^6.1.86" + "tldts-core": "^7.0.16" } }, "node_modules/tmpl": { @@ -23228,9 +23781,9 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -23343,22 +23896,13 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } + "license": "MIT" }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -23374,6 +23918,7 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -23416,9 +23961,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", + "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", "dev": true, "license": "MIT" }, @@ -23447,9 +23992,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "dev": true, "license": "MIT", "engines": { @@ -23457,28 +24002,15 @@ } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", @@ -23740,14 +24272,14 @@ } }, "node_modules/wait-on": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.3.tgz", - "integrity": "sha512-nQFqAFzZDeRxsu7S3C7LbuxslHhk+gnJZHyethuGKAn2IVleIbTB9I3vJSQiSR+DifUqmdzfPMoMPJfLqMF2vw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.5.tgz", + "integrity": "sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==", "dev": true, "license": "MIT", "dependencies": { - "axios": "^1.8.2", - "joi": "^17.13.3", + "axios": "^1.12.1", + "joi": "^18.0.1", "lodash": "^4.17.21", "minimist": "^1.2.8", "rxjs": "^7.8.2" @@ -23798,6 +24330,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } @@ -23809,6 +24342,13 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.2.11.tgz", + "integrity": "sha512-Y9E1/oi4XMxcR8AT0ZC4OvYntl34SPgwjmELH+owjBr0korAX4jKgZULBWILGCVGdVCQ0dodTToIETozhG8zvA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -23820,22 +24360,23 @@ } }, "node_modules/webpack": { - "version": "5.99.9", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", - "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", + "version": "5.101.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", + "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", + "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", + "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -23849,7 +24390,7 @@ "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -24218,9 +24759,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.2.tgz", - "integrity": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, "license": "MIT", "engines": { @@ -24265,6 +24806,19 @@ "node": ">=12" } }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", @@ -24289,6 +24843,13 @@ "node": ">=12" } }, + "node_modules/when-exit": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.4.tgz", + "integrity": "sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==", + "dev": true, + "license": "MIT" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -24353,6 +24914,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", @@ -24412,9 +24980,9 @@ } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "license": "MIT", "dependencies": { @@ -24423,10 +24991,7 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/wrap-ansi-cjs": { @@ -24435,6 +25000,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -24468,10 +25034,17 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -24491,13 +25064,16 @@ } }, "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/xml-name-validator": { @@ -24517,6 +25093,16 @@ "dev": true, "license": "MIT" }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -24597,10 +25183,11 @@ } }, "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, diff --git a/package.json b/package.json index 3087443c..4a4a21ee 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "slug": "elementor-hello-theme", "homepage": "https://elementor.com/", "description": "A sample theme for Elementor.", - "version": "3.4.4", + "version": "3.4.5", "last_beta_version": "2.4.0-beta3", "scripts": { "start": "wp-scripts start", diff --git a/readme.txt b/readme.txt index f03a6a25..84d40da6 100644 --- a/readme.txt +++ b/readme.txt @@ -3,8 +3,8 @@ Contributors: elemntor, KingYes, ariel.k, bainternet Requires at least: 6.0 Tested up to: 6.8 -Stable tag: 3.4.4 -Version: 3.4.4 +Stable tag: 3.4.5 +Version: 3.4.5 Requires PHP: 7.4 License: GNU General Public License v3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -36,6 +36,15 @@ Source: https://stocksnap.io/photo/4B83RD7BV9 == Changelog == += 3.4.5 - 2025-09-30 +* Fix: Load styles correctly in Gutenberg pages +* Fix: Do not change menu name after Elementor activation +* Fix: Ensure quicklinks works correctly from home page +* Tweak: Improve banner behavior after clicking on action button +* Tweak: Improve changelog appeareance +* Tweak: Only show Elementor pro upsell on relevant pages +* New: Add theme home to Finder + = 3.4.4 - 2025-06-08 = * Tweak: Improve Header/Footer edit access from theme Home diff --git a/style.css b/style.css index f7b3beae..b3e1b59d 100644 --- a/style.css +++ b/style.css @@ -4,8 +4,8 @@ Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators. Author: Elementor Team Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash - Version: 3.4.4 - Stable tag: 3.4.4 + Version: 3.4.5 + Stable tag: 3.4.5 Requires at least: 6.0 Tested up to: 6.8 Requires PHP: 7.4 From 8a6531bd504bedae8d06326507966e81e7eac3dc Mon Sep 17 00:00:00 2001 From: Nicola Peluchetti Date: Mon, 20 Oct 2025 15:32:08 +0200 Subject: [PATCH 12/13] Internal: Tweak date [TMZ-954] --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 84d40da6..a54506b5 100644 --- a/readme.txt +++ b/readme.txt @@ -36,7 +36,7 @@ Source: https://stocksnap.io/photo/4B83RD7BV9 == Changelog == -= 3.4.5 - 2025-09-30 += 3.4.5 - 2025-10-20 * Fix: Load styles correctly in Gutenberg pages * Fix: Do not change menu name after Elementor activation * Fix: Ensure quicklinks works correctly from home page From 72fd15f338d6aa5b79db5bc01aa47655375a99d6 Mon Sep 17 00:00:00 2001 From: Nicola Peluchetti Date: Mon, 20 Oct 2025 15:34:23 +0200 Subject: [PATCH 13/13] Update reset.scss --- dev/scss/reset.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/dev/scss/reset.scss b/dev/scss/reset.scss index cb360c7c..dae67e8d 100644 --- a/dev/scss/reset.scss +++ b/dev/scss/reset.scss @@ -3,4 +3,3 @@ @forward "reset/forms"; @forward "reset/table"; @forward "reset/list"; -// Test comment.