From 9e11fcb2bb504916a1ef910a011f80b93be36109 Mon Sep 17 00:00:00 2001 From: Shane Date: Thu, 20 Mar 2025 13:17:25 -0700 Subject: [PATCH 1/9] test(angular): fixing over-import of RouterModule in the standalone router-link test (#30285) Issue number: resolves internal --------- ## What is the current behavior? Currently the standalone test app for router-link in Angular imports all of `RouterModule` when it only needs to import `RouterLink` from `@angular/router` ## What is the new behavior? Now, the Angular test app will import only what it needs from router instead of over-importing. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information This PR helps align our Angular test apps with a more real-world implementation expectation --- .../base/src/app/standalone/app-standalone/app.component.ts | 5 ++--- .../src/app/standalone/router-link/router-link.component.ts | 4 ++-- .../test/base/src/app/standalone/standalone.component.ts | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/angular/test/base/src/app/standalone/app-standalone/app.component.ts b/packages/angular/test/base/src/app/standalone/app-standalone/app.component.ts index d51d38c860b..7940f8d10e1 100644 --- a/packages/angular/test/base/src/app/standalone/app-standalone/app.component.ts +++ b/packages/angular/test/base/src/app/standalone/app-standalone/app.component.ts @@ -1,12 +1,11 @@ import { Component } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { IonRouterOutlet, IonApp } from '@ionic/angular/standalone'; +import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone'; @Component({ selector: 'app-root-standalone', templateUrl: './app.component.html', standalone: true, - imports: [RouterModule, IonRouterOutlet, IonApp] + imports: [IonRouterOutlet, IonApp] }) export class AppComponent { } diff --git a/packages/angular/test/base/src/app/standalone/router-link/router-link.component.ts b/packages/angular/test/base/src/app/standalone/router-link/router-link.component.ts index 4e0e1bcff3c..31653f3bb0d 100644 --- a/packages/angular/test/base/src/app/standalone/router-link/router-link.component.ts +++ b/packages/angular/test/base/src/app/standalone/router-link/router-link.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; -import { RouterModule } from '@angular/router'; +import { RouterLink } from '@angular/router'; import { IonRouterLink, IonRouterLinkWithHref } from '@ionic/angular/standalone'; @Component({ selector: 'app-router-link', templateUrl: './router-link.component.html', standalone: true, - imports: [RouterModule, IonRouterLink, IonRouterLinkWithHref], + imports: [RouterLink, IonRouterLink, IonRouterLinkWithHref], }) export class RouterLinkComponent {} diff --git a/packages/angular/test/base/src/app/standalone/standalone.component.ts b/packages/angular/test/base/src/app/standalone/standalone.component.ts index 56f6f8a92b0..9b707ade839 100644 --- a/packages/angular/test/base/src/app/standalone/standalone.component.ts +++ b/packages/angular/test/base/src/app/standalone/standalone.component.ts @@ -1,5 +1,4 @@ import { Component } from "@angular/core"; -import { RouterModule } from "@angular/router"; import { IonicModule } from '@ionic/angular'; @@ -7,6 +6,6 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-standalone', templateUrl: './standalone.component.html', standalone: true, - imports: [IonicModule, RouterModule] + imports: [IonicModule] }) export class StandaloneComponent { } From 0f235262242c46818a3232048cd4311a4fff98e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 11:53:18 -0700 Subject: [PATCH 2/9] chore(deps): update dependency @playwright/test to ^1.51.1 (#30289) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`^1.51.0` -> `^1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
microsoft/playwright (@​playwright/test) ### [`v1.51.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.51.1) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.51.0...v1.51.1) ##### Highlights [https://github.com/microsoft/playwright/issues/35093](https://redirect.github.com/microsoft/playwright/issues/35093) - \[Regression]: TimeoutOverflowWarning: [`2149630`](https://redirect.github.com/microsoft/playwright/commit/2149630296).634 does not fit into a 32-bit signed integer [https://github.com/microsoft/playwright/issues/35138](https://redirect.github.com/microsoft/playwright/issues/35138) - \[Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo') #### Browser Versions - Chromium 134.0.6998.35 - Mozilla Firefox 135.0 - WebKit 18.4 This version was also tested against the following stable channels: - Google Chrome 133 - Microsoft Edge 133
--- ### Configuration 📅 **Schedule**: Branch creation - "every weekday before 11am" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/ionic-team/ionic-framework). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- core/package-lock.json | 46 +++++++++++++++++++++--------------------- core/package.json | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index f47e5f708de..d770c00a075 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -22,7 +22,7 @@ "@clack/prompts": "^0.10.0", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", - "@playwright/test": "^1.51.0", + "@playwright/test": "^1.51.1", "@rollup/plugin-node-resolve": "^8.4.0", "@rollup/plugin-virtual": "^2.0.3", "@stencil/angular-output-target": "^0.10.0", @@ -1718,12 +1718,12 @@ } }, "node_modules/@playwright/test": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.0.tgz", - "integrity": "sha512-dJ0dMbZeHhI+wb77+ljx/FeC8VBP6j/rj9OAojO08JI80wTZy6vRk9KvHKiDCUh4iMpEiseMgqRBIeW+eKX6RA==", + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.1.tgz", + "integrity": "sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==", "dev": true, "dependencies": { - "playwright": "1.51.0" + "playwright": "1.51.1" }, "bin": { "playwright": "cli.js" @@ -8495,12 +8495,12 @@ } }, "node_modules/playwright": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.0.tgz", - "integrity": "sha512-442pTfGM0xxfCYxuBa/Pu6B2OqxqqaYq39JS8QDMGThUvIOCd6s0ANDog3uwA0cHavVlnTQzGCN7Id2YekDSXA==", + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.1.tgz", + "integrity": "sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==", "dev": true, "dependencies": { - "playwright-core": "1.51.0" + "playwright-core": "1.51.1" }, "bin": { "playwright": "cli.js" @@ -8513,9 +8513,9 @@ } }, "node_modules/playwright-core": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.0.tgz", - "integrity": "sha512-x47yPE3Zwhlil7wlNU/iktF7t2r/URR3VLbH6EknJd/04Qc/PSJ0EY3CMXipmglLG+zyRxW6HNo2EGbKLHPWMg==", + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.1.tgz", + "integrity": "sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -11765,12 +11765,12 @@ } }, "@playwright/test": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.0.tgz", - "integrity": "sha512-dJ0dMbZeHhI+wb77+ljx/FeC8VBP6j/rj9OAojO08JI80wTZy6vRk9KvHKiDCUh4iMpEiseMgqRBIeW+eKX6RA==", + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.1.tgz", + "integrity": "sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==", "dev": true, "requires": { - "playwright": "1.51.0" + "playwright": "1.51.1" } }, "@rollup/plugin-node-resolve": { @@ -16663,19 +16663,19 @@ } }, "playwright": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.0.tgz", - "integrity": "sha512-442pTfGM0xxfCYxuBa/Pu6B2OqxqqaYq39JS8QDMGThUvIOCd6s0ANDog3uwA0cHavVlnTQzGCN7Id2YekDSXA==", + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.1.tgz", + "integrity": "sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==", "dev": true, "requires": { "fsevents": "2.3.2", - "playwright-core": "1.51.0" + "playwright-core": "1.51.1" } }, "playwright-core": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.0.tgz", - "integrity": "sha512-x47yPE3Zwhlil7wlNU/iktF7t2r/URR3VLbH6EknJd/04Qc/PSJ0EY3CMXipmglLG+zyRxW6HNo2EGbKLHPWMg==", + "version": "1.51.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.1.tgz", + "integrity": "sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==", "dev": true }, "postcss": { diff --git a/core/package.json b/core/package.json index 2dcc81f72d9..52e8cf56dfe 100644 --- a/core/package.json +++ b/core/package.json @@ -44,7 +44,7 @@ "@clack/prompts": "^0.10.0", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", - "@playwright/test": "^1.51.0", + "@playwright/test": "^1.51.1", "@rollup/plugin-node-resolve": "^8.4.0", "@rollup/plugin-virtual": "^2.0.3", "@stencil/angular-output-target": "^0.10.0", From 7789bb59ee5c76074ff4872dc6a50ae2d83df8f5 Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Mon, 24 Mar 2025 14:06:08 -0700 Subject: [PATCH 3/9] fix(range): emit ionInput when value changes (#30293) Issue number: resolves #29619 --------- ## What is the current behavior? The `ionInput` emits for range even when the value hasn't changed. This does not match our documentation. It should only emit when the value changes (and continuously while the user is dragging the knob). ## What is the new behavior? - Moved the emitter to the value watch function, to determine if the value has changed. - Added a test - ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information How to test: 1. Navigate to the [range basic HTML file](https://github.com/ionic-team/ionic-framework/blob/8ed08fcba59c9fde5c6d08d721fd1d00642de4f9/core/src/components/range/test/basic/index.html#L77) 2. Add the following script ``` const ionicRanges = document.querySelectorAll('ion-range'); ionicRanges.forEach(range => { range.addEventListener('ionInput', function(ev) { console.log('ionInput', ev.currentTarget.value); }); }); ``` 3. Navigate to the [range test page](http://localhost:3333/src/components/range/test/basic) 4. Open the console 5. Move the single knob range (let go when you're done) 6. Verify that the value is shown in the console 7. Tap as close to the middle of the knob. The goal is to tap it without the value moving. 8. Verify that the value does not show in the console --------- Co-authored-by: Brandy Smith --- core/src/components/range/range.tsx | 24 +++++++++++-- .../components/range/test/range-events.e2e.ts | 36 +++++++++++++++++++ 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/core/src/components/range/range.tsx b/core/src/components/range/range.tsx index b36617ad3e1..478b2a57e2e 100644 --- a/core/src/components/range/range.tsx +++ b/core/src/components/range/range.tsx @@ -213,12 +213,32 @@ export class Range implements ComponentInterface { */ @Prop({ mutable: true }) value: RangeValue = 0; @Watch('value') - protected valueChanged() { + protected valueChanged(newValue: RangeValue, oldValue: RangeValue) { + const valuesChanged = this.compareValues(newValue, oldValue); + if (valuesChanged) { + this.ionInput.emit({ value: this.value }); + } + if (!this.noUpdate) { this.updateRatio(); } } + /** + * Compares two RangeValue inputs to determine if they are different. + * + * @param newVal - The new value. + * @param oldVal - The old value. + * @returns `true` if the values are different, `false` otherwise. + */ + private compareValues = (newVal: RangeValue, oldVal: RangeValue) => { + if (typeof newVal === 'object' && typeof oldVal === 'object') { + return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper; + } + + return newVal !== oldVal; + }; + private clampBounds = (value: any): number => { return clamp(this.min, value, this.max); }; @@ -591,8 +611,6 @@ export class Range implements ComponentInterface { upper: Math.max(valA, valB), }; - this.ionInput.emit({ value: this.value }); - this.noUpdate = false; } diff --git a/core/src/components/range/test/range-events.e2e.ts b/core/src/components/range/test/range-events.e2e.ts index bfbdfac48e4..f76d147627b 100644 --- a/core/src/components/range/test/range-events.e2e.ts +++ b/core/src/components/range/test/range-events.e2e.ts @@ -217,6 +217,42 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => expect(ionInputSpy).toHaveReceivedEvent(); }); + test('should not emit when the value does not change', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/29619', + }); + + /** + * Requires padding to prevent the knob from being clipped. + * If it's clipped, then the value might be one off. + * For example, if the knob is clipped on the right, then the value + * will be 99 instead of 100. + */ + await page.setContent( + ` +
+ +
+ `, + config + ); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionInputSpy = await page.spyOnEvent('ionInput'); + + const rangeHandleBoundingBox = await rangeHandle.boundingBox(); + const x = rangeHandleBoundingBox!.width / 2; + const y = rangeHandleBoundingBox!.height / 2; + + // Click in the middle of the knob to prevent the knob from moving. + await rangeHandle.click({ + position: { x, y }, + }); + + expect(ionInputSpy).not.toHaveReceivedEvent(); + }); + test('should emit when the knob is moved with the keyboard', async ({ page }) => { await page.setContent(``, config); From 1cfa915e8fe362951c521bce970a9f5f10918ab2 Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Tue, 25 Mar 2025 11:21:31 -0700 Subject: [PATCH 4/9] fix(segment-button): ensure consistent disabled state for segment-content error handling (#30288) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue number: N/A --------- ## What is the current behavior? Segment buttons do not consistently set themselves to a disabled state. When disabling them and rapidly refreshing the page, their state may vary—sometimes they appear disabled, and other times they do not. This was due to this [PR](https://github.com/ionic-team/ionic-framework/pull/30138). The reason that this PR was created was due to the console errors being shown too early when segment buttons and contents were dynamically rendered. ## What is the new behavior? - I reverted the changes added through the other PR since the `setTimeout` was causing the inconsistency. - By moving the console errors to `componentWillLoad`, it provides `ion-segment-content` time to render before the console errors are thrown. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Dev build: `8.5.2-dev.11742514102.1b51674d` How to test: 1. Run the server locally 2. Navigate to the [segment view disabled](http://localhost:3333/src/components/segment-view/test/disabled) page 3. Verify that the "Paid", "Free", and "Top" buttons disabled 4. Rapid fire some hard refreshes 5. Verify that the "Paid", "Free", and "Top" buttons disabled 6. Navigate to this StackBlitz [repro](https://stackblitz.com/edit/yhktpj19-wxmxpmw7?file=src%2Fmain.tsx) 7. Install the dev build: `npm i @ionic/react@8.5.2-dev.11742514102.1b51674d @ionic/react-router@8.5.2-dev.11742514102.1b51674d` 8. Open the console log 9. Click on the "Add last child" button 10. Verify that there are no console errors like `Segment Button: Unable to find Segment Content with id="content3".` --- .../segment-button/segment-button.tsx | 77 +++++-------------- core/src/utils/helpers.ts | 11 --- 2 files changed, 21 insertions(+), 67 deletions(-) diff --git a/core/src/components/segment-button/segment-button.tsx b/core/src/components/segment-button/segment-button.tsx index 3a2135421c2..fb940c9d99b 100644 --- a/core/src/components/segment-button/segment-button.tsx +++ b/core/src/components/segment-button/segment-button.tsx @@ -2,7 +2,7 @@ import type { ComponentInterface } from '@stencil/core'; import { Component, Element, Host, Prop, Method, State, Watch, forceUpdate, h } from '@stencil/core'; import type { ButtonInterface } from '@utils/element-interface'; import type { Attributes } from '@utils/helpers'; -import { addEventListener, removeEventListener, inheritAttributes, getNextSiblingOfType } from '@utils/helpers'; +import { addEventListener, removeEventListener, inheritAttributes } from '@utils/helpers'; import { hostContext } from '@utils/theme'; import { getIonMode } from '../../global/ionic-global'; @@ -65,41 +65,7 @@ export class SegmentButton implements ComponentInterface, ButtonInterface { this.updateState(); } - private waitForSegmentContent(ionSegment: HTMLIonSegmentElement | null, contentId: string): Promise { - return new Promise((resolve, reject) => { - let timeoutId: NodeJS.Timeout | undefined = undefined; - let animationFrameId: number; - - const check = () => { - if (!ionSegment) { - reject(new Error(`Segment not found when looking for Segment Content`)); - return; - } - - const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes - const segmentContent = segmentView?.querySelector( - `ion-segment-content[id="${contentId}"]` - ) as HTMLIonSegmentContentElement | null; - if (segmentContent && timeoutId) { - clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found - cancelAnimationFrame(animationFrameId); - resolve(segmentContent); - } else { - animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame - } - }; - - check(); - - // Set a timeout to reject the promise - timeoutId = setTimeout(() => { - cancelAnimationFrame(animationFrameId); - reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`)); - }, 1000); - }); - } - - async connectedCallback() { + connectedCallback() { const segmentEl = (this.segmentEl = this.el.closest('ion-segment')); if (segmentEl) { this.updateState(); @@ -107,27 +73,8 @@ export class SegmentButton implements ComponentInterface, ButtonInterface { addEventListener(segmentEl, 'ionStyle', this.updateStyle); } - // Return if there is no contentId defined - if (!this.contentId) return; - - let segmentContent; - try { - // Attempt to find the Segment Content by its contentId - segmentContent = await this.waitForSegmentContent(segmentEl, this.contentId); - } catch (error) { - // If no associated Segment Content exists, log an error and return - console.error('Segment Button: ', (error as Error).message); - return; - } - - // Ensure the found element is a valid ION-SEGMENT-CONTENT - if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') { - console.error(`Segment Button: Element with id="${this.contentId}" is not an element.`); - return; - } - // Prevent buttons from being disabled when associated with segment content - if (this.disabled) { + if (this.contentId && this.disabled) { console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an .`); this.disabled = false; } @@ -146,6 +93,24 @@ export class SegmentButton implements ComponentInterface, ButtonInterface { this.inheritedAttributes = { ...inheritAttributes(this.el, ['aria-label']), }; + + // Return if there is no contentId defined + if (!this.contentId) return; + + // Attempt to find the Segment Content by its contentId + const segmentContent = document.getElementById(this.contentId) as HTMLIonSegmentContentElement | null; + + // If no associated Segment Content exists, log an error and return + if (!segmentContent) { + console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`); + return; + } + + // Ensure the found element is a valid ION-SEGMENT-CONTENT + if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') { + console.error(`Segment Button: Element with id="${this.contentId}" is not an element.`); + return; + } } private get hasLabel() { diff --git a/core/src/utils/helpers.ts b/core/src/utils/helpers.ts index 1a3cd15b0d8..e2a65407c0d 100644 --- a/core/src/utils/helpers.ts +++ b/core/src/utils/helpers.ts @@ -388,17 +388,6 @@ export const shallowEqualStringMap = ( return true; }; -export const getNextSiblingOfType = (element: Element): T | null => { - let sibling = element.nextSibling; - while (sibling) { - if (sibling.nodeType === Node.ELEMENT_NODE && (sibling as T) !== null) { - return sibling as T; - } - sibling = sibling.nextSibling; - } - return null; -}; - /** * Checks input for usable number. Not NaN and not Infinite. */ From ac6e6a03174263d09ec55c9742a026862a3df444 Mon Sep 17 00:00:00 2001 From: Victoria Unizhona <95358215+vunizhona@users.noreply.github.com> Date: Wed, 26 Mar 2025 21:06:04 +0200 Subject: [PATCH 5/9] fix(datetime): support typing time values in a 24-hour format (#30147) - Adjusted the `selectMultiColumn` logic to handle keyboard values like 20 and 22 dynamically. - Introduced checks for the maximum column value to enable flexible input behavior. - Added e2e tests to verify correct value selection for both 12-hour and 24-hour formats. Issue number: resolves #28877 --------- ## What is the current behavior? In the ion-datetime component, when typing 2000 in the keyboard the resulted time value is 02:00 (in 24-hour format) Examples: https://forum.ionicframework.com/t/ion-datetime-disable-opening-keyboard/224558/6?u=dennisskylegs ## What is the new behavior? In the ion-datetime component, when typing 2000 in the keyboard the resulted time value is 20:00 (in 24-hour format) ## Does this introduce a breaking change? - [ ] Yes - [x] No --------- Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> Co-authored-by: ShaneK --- core/src/components/datetime/datetime.tsx | 6 +- core/src/components/picker/picker.tsx | 149 +++++++--------- .../picker/test/keyboard-entry/picker.e2e.ts | 166 ++++++++++++++++++ 3 files changed, 234 insertions(+), 87 deletions(-) diff --git a/core/src/components/datetime/datetime.tsx b/core/src/components/datetime/datetime.tsx index 9154c24e60b..fcdb8bcabe0 100644 --- a/core/src/components/datetime/datetime.tsx +++ b/core/src/components/datetime/datetime.tsx @@ -1984,7 +1984,7 @@ export class Datetime implements ComponentInterface { }); this.setActiveParts({ - ...activePart, + ...this.getActivePartsWithFallback(), hour: ev.detail.value, }); @@ -2024,7 +2024,7 @@ export class Datetime implements ComponentInterface { }); this.setActiveParts({ - ...activePart, + ...this.getActivePartsWithFallback(), minute: ev.detail.value, }); @@ -2070,7 +2070,7 @@ export class Datetime implements ComponentInterface { }); this.setActiveParts({ - ...activePart, + ...this.getActivePartsWithFallback(), ampm: ev.detail.value, hour, }); diff --git a/core/src/components/picker/picker.tsx b/core/src/components/picker/picker.tsx index 1d98e049d4b..71db6a3cac7 100644 --- a/core/src/components/picker/picker.tsx +++ b/core/src/components/picker/picker.tsx @@ -410,8 +410,13 @@ export class Picker implements ComponentInterface { colEl: HTMLIonPickerColumnElement, value: string, zeroBehavior: 'start' | 'end' = 'start' - ) => { + ): boolean => { + if (!value) { + return false; + } + const behavior = zeroBehavior === 'start' ? /^0+/ : /0$/; + value = value.replace(behavior, ''); const option = Array.from(colEl.querySelectorAll('ion-picker-column-option')).find((el) => { return el.disabled !== true && el.textContent!.replace(behavior, '') === value; }); @@ -419,6 +424,58 @@ export class Picker implements ComponentInterface { if (option) { colEl.setValue(option.value); } + + return !!option; + }; + + /** + * Attempts to intelligently search the first and second + * column as if they're number columns for the provided numbers + * where the first two numbers are the first column + * and the last 2 are the last column. Tries to allow for the first + * number to be ignored for situations where typos occurred. + */ + private multiColumnSearch = ( + firstColumn: HTMLIonPickerColumnElement, + secondColumn: HTMLIonPickerColumnElement, + input: string + ) => { + if (input.length === 0) { + return; + } + + const inputArray = input.split(''); + const hourValue = inputArray.slice(0, 2).join(''); + // Try to find a match for the first two digits in the first column + const foundHour = this.searchColumn(firstColumn, hourValue); + + // If we have more than 2 digits and found a match for hours, + // use the remaining digits for the second column (minutes) + if (inputArray.length > 2 && foundHour) { + const minuteValue = inputArray.slice(2, 4).join(''); + this.searchColumn(secondColumn, minuteValue); + } + // If we couldn't find a match for the two-digit hour, try single digit approaches + else if (!foundHour && inputArray.length >= 1) { + // First try the first digit as a single-digit hour + let singleDigitHour = inputArray[0]; + let singleDigitFound = this.searchColumn(firstColumn, singleDigitHour); + + // If that didn't work, try the second digit as a single-digit hour + // (handles case where user made a typo in the first digit, or they typed over themselves) + if (!singleDigitFound) { + inputArray.shift(); + singleDigitHour = inputArray[0]; + singleDigitFound = this.searchColumn(firstColumn, singleDigitHour); + } + + // If we found a single-digit hour and have remaining digits, + // use up to 2 of the remaining digits for the second column + if (singleDigitFound && inputArray.length > 1) { + const remainingDigits = inputArray.slice(1, 3).join(''); + this.searchColumn(secondColumn, remainingDigits); + } + } }; private selectMultiColumn = () => { @@ -433,91 +490,15 @@ export class Picker implements ComponentInterface { const lastColumn = numericPickers[1]; let value = inputEl.value; - let minuteValue; - switch (value.length) { - case 1: - this.searchColumn(firstColumn, value); - break; - case 2: - /** - * If the first character is `0` or `1` it is - * possible that users are trying to type `09` - * or `11` into the hour field, so we should look - * at that first. - */ - const firstCharacter = inputEl.value.substring(0, 1); - value = firstCharacter === '0' || firstCharacter === '1' ? inputEl.value : firstCharacter; - - this.searchColumn(firstColumn, value); - - /** - * If only checked the first value, - * we can check the second value - * for a match in the minutes column - */ - if (value.length === 1) { - minuteValue = inputEl.value.substring(inputEl.value.length - 1); - this.searchColumn(lastColumn, minuteValue, 'end'); - } - break; - case 3: - /** - * If the first character is `0` or `1` it is - * possible that users are trying to type `09` - * or `11` into the hour field, so we should look - * at that first. - */ - const firstCharacterAgain = inputEl.value.substring(0, 1); - value = - firstCharacterAgain === '0' || firstCharacterAgain === '1' - ? inputEl.value.substring(0, 2) - : firstCharacterAgain; - - this.searchColumn(firstColumn, value); - - /** - * If only checked the first value, - * we can check the second value - * for a match in the minutes column - */ - minuteValue = value.length === 1 ? inputEl.value.substring(1) : inputEl.value.substring(2); - - this.searchColumn(lastColumn, minuteValue, 'end'); - break; - case 4: - /** - * If the first character is `0` or `1` it is - * possible that users are trying to type `09` - * or `11` into the hour field, so we should look - * at that first. - */ - const firstCharacterAgainAgain = inputEl.value.substring(0, 1); - value = - firstCharacterAgainAgain === '0' || firstCharacterAgainAgain === '1' - ? inputEl.value.substring(0, 2) - : firstCharacterAgainAgain; - this.searchColumn(firstColumn, value); + if (value.length > 4) { + const startIndex = inputEl.value.length - 4; + const newString = inputEl.value.substring(startIndex); - /** - * If only checked the first value, - * we can check the second value - * for a match in the minutes column - */ - const minuteValueAgain = - value.length === 1 - ? inputEl.value.substring(1, inputEl.value.length) - : inputEl.value.substring(2, inputEl.value.length); - this.searchColumn(lastColumn, minuteValueAgain, 'end'); - - break; - default: - const startIndex = inputEl.value.length - 4; - const newString = inputEl.value.substring(startIndex); - - inputEl.value = newString; - this.selectMultiColumn(); - break; + inputEl.value = newString; + value = newString; } + + this.multiColumnSearch(firstColumn, lastColumn, value); }; /** diff --git a/core/src/components/picker/test/keyboard-entry/picker.e2e.ts b/core/src/components/picker/test/keyboard-entry/picker.e2e.ts index 64d4a1cce13..b54cd03585a 100644 --- a/core/src/components/picker/test/keyboard-entry/picker.e2e.ts +++ b/core/src/components/picker/test/keyboard-entry/picker.e2e.ts @@ -163,6 +163,172 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => await expect(ionChange).toHaveReceivedEventDetail({ value: 12 }); await expect(column).toHaveJSProperty('value', 12); }); + + test('should allow typing 22 in a column where the max value is 23 and not just set it to 2', async ({ + page, + }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/28877', + }); + await page.setContent( + ` + + + + + + + `, + config + ); + + const hoursColumn = page.locator('ion-picker-column#hours'); + const minutesColumn = page.locator('ion-picker-column#minutes'); + const hoursIonChange = await (hoursColumn as E2ELocator).spyOnEvent('ionChange'); + const minutesIonChange = await (minutesColumn as E2ELocator).spyOnEvent('ionChange'); + const highlight = page.locator('ion-picker .picker-highlight'); + + const box = await highlight.boundingBox(); + if (box !== null) { + await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2); + } + + // Simulate typing '2230' (22 hours, 30 minutes) + await page.keyboard.press('Digit2'); + await page.keyboard.press('Digit2'); + await page.keyboard.press('Digit3'); + await page.keyboard.press('Digit0'); + + // Ensure the hours column is set to 22 + await expect(hoursIonChange).toHaveReceivedEventDetail({ value: 22 }); + await expect(hoursColumn).toHaveJSProperty('value', 22); + + // Ensure the minutes column is set to 30 + await expect(minutesIonChange).toHaveReceivedEventDetail({ value: 30 }); + await expect(minutesColumn).toHaveJSProperty('value', 30); + }); + + test('should set value to 2 and not wait for another digit when max value is 12', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/28877', + }); + await page.setContent( + ` + + + + + + + `, + config + ); + + const hoursColumn = page.locator('ion-picker-column#hours'); + const minutesColumn = page.locator('ion-picker-column#minutes'); + const hoursIonChange = await (hoursColumn as E2ELocator).spyOnEvent('ionChange'); + const minutesIonChange = await (minutesColumn as E2ELocator).spyOnEvent('ionChange'); + const highlight = page.locator('ion-picker .picker-highlight'); + + const box = await highlight.boundingBox(); + if (box !== null) { + await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2); + } + + // Simulate typing '245' (2 hours, 45 minutes) + await page.keyboard.press('Digit2'); + await page.keyboard.press('Digit4'); + await page.keyboard.press('Digit5'); + + // Ensure the hours column is set to 2 + await expect(hoursIonChange).toHaveReceivedEventDetail({ value: 2 }); + await expect(hoursColumn).toHaveJSProperty('value', 2); + + // Ensure the minutes column is set to 45 + await expect(minutesIonChange).toHaveReceivedEventDetail({ value: 45 }); + await expect(minutesColumn).toHaveJSProperty('value', 45); + }); + test('pressing Enter should dismiss the keyboard', async ({ page }) => { test.info().annotations.push({ type: 'issue', From 0893703769a1f875420117255b7453baf0a29de9 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Wed, 26 Mar 2025 16:55:04 -0400 Subject: [PATCH 6/9] test(angular): add a landing page to go between lazy and standalone apps (#30286) ## What is the new behavior? Adds a landing page to the Angular test app to make it easier to get to and debug standalone. ## Does this introduce a breaking change? - [ ] Yes - [x] No Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- .../test/apps/ng19/src/app/app.module.ts | 28 --- .../test/base/e2e/src/lazy/tabs.spec.ts | 220 +++++++++--------- .../app-landing/app-landing.component.html | 16 ++ .../app/app-landing/app-landing.component.ts | 13 ++ .../angular/test/base/src/app/app.module.ts | 33 ++- .../angular/test/base/src/app/app.routes.ts | 18 +- .../lazy/home-page/home-page.component.html | 19 +- .../standalone/app-standalone/app.routes.ts | 9 + .../home-page/home-page.component.html | 166 +++++++++++++ .../home-page/home-page.component.ts | 15 ++ .../split-pane/split-pane-page.component.html | 23 ++ .../split-pane/split-pane-page.component.ts | 24 ++ .../split-pane/split-pane.component.css | 3 + .../split-pane/split-pane.component.html | 22 ++ .../split-pane/split-pane.component.ts | 49 ++++ 15 files changed, 487 insertions(+), 171 deletions(-) delete mode 100644 packages/angular/test/apps/ng19/src/app/app.module.ts create mode 100644 packages/angular/test/base/src/app/app-landing/app-landing.component.html create mode 100644 packages/angular/test/base/src/app/app-landing/app-landing.component.ts create mode 100644 packages/angular/test/base/src/app/standalone/home-page/home-page.component.html create mode 100644 packages/angular/test/base/src/app/standalone/home-page/home-page.component.ts create mode 100644 packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.html create mode 100644 packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.ts create mode 100644 packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.css create mode 100644 packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.html create mode 100644 packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.ts diff --git a/packages/angular/test/apps/ng19/src/app/app.module.ts b/packages/angular/test/apps/ng19/src/app/app.module.ts deleted file mode 100644 index cdc0a89be04..00000000000 --- a/packages/angular/test/apps/ng19/src/app/app.module.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { APP_ID, NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouteReuseStrategy } from '@angular/router'; -import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; -import { AppComponent } from './app.component'; -import { AppRoutingModule } from './app-routing.module'; - -const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; - -export function ionicConfigFactory(): any { - const isLazy = isBrowser && window.location.href.includes('lazy'); - return isLazy ? { keyboardHeight: 12345 } : {}; -} - -@NgModule({ - declarations: [AppComponent], - imports: [ - BrowserModule, - AppRoutingModule, - IonicModule.forRoot(ionicConfigFactory()), - ], - providers: [ - { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, - { provide: APP_ID, useValue: 'serverApp' }, - ], - bootstrap: [AppComponent], -}) -export class AppModule {} diff --git a/packages/angular/test/base/e2e/src/lazy/tabs.spec.ts b/packages/angular/test/base/e2e/src/lazy/tabs.spec.ts index ac31d74060b..ef3b8a3f32b 100644 --- a/packages/angular/test/base/e2e/src/lazy/tabs.spec.ts +++ b/packages/angular/test/base/e2e/src/lazy/tabs.spec.ts @@ -3,122 +3,122 @@ describe('Tabs', () => { beforeEach(() => { cy.visit('/lazy/tabs'); }) - + describe('entry url - /tabs', () => { it('should redirect and load tab-account', () => { testTabTitle('Tab 1 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1']); testState(1, 'account'); }); - + it('should navigate between tabs and ionChange events should be dispatched', () => { let tab = testTabTitle('Tab 1 - Page 1'); tab.find('.segment-changed').should('have.text', 'false'); - + cy.get('#tab-button-contact').click(); tab = testTabTitle('Tab 2 - Page 1'); tab.find('.segment-changed').should('have.text', 'false'); }); - + describe('when navigating between tabs', () => { - + it('should emit ionTabsWillChange before setting the selected tab', () => { cy.get('#ionTabsWillChangeCounter').should('have.text', '1'); cy.get('#ionTabsWillChangeEvent').should('have.text', 'account'); cy.get('#ionTabsWillChangeSelectedTab').should('have.text', ''); - + cy.get('#ionTabsDidChangeCounter').should('have.text', '1'); cy.get('#ionTabsDidChangeEvent').should('have.text', 'account'); cy.get('#ionTabsDidChangeSelectedTab').should('have.text', 'account'); - + cy.get('#tab-button-contact').click(); - + cy.get('#ionTabsWillChangeCounter').should('have.text', '2'); cy.get('#ionTabsWillChangeEvent').should('have.text', 'contact'); cy.get('#ionTabsWillChangeSelectedTab').should('have.text', 'account'); - + cy.get('#ionTabsDidChangeCounter').should('have.text', '2'); cy.get('#ionTabsDidChangeEvent').should('have.text', 'contact'); cy.get('#ionTabsDidChangeSelectedTab').should('have.text', 'contact'); }) - + }); - + it('should simulate stack + double tab click', () => { let tab = getSelectedTab(); tab.find('#goto-tab1-page2').click(); testTabTitle('Tab 1 - Page 2 (1)'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab1-nested']); testState(1, 'account'); - + // When you call find on tab above it changes the value of tab // so we need to redefine it tab = getSelectedTab(); tab.find('ion-back-button').should('be.visible'); - + cy.get('#tab-button-contact').click(); testTabTitle('Tab 2 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab1-nested', 'app-tabs-tab2']); testState(2, 'contact'); - + cy.get('#tab-button-account').click(); testTabTitle('Tab 1 - Page 2 (1)'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab1-nested', 'app-tabs-tab2']); testState(3, 'account'); - + tab = getSelectedTab(); tab.find('ion-back-button').should('be.visible'); - + cy.get('#tab-button-account').click(); testTabTitle('Tab 1 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab2']); testState(3, 'account'); }); - + it('should simulate stack + back button click', () => { const tab = getSelectedTab(); tab.find('#goto-tab1-page2').click(); testTabTitle('Tab 1 - Page 2 (1)'); testState(1, 'account'); - + cy.get('#tab-button-contact').click(); testTabTitle('Tab 2 - Page 1'); testState(2, 'contact'); - + cy.get('#tab-button-account').click(); testTabTitle('Tab 1 - Page 2 (1)'); testState(3, 'account'); - + cy.get('ion-back-button').click(); testTabTitle('Tab 1 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab2']); testState(3, 'account'); }); - + it('should navigate deep then go home', () => { const tab = getSelectedTab(); tab.find('#goto-tab1-page2').click(); cy.ionPageVisible('app-tabs-tab1-nested'); cy.ionPageHidden('app-tabs-tab1'); - + testTabTitle('Tab 1 - Page 2 (1)'); - + cy.get('#goto-next').click(); cy.ionPageVisible('app-tabs-tab1-nested:last-of-type'); cy.ionPageHidden('app-tabs-tab1-nested:first-of-type'); - + testTabTitle('Tab 1 - Page 2 (2)'); - + cy.get('#tab-button-contact').click(); cy.ionPageVisible('app-tabs-tab2'); cy.ionPageHidden('app-tabs-tab1-nested:last-of-type'); - + testTabTitle('Tab 2 - Page 1'); - + cy.get('#tab-button-account').click(); cy.ionPageVisible('app-tabs-tab1-nested:last-of-type'); cy.ionPageHidden('app-tabs-tab2'); - + testTabTitle('Tab 1 - Page 2 (2)'); cy.testStack('ion-tabs ion-router-outlet', [ 'app-tabs-tab1', @@ -126,9 +126,9 @@ describe('Tabs', () => { 'app-tabs-tab1-nested', 'app-tabs-tab2' ]); - + cy.get('#tab-button-account').click(); - + /** * Wait for the leaving view to * be unmounted otherwise testTabTitle @@ -137,65 +137,65 @@ describe('Tabs', () => { */ cy.ionPageVisible('app-tabs-tab1'); cy.ionPageDoesNotExist('app-tabs-tab1-nested'); - + testTabTitle('Tab 1 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', [ 'app-tabs-tab1', 'app-tabs-tab2' ]); }); - + it('should switch tabs and go back', () => { cy.get('#tab-button-contact').click(); const tab = testTabTitle('Tab 2 - Page 1'); - + tab.find('#goto-tab1-page1').click(); testTabTitle('Tab 1 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab2']); }); - + it('should switch tabs and go to nested', () => { cy.get('#tab-button-contact').click(); const tab = testTabTitle('Tab 2 - Page 1'); - + tab.find('#goto-tab1-page2').click(); testTabTitle('Tab 1 - Page 2 (1)'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab2', 'app-tabs-tab1-nested']); }); - + it('should load lazy loaded tab', () => { cy.get('#tab-button-lazy').click(); cy.ionPageVisible('app-tabs-tab3'); testTabTitle('Tab 3 - Page 1'); }); - + it('should use ion-back-button defaultHref', () => { let tab = getSelectedTab(); tab.find('#goto-tab3-page2').click(); testTabTitle('Tab 3 - Page 2'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab3-nested']); - + tab = getSelectedTab(); tab.find('ion-back-button').click(); testTabTitle('Tab 3 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1', 'app-tabs-tab3']); }); - + it('should preserve navigation extras when switching tabs', () => { const expectUrlToContain = 'search=hello#fragment'; let tab = getSelectedTab(); tab.find('#goto-nested-page1-with-query-params').click(); testTabTitle('Tab 1 - Page 2 (1)'); testUrlContains(expectUrlToContain); - + cy.get('#tab-button-contact').click(); testTabTitle('Tab 2 - Page 1'); - + cy.get('#tab-button-account').click(); tab = testTabTitle('Tab 1 - Page 2 (1)'); testUrlContains(expectUrlToContain); }); - + it('should set root when clicking on an active tab to navigate to the root', () => { const expectNestedTabUrlToContain = 'search=hello#fragment'; cy.url().then(url => { @@ -203,74 +203,74 @@ describe('Tabs', () => { tab.find('#goto-nested-page1-with-query-params').click(); testTabTitle('Tab 1 - Page 2 (1)'); testUrlContains(expectNestedTabUrlToContain); - + cy.get('#tab-button-account').click(); testTabTitle('Tab 1 - Page 1'); - + testUrlEquals(url); }) }); }) - + describe('entry tab contains navigation extras', () => { const expectNestedTabUrlToContain = 'search=hello#fragment'; const rootUrlParams = 'test=123#rootFragment'; const rootUrl = `/lazy/tabs/account?${rootUrlParams}`; - + beforeEach(() => { cy.visit(rootUrl); }) - + it('should preserve root url navigation extras when clicking on an active tab to navigate to the root', () => { const tab = getSelectedTab(); tab.find('#goto-nested-page1-with-query-params').click(); - + testTabTitle('Tab 1 - Page 2 (1)'); testUrlContains(expectNestedTabUrlToContain); - + cy.get('#tab-button-account').click(); testTabTitle('Tab 1 - Page 1'); - + testUrlContains(rootUrl); }); - + it('should preserve root url navigation extras when changing tabs', () => { getSelectedTab(); cy.get('#tab-button-contact').click(); testTabTitle('Tab 2 - Page 1'); - + cy.get('#tab-button-account').click(); testTabTitle('Tab 1 - Page 1'); - + testUrlContains(rootUrl); }); - + it('should navigate deep then go home and preserve navigation extras', () => { let tab = getSelectedTab(); tab.find('#goto-tab1-page2').click(); cy.ionPageVisible('app-tabs-tab1-nested'); cy.ionPageHidden('app-tabs-tab1'); - + tab = testTabTitle('Tab 1 - Page 2 (1)'); - + tab.find('#goto-next').click(); cy.ionPageVisible('app-tabs-tab1-nested:last-of-type'); cy.ionPageHidden('app-tabs-tab1-nested:first-of-type'); - + testTabTitle('Tab 1 - Page 2 (2)'); - + cy.ionTabClick('Tab Two'); cy.ionPageVisible('app-tabs-tab2'); cy.ionPageHidden('app-tabs-tab1-nested:last-of-type'); - + testTabTitle('Tab 2 - Page 1'); - + cy.ionTabClick('Tab One'); cy.ionPageVisible('app-tabs-tab1-nested:last-of-type'); cy.ionPageHidden('app-tabs-tab2'); - + testTabTitle('Tab 1 - Page 2 (2)'); - + cy.ionTabClick('Tab One'); /** * Wait for the leaving view to @@ -280,37 +280,37 @@ describe('Tabs', () => { */ cy.ionPageVisible('app-tabs-tab1'); cy.ionPageDoesNotExist('app-tabs-tab1-nested'); - + testTabTitle('Tab 1 - Page 1'); - + testUrlContains(rootUrl); }); }) - + describe('entry url - /tabs/account', () => { beforeEach(() => { cy.visit('/lazy/tabs/account'); }); it('should pop to previous view when leaving tabs outlet', () => { - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 1'); - + cy.get('#goto-tab1-page2').click(); - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 2 (1)'); - + cy.get('#goto-global').click(); - + cy.get('ion-title').should('contain.text', 'Global Page'); - + cy.get('#goto-prev-pop').click(); - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 2 (1)'); - + cy.get('#goto-prev').click(); - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 1'); - + /** * Verifies that when entering the tabs outlet directly, * the navController.pop() method does not pop the previous view, @@ -320,117 +320,117 @@ describe('Tabs', () => { cy.get('ion-title').should('contain.text', 'Tab 1 - Page 1'); }); }); - + describe('entry url - /', () => { it('should pop to the root outlet from the tabs outlet', () => { cy.visit('/lazy/'); - + cy.get('ion-title').should('contain.text', 'Test App'); - - cy.get('ion-item').contains('Tabs test').click(); - + + cy.get('ion-item').contains('Tabs Test').click(); + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 1'); - + cy.get('#goto-tab1-page2').click(); - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 2 (1)'); - + cy.get('#goto-global').click(); - + cy.get('ion-title').should('contain.text', 'Global Page'); - + cy.get('#goto-prev-pop').click(); - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 2 (1)'); - + cy.get('#goto-prev').click(); - + cy.get('ion-title').should('contain.text', 'Tab 1 - Page 1'); - + cy.get('#goto-previous-page').click(); - + cy.get('ion-title').should('contain.text', 'Test App'); - + }); }); - - + + describe('entry url - /tabs/account/nested/1', () => { beforeEach(() => { cy.visit('/lazy/tabs/account/nested/1'); }) - + it('should only display the back-button when there is a page in the stack', () => { let tab = getSelectedTab(); tab.find('ion-back-button').should('not.be.visible'); testTabTitle('Tab 1 - Page 2 (1)'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1-nested']); - + cy.get('#tab-button-account').click(); tab = testTabTitle('Tab 1 - Page 1'); - + tab.find('#goto-tab1-page2').click(); tab = testTabTitle('Tab 1 - Page 2 (1)'); tab.find('ion-back-button').should('be.visible'); }); - + it('should not reuse the same page', () => { let tab = testTabTitle('Tab 1 - Page 2 (1)'); tab.find('#goto-next').click(); tab = testTabTitle('Tab 1 - Page 2 (2)'); - + tab.find('#goto-next').click(); tab = testTabTitle('Tab 1 - Page 2 (3)'); - + cy.testStack('ion-tabs ion-router-outlet', [ 'app-tabs-tab1-nested', 'app-tabs-tab1-nested', 'app-tabs-tab1-nested' ]); - + tab = getSelectedTab(); tab.find('ion-back-button').click(); tab = testTabTitle('Tab 1 - Page 2 (2)'); tab.find('ion-back-button').click(); tab = testTabTitle('Tab 1 - Page 2 (1)'); - + tab.find('ion-back-button').should('not.be.visible'); - + cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab1-nested']); }); }) - + describe('entry url - /tabs/lazy', () => { beforeEach(() => { cy.visit('/lazy/tabs/lazy'); }); - + it('should not display the back-button if coming from a different stack', () => { let tab = testTabTitle('Tab 3 - Page 1'); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab3']); - + tab = getSelectedTab(); tab.find('#goto-tab1-page2').click(); cy.testStack('ion-tabs ion-router-outlet', ['app-tabs-tab3', 'app-tabs-tab1-nested']); - + tab = testTabTitle('Tab 1 - Page 2 (1)'); tab.find('ion-back-button').should('not.be.visible'); }); }) - + describe('enter url - /tabs/contact/one', () => { beforeEach(() => { cy.visit('/lazy/tabs/contact/one'); }); - + it('should return to correct tab after going to page in different outlet', () => { const tab = getSelectedTab(); tab.find('#goto-nested-page1').click(); cy.testStack('app-nested-outlet ion-router-outlet', ['app-nested-outlet-page']); - + const nestedOutlet = cy.get('app-nested-outlet'); nestedOutlet.find('ion-back-button').click(); - + testTabTitle('Tab 2 - Page 1'); }); }) diff --git a/packages/angular/test/base/src/app/app-landing/app-landing.component.html b/packages/angular/test/base/src/app/app-landing/app-landing.component.html new file mode 100644 index 00000000000..8689c0e29bc --- /dev/null +++ b/packages/angular/test/base/src/app/app-landing/app-landing.component.html @@ -0,0 +1,16 @@ + + + Test App - Angular {{ angularVersion.major }} + + + + + + + Go to Lazy App + + + Go to Standalone App + + + diff --git a/packages/angular/test/base/src/app/app-landing/app-landing.component.ts b/packages/angular/test/base/src/app/app-landing/app-landing.component.ts new file mode 100644 index 00000000000..62814291cdd --- /dev/null +++ b/packages/angular/test/base/src/app/app-landing/app-landing.component.ts @@ -0,0 +1,13 @@ +import { Component, VERSION } from '@angular/core'; + +@Component({ + selector: 'app-landing', + templateUrl: './app-landing.component.html', + standalone: false +}) +export class AppLandingComponent { + angularVersion = VERSION; + + constructor() {} + +} diff --git a/packages/angular/test/base/src/app/app.module.ts b/packages/angular/test/base/src/app/app.module.ts index 9d0a2a78eab..c419cd6d0d8 100644 --- a/packages/angular/test/base/src/app/app.module.ts +++ b/packages/angular/test/base/src/app/app.module.ts @@ -1,30 +1,29 @@ +import { APP_ID, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; import { RouteReuseStrategy } from '@angular/router'; - -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; +import { AppComponent } from './app.component'; +import { AppRoutingModule } from './app-routing.module'; +import { AppLandingComponent } from './app-landing/app-landing.component'; -const isLazy = window.location.href.includes('lazy'); - -const imports = [ - BrowserModule.withServerTransition({ appId: 'serverApp' }), - AppRoutingModule, -]; +const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; -if (isLazy) { - imports.push(IonicModule.forRoot({ keyboardHeight: 12345 })); +export function ionicConfigFactory(): any { + const isLazy = isBrowser && window.location.href.includes('lazy'); + return isLazy ? { keyboardHeight: 12345 } : {}; } @NgModule({ - declarations: [ - AppComponent, + declarations: [AppComponent, AppLandingComponent], + imports: [ + BrowserModule, + AppRoutingModule, + IonicModule.forRoot(ionicConfigFactory()), ], - imports, providers: [ { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + { provide: APP_ID, useValue: 'serverApp' }, ], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) -export class AppModule { } +export class AppModule {} diff --git a/packages/angular/test/base/src/app/app.routes.ts b/packages/angular/test/base/src/app/app.routes.ts index 679d1812259..291e96540de 100644 --- a/packages/angular/test/base/src/app/app.routes.ts +++ b/packages/angular/test/base/src/app/app.routes.ts @@ -1,16 +1,18 @@ import { Routes } from '@angular/router'; +import { AppLandingComponent } from './app-landing/app-landing.component'; export const routes: Routes = [ { path: '', pathMatch: 'full', - /** - * Omit the slash at the beginning - * so query params are preserved. - * https://github.com/angular/angular/issues/13315#issuecomment-427254639 - */ - redirectTo: 'lazy' + component: AppLandingComponent }, - { path: 'lazy', loadChildren: () => import('./lazy/app-lazy/app.module').then(m => m.AppModule) }, - { path: 'standalone', loadChildren: () => import('./standalone/app-standalone/app.routes').then(m => m.routes) } + { + path: 'lazy', + loadChildren: () => import('./lazy/app-lazy/app.module').then(m => m.AppModule) + }, + { + path: 'standalone', + loadChildren: () => import('./standalone/app-standalone/app.routes').then(m => m.routes) + } ]; diff --git a/packages/angular/test/base/src/app/lazy/home-page/home-page.component.html b/packages/angular/test/base/src/app/lazy/home-page/home-page.component.html index 7fdca9c50d8..80418148c5e 100644 --- a/packages/angular/test/base/src/app/lazy/home-page/home-page.component.html +++ b/packages/angular/test/base/src/app/lazy/home-page/home-page.component.html @@ -1,7 +1,10 @@ + + + - Test App - Angular {{ angularVersion.major }} + Test App - Angular {{ angularVersion.major }} - Lazy @@ -9,37 +12,37 @@ - Alerts test + Alerts Test - Inputs test + Inputs Test - Form test + Form Test - Modals test + Modals Test - Router link test + Router link Test - Tabs test + Tabs Test - Basic Tabs test + Basic Tabs Test diff --git a/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts b/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts index 40afc7a68de..c58432e0e9d 100644 --- a/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts +++ b/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts @@ -6,6 +6,7 @@ export const routes: Routes = [ path: '', component: AppComponent, children: [ + { path: '', loadComponent: () => import('../home-page/home-page.component').then(c => c.HomePageComponent) }, { path: 'menu-controller', loadComponent: () => import('../menu-controller/menu-controller.component').then(c => c.MenuControllerComponent) }, { path: 'action-sheet-controller', loadComponent: () => import('../action-sheet-controller/action-sheet-controller.component').then(c => c.ActionSheetControllerComponent) }, { path: 'popover', loadComponent: () => import('../popover/popover.component').then(c => c.PopoverComponent) }, @@ -18,6 +19,14 @@ export const routes: Routes = [ { path: 'overlay-controllers', loadComponent: () => import('../overlay-controllers/overlay-controllers.component').then(c => c.OverlayControllersComponent) }, { path: 'button', loadComponent: () => import('../button/button.component').then(c => c.ButtonComponent) }, { path: 'icon', loadComponent: () => import('../icon/icon.component').then(c => c.IconComponent) }, + { path: 'split-pane', redirectTo: '/standalone/split-pane/inbox', pathMatch: 'full' }, + { + path: 'split-pane', + loadComponent: () => import('../split-pane/split-pane.component').then(c => c.SplitPaneComponent), + children: [ + { path: ':id', loadComponent: () => import('../split-pane/split-pane-page.component').then(c => c.SplitPanePageComponent) }, + ] + }, { path: 'tabs', redirectTo: '/standalone/tabs/tab-one', pathMatch: 'full' }, { path: 'tabs', diff --git a/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html b/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html new file mode 100644 index 00000000000..af57a62512c --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html @@ -0,0 +1,166 @@ + + + + + + + Test App - Angular {{ angularVersion.major }} - Standalone + + + + + + + Components + + + + Back Button Test + + + + + Button Test + + + + + Icon Test + + + + + + + Navigation + + + + Nav Test + + + + + Router Link Test + + + + + Router Outlet Test + + + + + Split Pane Test + + + + + Tabs Test + + + + + Tabs Basic Test + + + + + + + Overlays + + + + Action Sheet Controller Test + + + + + Menu Controller Test + + + + + Modal Test + + + + + Overlay Controllers Test + + + + + Popover Test + + + + + + + Value Accessors + + + + Checkbox Test + + + + + Datetime Test + + + + + Input Test + + + + + Radio Group Test + + + + + Range Test + + + + + Searchbar Test + + + + + Segment Test + + + + + Select Test + + + + + Textarea Test + + + + + Toggle Test + + + + + + + Miscellaneous + + + + Providers Test + + + + diff --git a/packages/angular/test/base/src/app/standalone/home-page/home-page.component.ts b/packages/angular/test/base/src/app/standalone/home-page/home-page.component.ts new file mode 100644 index 00000000000..dc2d78e6ab9 --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/home-page/home-page.component.ts @@ -0,0 +1,15 @@ +import { Component, VERSION } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { IonBackButton, IonButtons, IonContent, IonLabel, IonList, IonListHeader, IonHeader, IonItem, IonRouterLink, IonTitle, IonToolbar } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-home-page', + templateUrl: './home-page.component.html', + standalone: true, + imports: [ IonBackButton, IonButtons, IonContent, IonLabel, IonList, IonHeader, IonListHeader, IonItem, IonRouterLink, IonTitle, IonToolbar, RouterModule ] +}) +export class HomePageComponent { + angularVersion = VERSION; + + constructor() {} +} diff --git a/packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.html b/packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.html new file mode 100644 index 00000000000..3d03206fee4 --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.html @@ -0,0 +1,23 @@ + + + + + + {{ folder }} + + + + + + + {{ folder }} + + + +
+ Button One + Button Two + Button Three + Button Four +
+
diff --git a/packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.ts b/packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.ts new file mode 100644 index 00000000000..d913c6a3b64 --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/split-pane/split-pane-page.component.ts @@ -0,0 +1,24 @@ +import { Component, inject, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { IonButton, IonButtons, IonContent, IonHeader, IonMenuButton, IonTitle, IonToolbar } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-split-pane-page', + templateUrl: './split-pane-page.component.html', + imports: [ IonButton, IonButtons, IonContent, IonHeader, IonMenuButton, IonTitle, IonToolbar ], + standalone: true, +}) +export class SplitPanePageComponent implements OnInit { + public folder!: string; + private activatedRoute = inject(ActivatedRoute); + + constructor() {} + + ngOnInit() { + this.folder = this.activatedRoute.snapshot.paramMap.get('id') as string; + } + + onClick(val: string) { + console.log(val); + } +} diff --git a/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.css b/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.css new file mode 100644 index 00000000000..f91c443385e --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.css @@ -0,0 +1,3 @@ +ion-item.selected { + --background: rgb(var(--ion-color-primary-rgb, 0, 84, 233), 0.14); +} diff --git a/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.html b/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.html new file mode 100644 index 00000000000..89a192dc6e3 --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.html @@ -0,0 +1,22 @@ + + + + + Inbox + + + + {{ p.title }} + + + + + + + diff --git a/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.ts b/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.ts new file mode 100644 index 00000000000..747e28d75f5 --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/split-pane/split-pane.component.ts @@ -0,0 +1,49 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { RouterLink, RouterLinkActive } from '@angular/router'; +import { + IonContent, + IonItem, + IonLabel, + IonList, + IonListHeader, + IonMenu, + IonMenuToggle, + IonRouterLink, + IonRouterOutlet, + IonSplitPane +} from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-split-pane', + templateUrl: 'split-pane.component.html', + styleUrls: ['split-pane.component.css'], + standalone: true, + imports: [ + CommonModule, + IonContent, + IonItem, + IonLabel, + IonList, + IonListHeader, + IonMenu, + IonMenuToggle, + IonRouterLink, + IonRouterOutlet, + IonSplitPane, + RouterLink, + RouterLinkActive, + ], +}) +export class SplitPaneComponent { + public appPages = [ + { title: 'Inbox', url: '/standalone/split-pane/inbox' }, + { title: 'Outbox', url: '/standalone/split-pane/outbox' }, + { title: 'Favorites', url: '/standalone/split-pane/favorites' }, + { title: 'Archived', url: '/standalone/split-pane/archived' }, + { title: 'Trash', url: '/standalone/split-pane/trash' }, + { title: 'Spam', url: '/standalone/split-pane/spam'} + ]; + + constructor() { } +} From 4fb15feb0c317eefdf7d1f690cb50e8e8b33d6ce Mon Sep 17 00:00:00 2001 From: ionitron Date: Wed, 26 Mar 2025 21:33:58 +0000 Subject: [PATCH 7/9] v8.5.2 --- CHANGELOG.md | 13 +++++++++++++ core/CHANGELOG.md | 13 +++++++++++++ core/package-lock.json | 6 +++--- core/package.json | 2 +- lerna.json | 2 +- packages/angular-server/CHANGELOG.md | 8 ++++++++ packages/angular-server/package-lock.json | 8 ++++---- packages/angular-server/package.json | 4 ++-- packages/angular/CHANGELOG.md | 8 ++++++++ packages/angular/package-lock.json | 8 ++++---- packages/angular/package.json | 4 ++-- packages/docs/CHANGELOG.md | 8 ++++++++ packages/docs/package-lock.json | 6 +++--- packages/docs/package.json | 2 +- packages/react-router/CHANGELOG.md | 8 ++++++++ packages/react-router/package-lock.json | 8 ++++---- packages/react-router/package.json | 4 ++-- packages/react/CHANGELOG.md | 8 ++++++++ packages/react/package-lock.json | 8 ++++---- packages/react/package.json | 4 ++-- packages/vue-router/CHANGELOG.md | 8 ++++++++ packages/vue-router/package-lock.json | 8 ++++---- packages/vue-router/package.json | 4 ++-- packages/vue/CHANGELOG.md | 8 ++++++++ packages/vue/package-lock.json | 8 ++++---- packages/vue/package.json | 4 ++-- 26 files changed, 127 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f211e17232e..aa0352217ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + + +### Bug Fixes + +* **datetime:** support typing time values in a 24-hour format ([#30147](https://github.com/ionic-team/ionic-framework/issues/30147)) ([ac6e6a0](https://github.com/ionic-team/ionic-framework/commit/ac6e6a03174263d09ec55c9742a026862a3df444)), closes [#28877](https://github.com/ionic-team/ionic-framework/issues/28877) +* **range:** emit ionInput when value changes ([#30293](https://github.com/ionic-team/ionic-framework/issues/30293)) ([7789bb5](https://github.com/ionic-team/ionic-framework/commit/7789bb59ee5c76074ff4872dc6a50ae2d83df8f5)), closes [#29619](https://github.com/ionic-team/ionic-framework/issues/29619) +* **segment-button:** ensure consistent disabled state for segment-content error handling ([#30288](https://github.com/ionic-team/ionic-framework/issues/30288)) ([1cfa915](https://github.com/ionic-team/ionic-framework/commit/1cfa915e8fe362951c521bce970a9f5f10918ab2)) + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index dea94360e5c..4ae50b507f8 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + + +### Bug Fixes + +* **datetime:** support typing time values in a 24-hour format ([#30147](https://github.com/ionic-team/ionic-framework/issues/30147)) ([ac6e6a0](https://github.com/ionic-team/ionic-framework/commit/ac6e6a03174263d09ec55c9742a026862a3df444)), closes [#28877](https://github.com/ionic-team/ionic-framework/issues/28877) +* **range:** emit ionInput when value changes ([#30293](https://github.com/ionic-team/ionic-framework/issues/30293)) ([7789bb5](https://github.com/ionic-team/ionic-framework/commit/7789bb59ee5c76074ff4872dc6a50ae2d83df8f5)), closes [#29619](https://github.com/ionic-team/ionic-framework/issues/29619) +* **segment-button:** ensure consistent disabled state for segment-content error handling ([#30288](https://github.com/ionic-team/ionic-framework/issues/30288)) ([1cfa915](https://github.com/ionic-team/ionic-framework/commit/1cfa915e8fe362951c521bce970a9f5f10918ab2)) + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) diff --git a/core/package-lock.json b/core/package-lock.json index d770c00a075..2674c43f10d 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -18189,4 +18189,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/core/package.json b/core/package.json index 52e8cf56dfe..e017e3b68ac 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "8.5.1", + "version": "8.5.2", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/lerna.json b/lerna.json index 56745d0c303..444bc6effc1 100644 --- a/lerna.json +++ b/lerna.json @@ -3,5 +3,5 @@ "core", "packages/*" ], - "version": "8.5.1" + "version": "8.5.2" } \ No newline at end of file diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index c8472bf96b2..84386d758b5 100644 --- a/packages/angular-server/CHANGELOG.md +++ b/packages/angular-server/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) **Note:** Version bump only for package @ionic/angular-server diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index 031aa0a5540..ba80f8a8098 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular-server", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.1" + "@ionic/core": "^8.5.2" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^16.0.0", @@ -11112,4 +11112,4 @@ } } } -} +} \ No newline at end of file diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index e43acdbf3ac..5a475c32c3b 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "8.5.1", + "version": "8.5.2", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -62,6 +62,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^8.5.1" + "@ionic/core": "^8.5.2" } } diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md index 293ee1aee18..194bdb9a1ca 100644 --- a/packages/angular/CHANGELOG.md +++ b/packages/angular/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/angular + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) **Note:** Version bump only for package @ionic/angular diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index 86c17ba9f3c..f7a3a5fe751 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.1", + "@ionic/core": "^8.5.2", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -15018,4 +15018,4 @@ } } } -} +} \ No newline at end of file diff --git a/packages/angular/package.json b/packages/angular/package.json index 9fea398c030..9906bf3456f 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "8.5.1", + "version": "8.5.2", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -47,7 +47,7 @@ } }, "dependencies": { - "@ionic/core": "^8.5.1", + "@ionic/core": "^8.5.2", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" diff --git a/packages/docs/CHANGELOG.md b/packages/docs/CHANGELOG.md index abf78b68eb8..a13b889de90 100644 --- a/packages/docs/CHANGELOG.md +++ b/packages/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) **Note:** Version bump only for package @ionic/docs diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json index d753d3f0c24..0a4b3cbb537 100644 --- a/packages/docs/package-lock.json +++ b/packages/docs/package-lock.json @@ -1,13 +1,13 @@ { "name": "@ionic/docs", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT" } } -} +} \ No newline at end of file diff --git a/packages/docs/package.json b/packages/docs/package.json index 6b7e6db698a..ad6c1484bee 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "8.5.1", + "version": "8.5.2", "description": "Pre-packaged API documentation for the Ionic docs.", "main": "core.json", "types": "core.d.ts", diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 5d389fd1e5d..03237b6be35 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) **Note:** Version bump only for package @ionic/react-router diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json index cfe240a607a..d7dafe864a6 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react-router", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { - "@ionic/react": "^8.5.1", + "@ionic/react": "^8.5.2", "tslib": "*" }, "devDependencies": { @@ -6680,4 +6680,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 60cb0bed464..96d8730634e 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "8.5.1", + "version": "8.5.2", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -36,7 +36,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^8.5.1", + "@ionic/react": "^8.5.2", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 62707e39fca..d114ed2efab 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/react + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 1003a231331..8bf13a5a49d 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.1", + "@ionic/core": "^8.5.2", "ionicons": "^7.0.0", "tslib": "*" }, @@ -20494,4 +20494,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/packages/react/package.json b/packages/react/package.json index c40d2f4399b..2d26b855f76 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "8.5.1", + "version": "8.5.2", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -39,7 +39,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^8.5.1", + "@ionic/core": "^8.5.2", "ionicons": "^7.0.0", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 671456d5b00..b3a448136c1 100644 --- a/packages/vue-router/CHANGELOG.md +++ b/packages/vue-router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) **Note:** Version bump only for package @ionic/vue-router diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json index ef70086cefe..58cd6da1b72 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue-router", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { - "@ionic/vue": "^8.5.1" + "@ionic/vue": "^8.5.2" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", @@ -12817,4 +12817,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index a9b9926c9b4..3f9f3dce071 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "8.5.1", + "version": "8.5.2", "description": "Vue Router integration for @ionic/vue", "scripts": { "test.spec": "jest", @@ -44,7 +44,7 @@ }, "homepage": "https://github.com/ionic-team/ionic-framework#readme", "dependencies": { - "@ionic/vue": "^8.5.1" + "@ionic/vue": "^8.5.2" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index de4c273ca87..c12d4295ae7 100644 --- a/packages/vue/CHANGELOG.md +++ b/packages/vue/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.2](https://github.com/ionic-team/ionic-framework/compare/v8.5.1...v8.5.2) (2025-03-26) + +**Note:** Version bump only for package @ionic/vue + + + + + ## [8.5.1](https://github.com/ionic-team/ionic-framework/compare/v8.5.0...v8.5.1) (2025-03-19) diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index d6b0221b66c..c1e6d19d9d6 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "8.5.1", + "version": "8.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "8.5.1", + "version": "8.5.2", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.1", + "@ionic/core": "^8.5.2", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" }, @@ -6687,4 +6687,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/packages/vue/package.json b/packages/vue/package.json index b31fa9c2815..4dd76298bec 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "8.5.1", + "version": "8.5.2", "description": "Vue specific wrapper for @ionic/core", "scripts": { "eslint": "eslint src", @@ -67,7 +67,7 @@ "vue-router": "^4.0.16" }, "dependencies": { - "@ionic/core": "^8.5.1", + "@ionic/core": "^8.5.2", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" }, From ca51d645575bf2086916cda7d7dfeb56dd9f669a Mon Sep 17 00:00:00 2001 From: ionitron Date: Wed, 26 Mar 2025 21:34:31 +0000 Subject: [PATCH 8/9] chore(): update package lock files --- core/package-lock.json | 508 +--------------------- packages/angular-server/package-lock.json | 42 +- packages/angular/package-lock.json | 14 +- packages/docs/package-lock.json | 2 +- packages/react-router/package-lock.json | 30 +- packages/react/package-lock.json | 14 +- packages/vue-router/package-lock.json | 125 ++++-- packages/vue/package-lock.json | 14 +- 8 files changed, 146 insertions(+), 603 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index 2674c43f10d..25ccf6e5fb6 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -2502,184 +2502,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@vue/compiler-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.13", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-core/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@vue/compiler-core/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/compiler-core": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.13", - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.48", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@vue/compiler-sfc/node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", - "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", - "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", - "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", - "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/reactivity": "3.5.13", - "@vue/runtime-core": "3.5.13", - "@vue/shared": "3.5.13", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", - "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13" - }, - "peerDependencies": { - "vue": "3.5.13" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/@zeit/schemas": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.21.0.tgz", @@ -3958,14 +3780,6 @@ "node": ">=4" } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -7773,17 +7587,6 @@ "node": ">=10" } }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -8115,26 +7918,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -9323,17 +9106,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "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", @@ -10046,21 +9818,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -10248,29 +10005,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vue": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", - "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-sfc": "3.5.13", - "@vue/runtime-dom": "3.5.13", - "@vue/server-renderer": "3.5.13", - "@vue/shared": "3.5.13" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -11016,22 +10750,19 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@capacitor/haptics/-/haptics-7.0.0.tgz", "integrity": "sha512-8uI8rWyAbq8EzkjS+sHZSncyzujHzVbuLKgj8J5H0yUL6+r26F16gVA2iuQuIBvzbSMy7Y0/pUuWlwZr/H8AKg==", - "dev": true, - "requires": {} + "dev": true }, "@capacitor/keyboard": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@capacitor/keyboard/-/keyboard-7.0.0.tgz", "integrity": "sha512-Tqwy8wG+sx4UqiFCX4Q+bFw6uKgG7BiHKAPpeefoIgoEB8H8Jf3xZNZoVPnJIMuPsCdSvuyHXZbJXH9IEEirGA==", - "dev": true, - "requires": {} + "dev": true }, "@capacitor/status-bar": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-7.0.0.tgz", "integrity": "sha512-wsvPkWkoSOXMIgVHu4c6P1sOuDSZ1ClUo5OpLRwj7u8DYzlV4jlmNzztQn2Lvsiqx1z4kfukSaqe40k1Lo4c9g==", - "dev": true, - "requires": {} + "dev": true }, "@clack/core": { "version": "0.4.1", @@ -11278,8 +11009,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@ionic/prettier-config/-/prettier-config-2.0.0.tgz", "integrity": "sha512-ageMx54B9qqS1scnFW3kQW2NW8HyXwUM/p9c1YSWFKr6Yct7YVNbJFY3EcFapaNTiDnwo+GLlPRt+wST6E8AfA==", - "dev": true, - "requires": {} + "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -11792,8 +11522,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-2.0.3.tgz", "integrity": "sha512-pw6ziJcyjZtntQ//bkad9qXaBx665SgEL8C8KI5wO8G5iU5MPxvdWrQyVaAvjojGm9tJoS8M9Z/EEepbqieYmw==", - "dev": true, - "requires": {} + "dev": true }, "@rollup/pluginutils": { "version": "3.1.0", @@ -11834,8 +11563,7 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/@stencil/angular-output-target/-/angular-output-target-0.10.2.tgz", "integrity": "sha512-jPRa2NMAPtm/iMY+mUaWATbIhgY5zPJfUNQyF8nwC0rMrfXifPoRCf6BbH2S4Gy7SX0X4hlP+jAbVUjQNg/P+Q==", - "dev": true, - "requires": {} + "dev": true }, "@stencil/core": { "version": "4.20.0", @@ -11846,22 +11574,19 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/@stencil/react-output-target/-/react-output-target-0.5.3.tgz", "integrity": "sha512-68jwRp35CjAcwhTJ9yFD/3n+jrHOqvEH2jreVuPVvZK+4tkhPlYlwz0d1E1RlF3jyifUSfdkWUGgXIEy8Fo3yw==", - "dev": true, - "requires": {} + "dev": true }, "@stencil/sass": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-3.0.9.tgz", "integrity": "sha512-GtPMjf5r4/BVBCO3LvcoMSIfOa6T+0wq+SrTGEilC4NCZpuZdAlZffWxXi80caZ1jDclwdzJ2qGwEgCAfvGoNA==", - "dev": true, - "requires": {} + "dev": true }, "@stencil/vue-output-target": { "version": "0.10.7", "resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.10.7.tgz", "integrity": "sha512-IYxDe+SLCkwhwsWRdynE31rTK1zN3hVwwojQ/V9lrN8Gnx4PTvrUQHiRno9jFo1dk+EaBZWX9gZSmXta0ZaZew==", - "dev": true, - "requires": {} + "dev": true }, "@stylelint/postcss-css-in-js": { "version": "0.37.2", @@ -12303,149 +12028,6 @@ "eslint-visitor-keys": "^3.4.1" } }, - "@vue/compiler-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", - "dev": true, - "peer": true, - "requires": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.13", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - }, - "dependencies": { - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "peer": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "peer": true - } - } - }, - "@vue/compiler-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", - "dev": true, - "peer": true, - "requires": { - "@vue/compiler-core": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "@vue/compiler-sfc": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", - "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.13", - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.48", - "source-map-js": "^1.2.0" - }, - "dependencies": { - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "peer": true - }, - "postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "peer": true, - "requires": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - } - } - } - }, - "@vue/compiler-ssr": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", - "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", - "dev": true, - "peer": true, - "requires": { - "@vue/compiler-dom": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "@vue/reactivity": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", - "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", - "dev": true, - "peer": true, - "requires": { - "@vue/shared": "3.5.13" - } - }, - "@vue/runtime-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", - "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", - "dev": true, - "peer": true, - "requires": { - "@vue/reactivity": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "@vue/runtime-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", - "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", - "dev": true, - "peer": true, - "requires": { - "@vue/reactivity": "3.5.13", - "@vue/runtime-core": "3.5.13", - "@vue/shared": "3.5.13", - "csstype": "^3.1.3" - } - }, - "@vue/server-renderer": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", - "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", - "dev": true, - "peer": true, - "requires": { - "@vue/compiler-ssr": "3.5.13", - "@vue/shared": "3.5.13" - } - }, - "@vue/shared": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", - "dev": true, - "peer": true - }, "@zeit/schemas": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.21.0.tgz", @@ -12472,8 +12054,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "ajv": { "version": "6.12.6", @@ -13336,13 +12917,6 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "peer": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -13388,8 +12962,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "requires": {} + "dev": true }, "deep-extend": { "version": "0.6.0", @@ -13818,8 +13391,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} + "dev": true }, "eslint-import-resolver-node": { "version": "0.3.6", @@ -15493,8 +15065,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "29.6.3", @@ -16147,16 +15718,6 @@ "yallist": "^4.0.0" } }, - "magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, "make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -16391,13 +15952,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "peer": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -16804,8 +16358,7 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "requires": {} + "dev": true }, "postcss-value-parser": { "version": "4.1.0", @@ -17257,13 +16810,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "peer": true - }, "source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -17744,8 +17290,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "requires": {} + "dev": true }, "tsconfig-paths": { "version": "3.14.1", @@ -17819,13 +17364,6 @@ "is-typedarray": "^1.0.0" } }, - "typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "peer": true - }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -17978,20 +17516,6 @@ "unist-util-stringify-position": "^2.0.0" } }, - "vue": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", - "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", - "dev": true, - "peer": true, - "requires": { - "@vue/compiler-dom": "3.5.13", - "@vue/compiler-sfc": "3.5.13", - "@vue/runtime-dom": "3.5.13", - "@vue/server-renderer": "3.5.13", - "@vue/shared": "3.5.13" - } - }, "walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -18189,4 +17713,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index ba80f8a8098..451b0ccc351 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -1031,9 +1031,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -6585,16 +6585,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zone.js": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.3.tgz", - "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", - "license": "MIT", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - } } }, "dependencies": { @@ -7190,9 +7180,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -7215,8 +7205,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@ionic/prettier-config/-/prettier-config-2.1.2.tgz", "integrity": "sha512-lpjXnu5XmzxDrHinjGa9z/bNe7KgXaehk6NyasyXqwzvE9EyhOSdSrkw6wS2q0HRyw8+x1GZNs2JDJ5cYq39Jw==", - "dev": true, - "requires": {} + "dev": true }, "@isaacs/cliui": { "version": "8.0.2", @@ -7523,8 +7512,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "aggregate-error": { "version": "3.1.0", @@ -8448,8 +8436,7 @@ "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==", - "dev": true, - "requires": {} + "dev": true }, "eslint-import-resolver-node": { "version": "0.3.9", @@ -11101,15 +11088,6 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true - }, - "zone.js": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.3.tgz", - "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", - "peer": true, - "requires": { - "tslib": "^2.3.0" - } } } -} \ No newline at end of file +} diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index f7a3a5fe751..080b52d4f90 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1398,9 +1398,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -9821,9 +9821,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -15018,4 +15018,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json index 0a4b3cbb537..00f58e23541 100644 --- a/packages/docs/package-lock.json +++ b/packages/docs/package-lock.json @@ -10,4 +10,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json index d7dafe864a6..225b2af912c 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -238,9 +238,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -415,12 +415,12 @@ } }, "node_modules/@ionic/react": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.1.tgz", - "integrity": "sha512-Z/kW91gUhs2f378jFoOic29RfDMIYi1PD1hfZtMGEAjSlFNQxBCeihz3kvdnn1WVfcuGb3CKanHF4DeKc11f8Q==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.2.tgz", + "integrity": "sha512-JU/v/wNixODaDFTSf4cM3R12nzstZGfRgat/DTesOLtjSb0Wgp36YM0xAk1Nsu9iHrL1OJA9mnJGOc4g2lwnLA==", "license": "MIT", "dependencies": { - "@ionic/core": "8.5.1", + "@ionic/core": "8.5.2", "ionicons": "^7.0.0", "tslib": "*" }, @@ -4067,9 +4067,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -4172,11 +4172,11 @@ "dev": true }, "@ionic/react": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.1.tgz", - "integrity": "sha512-Z/kW91gUhs2f378jFoOic29RfDMIYi1PD1hfZtMGEAjSlFNQxBCeihz3kvdnn1WVfcuGb3CKanHF4DeKc11f8Q==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.2.tgz", + "integrity": "sha512-JU/v/wNixODaDFTSf4cM3R12nzstZGfRgat/DTesOLtjSb0Wgp36YM0xAk1Nsu9iHrL1OJA9mnJGOc4g2lwnLA==", "requires": { - "@ionic/core": "8.5.1", + "@ionic/core": "8.5.2", "ionicons": "^7.0.0", "tslib": "*" } @@ -6680,4 +6680,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 8bf13a5a49d..59119b75c75 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -736,9 +736,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -12316,9 +12316,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -20494,4 +20494,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json index 58cd6da1b72..9faab53c286 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -243,6 +243,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -252,6 +253,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -369,6 +371,7 @@ "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.26.10" @@ -581,6 +584,7 @@ "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -673,9 +677,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -865,12 +869,12 @@ } }, "node_modules/@ionic/vue": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.1.tgz", - "integrity": "sha512-pE4xBb85xkHKrM24Opi0FWnsjwvbpxf7062ZU8dQIArZVOwvwnX69OIbyR8tYZ49DWqhDzfRWdBXTmr30sMb5A==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.2.tgz", + "integrity": "sha512-LnhYkgkd6VKXh+nMQ1yFlG/lecU7014ZpniHauCl03w41BI5O87xdJ/7igcQJDTUH3n/s2inSGo9r7LR+eHLKQ==", "license": "MIT", "dependencies": { - "@ionic/core": "8.5.1", + "@ionic/core": "8.5.2", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } @@ -1247,6 +1251,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { @@ -2089,6 +2094,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", @@ -2102,6 +2108,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, "license": "MIT", "dependencies": { "@vue/compiler-core": "3.5.13", @@ -2112,6 +2119,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", @@ -2129,6 +2137,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.5.13", @@ -2139,13 +2148,14 @@ "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/@vue/reactivity": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dev": true, "license": "MIT", "dependencies": { "@vue/shared": "3.5.13" @@ -2155,6 +2165,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dev": true, "license": "MIT", "dependencies": { "@vue/reactivity": "3.5.13", @@ -2165,6 +2176,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dev": true, "license": "MIT", "dependencies": { "@vue/reactivity": "3.5.13", @@ -2177,6 +2189,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, "license": "MIT", "dependencies": { "@vue/compiler-ssr": "3.5.13", @@ -2190,6 +2203,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, "license": "MIT" }, "node_modules/abab": { @@ -2812,6 +2826,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, "license": "MIT" }, "node_modules/data-urls": { @@ -3004,6 +3019,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -3614,7 +3630,8 @@ "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "node_modules/esutils": { "version": "2.0.3", @@ -5767,6 +5784,7 @@ "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -5890,6 +5908,7 @@ "version": "3.3.9", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", + "dev": true, "funding": [ { "type": "github", @@ -6165,6 +6184,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -6204,6 +6224,7 @@ "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -6642,6 +6663,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -7099,7 +7121,7 @@ "version": "4.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "devOptional": true, + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7165,6 +7187,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, "license": "MIT", "dependencies": { "@vue/compiler-dom": "3.5.13", @@ -7186,7 +7209,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" @@ -7607,12 +7630,14 @@ "@babel/helper-string-parser": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true }, "@babel/helper-validator-identifier": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true }, "@babel/helper-validator-option": { "version": "7.16.7", @@ -7704,6 +7729,7 @@ "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "dev": true, "requires": { "@babel/types": "^7.26.10" } @@ -7858,6 +7884,7 @@ "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "dev": true, "requires": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -7927,9 +7954,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -8038,15 +8065,14 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@ionic/prettier-config/-/prettier-config-2.0.0.tgz", "integrity": "sha512-ageMx54B9qqS1scnFW3kQW2NW8HyXwUM/p9c1YSWFKr6Yct7YVNbJFY3EcFapaNTiDnwo+GLlPRt+wST6E8AfA==", - "dev": true, - "requires": {} + "dev": true }, "@ionic/vue": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.1.tgz", - "integrity": "sha512-pE4xBb85xkHKrM24Opi0FWnsjwvbpxf7062ZU8dQIArZVOwvwnX69OIbyR8tYZ49DWqhDzfRWdBXTmr30sMb5A==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.2.tgz", + "integrity": "sha512-LnhYkgkd6VKXh+nMQ1yFlG/lecU7014ZpniHauCl03w41BI5O87xdJ/7igcQJDTUH3n/s2inSGo9r7LR+eHLKQ==", "requires": { - "@ionic/core": "8.5.1", + "@ionic/core": "8.5.2", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } @@ -8342,7 +8368,8 @@ "@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==" + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true }, "@jridgewell/trace-mapping": { "version": "0.3.13", @@ -8517,8 +8544,7 @@ "@stencil/vue-output-target": { "version": "0.10.7", "resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.10.7.tgz", - "integrity": "sha512-IYxDe+SLCkwhwsWRdynE31rTK1zN3hVwwojQ/V9lrN8Gnx4PTvrUQHiRno9jFo1dk+EaBZWX9gZSmXta0ZaZew==", - "requires": {} + "integrity": "sha512-IYxDe+SLCkwhwsWRdynE31rTK1zN3hVwwojQ/V9lrN8Gnx4PTvrUQHiRno9jFo1dk+EaBZWX9gZSmXta0ZaZew==" }, "@tootallnate/once": { "version": "2.0.0", @@ -8893,6 +8919,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, "requires": { "@babel/parser": "^7.25.3", "@vue/shared": "3.5.13", @@ -8905,6 +8932,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, "requires": { "@vue/compiler-core": "3.5.13", "@vue/shared": "3.5.13" @@ -8914,6 +8942,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, "requires": { "@babel/parser": "^7.25.3", "@vue/compiler-core": "3.5.13", @@ -8930,6 +8959,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, "requires": { "@vue/compiler-dom": "3.5.13", "@vue/shared": "3.5.13" @@ -8939,12 +8969,13 @@ "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "devOptional": true + "dev": true }, "@vue/reactivity": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dev": true, "requires": { "@vue/shared": "3.5.13" } @@ -8953,6 +8984,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dev": true, "requires": { "@vue/reactivity": "3.5.13", "@vue/shared": "3.5.13" @@ -8962,6 +8994,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dev": true, "requires": { "@vue/reactivity": "3.5.13", "@vue/runtime-core": "3.5.13", @@ -8973,6 +9006,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, "requires": { "@vue/compiler-ssr": "3.5.13", "@vue/shared": "3.5.13" @@ -8981,7 +9015,8 @@ "@vue/shared": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true }, "abab": { "version": "2.0.6", @@ -9017,8 +9052,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "7.2.0", @@ -9437,7 +9471,8 @@ "csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true }, "data-urls": { "version": "3.0.2", @@ -9580,7 +9615,8 @@ "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true }, "error-ex": { "version": "1.3.2", @@ -10038,7 +10074,8 @@ "estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "esutils": { "version": "2.0.3", @@ -11223,8 +11260,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "28.0.2", @@ -11641,6 +11677,7 @@ "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, "requires": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -11734,7 +11771,8 @@ "nanoid": { "version": "3.3.9", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz", - "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==" + "integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==", + "dev": true }, "natural-compare": { "version": "1.4.0", @@ -11928,7 +11966,8 @@ "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true }, "picomatch": { "version": "2.3.1", @@ -11955,6 +11994,7 @@ "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, "requires": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -12236,7 +12276,8 @@ "source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true }, "source-map-support": { "version": "0.5.13", @@ -12572,7 +12613,7 @@ "version": "4.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "devOptional": true + "dev": true }, "unbox-primitive": { "version": "1.0.2", @@ -12622,6 +12663,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, "requires": { "@vue/compiler-dom": "3.5.13", "@vue/compiler-sfc": "3.5.13", @@ -12634,7 +12676,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", - "devOptional": true, + "dev": true, "requires": { "@vue/devtools-api": "^6.6.4" } @@ -12768,8 +12810,7 @@ "version": "8.8.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "dev": true, - "requires": {} + "dev": true }, "xml-name-validator": { "version": "4.0.0", @@ -12817,4 +12858,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index c1e6d19d9d6..82aedbd17a1 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -226,9 +226,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -4079,9 +4079,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.1.tgz", - "integrity": "sha512-XsI1ImfgO87EdNucfmKESPN4djLyclNTwzU2AY7xSzSonKjTAft6qrK1/qU2ys829bmbM7/4+tHFb0UOnt3uHQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.2.tgz", + "integrity": "sha512-XTiZqyLv2gzPzU4l4EvegHc2nDv5TniVU102MAxT739Lw0tFywZV9R1bv590z7Ue7w43ndwGdnfLuOuBksSeRA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -6687,4 +6687,4 @@ "dev": true } } -} \ No newline at end of file +} From 27816d17d85eee3fe196f6a479710b6a0f1522aa Mon Sep 17 00:00:00 2001 From: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:42:45 -0400 Subject: [PATCH 9/9] chore(): update package lock files --- core/package-lock.json | 506 +++++++++++++++++++++- packages/angular-server/package-lock.json | 28 +- packages/angular/package-lock.json | 9 +- 3 files changed, 522 insertions(+), 21 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index 25ccf6e5fb6..163e667d0be 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -2502,6 +2502,184 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@zeit/schemas": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.21.0.tgz", @@ -3780,6 +3958,14 @@ "node": ">=4" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -7587,6 +7773,17 @@ "node": ">=10" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -7918,6 +8115,26 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -9106,6 +9323,17 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "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", @@ -9818,6 +10046,21 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -10005,6 +10248,29 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -10750,19 +11016,22 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@capacitor/haptics/-/haptics-7.0.0.tgz", "integrity": "sha512-8uI8rWyAbq8EzkjS+sHZSncyzujHzVbuLKgj8J5H0yUL6+r26F16gVA2iuQuIBvzbSMy7Y0/pUuWlwZr/H8AKg==", - "dev": true + "dev": true, + "requires": {} }, "@capacitor/keyboard": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@capacitor/keyboard/-/keyboard-7.0.0.tgz", "integrity": "sha512-Tqwy8wG+sx4UqiFCX4Q+bFw6uKgG7BiHKAPpeefoIgoEB8H8Jf3xZNZoVPnJIMuPsCdSvuyHXZbJXH9IEEirGA==", - "dev": true + "dev": true, + "requires": {} }, "@capacitor/status-bar": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-7.0.0.tgz", "integrity": "sha512-wsvPkWkoSOXMIgVHu4c6P1sOuDSZ1ClUo5OpLRwj7u8DYzlV4jlmNzztQn2Lvsiqx1z4kfukSaqe40k1Lo4c9g==", - "dev": true + "dev": true, + "requires": {} }, "@clack/core": { "version": "0.4.1", @@ -11009,7 +11278,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@ionic/prettier-config/-/prettier-config-2.0.0.tgz", "integrity": "sha512-ageMx54B9qqS1scnFW3kQW2NW8HyXwUM/p9c1YSWFKr6Yct7YVNbJFY3EcFapaNTiDnwo+GLlPRt+wST6E8AfA==", - "dev": true + "dev": true, + "requires": {} }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -11522,7 +11792,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-2.0.3.tgz", "integrity": "sha512-pw6ziJcyjZtntQ//bkad9qXaBx665SgEL8C8KI5wO8G5iU5MPxvdWrQyVaAvjojGm9tJoS8M9Z/EEepbqieYmw==", - "dev": true + "dev": true, + "requires": {} }, "@rollup/pluginutils": { "version": "3.1.0", @@ -11563,7 +11834,8 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/@stencil/angular-output-target/-/angular-output-target-0.10.2.tgz", "integrity": "sha512-jPRa2NMAPtm/iMY+mUaWATbIhgY5zPJfUNQyF8nwC0rMrfXifPoRCf6BbH2S4Gy7SX0X4hlP+jAbVUjQNg/P+Q==", - "dev": true + "dev": true, + "requires": {} }, "@stencil/core": { "version": "4.20.0", @@ -11574,19 +11846,22 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/@stencil/react-output-target/-/react-output-target-0.5.3.tgz", "integrity": "sha512-68jwRp35CjAcwhTJ9yFD/3n+jrHOqvEH2jreVuPVvZK+4tkhPlYlwz0d1E1RlF3jyifUSfdkWUGgXIEy8Fo3yw==", - "dev": true + "dev": true, + "requires": {} }, "@stencil/sass": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-3.0.9.tgz", "integrity": "sha512-GtPMjf5r4/BVBCO3LvcoMSIfOa6T+0wq+SrTGEilC4NCZpuZdAlZffWxXi80caZ1jDclwdzJ2qGwEgCAfvGoNA==", - "dev": true + "dev": true, + "requires": {} }, "@stencil/vue-output-target": { "version": "0.10.7", "resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.10.7.tgz", "integrity": "sha512-IYxDe+SLCkwhwsWRdynE31rTK1zN3hVwwojQ/V9lrN8Gnx4PTvrUQHiRno9jFo1dk+EaBZWX9gZSmXta0ZaZew==", - "dev": true + "dev": true, + "requires": {} }, "@stylelint/postcss-css-in-js": { "version": "0.37.2", @@ -12028,6 +12303,149 @@ "eslint-visitor-keys": "^3.4.1" } }, + "@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + }, + "dependencies": { + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "peer": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "peer": true + } + } + }, + "@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "peer": true, + "requires": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "peer": true + }, + "postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "peer": true, + "requires": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + } + } + }, + "@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, + "peer": true, + "requires": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dev": true, + "peer": true, + "requires": { + "@vue/shared": "3.5.13" + } + }, + "@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dev": true, + "peer": true, + "requires": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dev": true, + "peer": true, + "requires": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "peer": true, + "requires": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "peer": true + }, "@zeit/schemas": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.21.0.tgz", @@ -12054,7 +12472,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -12917,6 +13336,13 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "peer": true + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -12962,7 +13388,8 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true + "dev": true, + "requires": {} }, "deep-extend": { "version": "0.6.0", @@ -13391,7 +13818,8 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true + "dev": true, + "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.6", @@ -15065,7 +15493,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "29.6.3", @@ -15718,6 +16147,16 @@ "yallist": "^4.0.0" } }, + "magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -15952,6 +16391,13 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "peer": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -16358,7 +16804,8 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true + "dev": true, + "requires": {} }, "postcss-value-parser": { "version": "4.1.0", @@ -16810,6 +17257,13 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "peer": true + }, "source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -17290,7 +17744,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true + "dev": true, + "requires": {} }, "tsconfig-paths": { "version": "3.14.1", @@ -17364,6 +17819,13 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "dev": true, + "peer": true + }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -17516,6 +17978,20 @@ "unist-util-stringify-position": "^2.0.0" } }, + "vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "peer": true, + "requires": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + } + }, "walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index 451b0ccc351..62e3fbb91be 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -6585,6 +6585,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zone.js": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.3.tgz", + "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.3.0" + } } }, "dependencies": { @@ -7205,7 +7215,8 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@ionic/prettier-config/-/prettier-config-2.1.2.tgz", "integrity": "sha512-lpjXnu5XmzxDrHinjGa9z/bNe7KgXaehk6NyasyXqwzvE9EyhOSdSrkw6wS2q0HRyw8+x1GZNs2JDJ5cYq39Jw==", - "dev": true + "dev": true, + "requires": {} }, "@isaacs/cliui": { "version": "8.0.2", @@ -7512,7 +7523,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "aggregate-error": { "version": "3.1.0", @@ -8436,7 +8448,8 @@ "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==", - "dev": true + "dev": true, + "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.9", @@ -11088,6 +11101,15 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true + }, + "zone.js": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.3.tgz", + "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", + "peer": true, + "requires": { + "tslib": "^2.3.0" + } } } } diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index 080b52d4f90..55e3c732995 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -9920,7 +9920,8 @@ }, "@ionic/prettier-config": { "version": "2.0.0", - "dev": true + "dev": true, + "requires": {} }, "@isaacs/cliui": { "version": "8.0.2", @@ -10755,7 +10756,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -14784,7 +14786,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/typescript-eslint-language-service/-/typescript-eslint-language-service-5.0.0.tgz", "integrity": "sha512-QB3YsL+lDOpKwblXuqD9GkzpHhJC2D02e/3OIj38kIe6LSL97cEsUtnsVPqIaofnOsV2glj2T5VLxp5gmLTERQ==", - "dev": true + "dev": true, + "requires": {} }, "unbox-primitive": { "version": "1.0.1",