From 99520b1e583046c285ee53f600195545fdf0c6aa Mon Sep 17 00:00:00 2001 From: Nicolas Kruk Date: Thu, 6 Nov 2025 16:00:38 -0500 Subject: [PATCH 1/3] feat: bring forward 258 patch changes --- .github/workflows/onRelease.yml | 2 +- README.md | 11 +- lwc.config.json | 6 +- package.json | 8 +- src/commands/lightning/dev/component.ts | 135 ++++++--- src/shared/metaUtils.ts | 239 +++++++++++++++ src/shared/previewUtils.ts | 28 ++ yarn.lock | 385 ++++++++++++------------ 8 files changed, 573 insertions(+), 241 deletions(-) create mode 100644 src/shared/metaUtils.ts diff --git a/.github/workflows/onRelease.yml b/.github/workflows/onRelease.yml index 220eecb8..752ff349 100644 --- a/.github/workflows/onRelease.yml +++ b/.github/workflows/onRelease.yml @@ -48,7 +48,7 @@ jobs: #ctc: true sign: true # At CLCO, the new patch branch's version will be released as 'prerelease'. After R2b, delete the logic below for 'latest' and update 'prerelease' candidate to 'latest' - tag: ${{ needs.getDistTag.outputs.tag || (needs.getMajorVersion.outputs.major == '3' && 'latest') || (needs.getMajorVersion.outputs.major == '4' && 'prerelease') ||'next' }} + tag: ${{ needs.getDistTag.outputs.tag || (needs.getMajorVersion.outputs.major == '4' && 'latest') || 'next' }} githubTag: ${{ github.event.release.tag_name || inputs.tag }} secrets: inherit diff --git a/README.md b/README.md index e2840a8c..90a46653 100644 --- a/README.md +++ b/README.md @@ -209,13 +209,14 @@ _See code: [src/commands/lightning/dev/app.ts](https://github.com/salesforcecli/ ``` USAGE - $ sf lightning dev component -o [--json] [--flags-dir ] [-n ] [-c] + $ sf lightning dev component -o [--json] [--flags-dir ] [-n ] [--api-version ] [-c] FLAGS - -c, --client-select Launch component preview without selecting a component - -n, --name= Name of a component to preview. - -o, --target-org= (required) Username or alias of the target org. Not required if the `target-org` - configuration variable is already set. + -c, --client-select Launch component preview without selecting a component + -n, --name= Name of a component to preview. + -o, --target-org= (required) Username or alias of the target org. Not required if the `target-org` + configuration variable is already set. + --api-version= Override the api version used for api requests made by this command GLOBAL FLAGS --flags-dir= Import flag values from a directory. diff --git a/lwc.config.json b/lwc.config.json index b3760737..c02ade53 100644 --- a/lwc.config.json +++ b/lwc.config.json @@ -1,7 +1,3 @@ { - "modules": [ - { - "npm": "lightning-base-components" - } - ] + "modules": [] } diff --git a/package.json b/package.json index ea651b42..eb879d15 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "dependencies": { "@inquirer/prompts": "^5.3.8", "@inquirer/select": "^2.4.7", - "@lwc/lwc-dev-server": "~13.2.18", - "@lwc/sfdc-lwc-compiler": "~13.2.7", + "@lwc/lwc-dev-server": "~13.2.19", + "@lwc/sfdc-lwc-compiler": "~13.2.19", "@lwrjs/api": "0.18.3", "@oclif/core": "^4.5.6", "@salesforce/core": "^8.23.3", @@ -17,7 +17,7 @@ "@salesforce/sf-plugins-core": "^11.2.4", "axios": "^1.13.1", "glob": "^10.4.5", - "lwc": "~8.23.0", + "lwc": "~8.24.0", "node-fetch": "^3.3.2", "open": "^10.2.0", "xml2js": "^0.6.2" @@ -265,7 +265,7 @@ "exports": "./lib/index.js", "type": "module", "volta": { - "node": "20.11.0", + "node": "20.12.0", "yarn": "1.22.22" } } diff --git a/src/commands/lightning/dev/component.ts b/src/commands/lightning/dev/component.ts index 59723253..3aa6735e 100644 --- a/src/commands/lightning/dev/component.ts +++ b/src/commands/lightning/dev/component.ts @@ -22,12 +22,21 @@ import { ComponentUtils } from '../../../shared/componentUtils.js'; import { PromptUtils } from '../../../shared/promptUtils.js'; import { PreviewUtils } from '../../../shared/previewUtils.js'; import { startLWCServer } from '../../../lwc-dev-server/index.js'; +import { MetaUtils } from '../../../shared/metaUtils.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'lightning.dev.component'); const sharedMessages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'shared.utils'); -export default class LightningDevComponent extends SfCommand { +export type ComponentPreviewResult = { + instanceUrl: string; + ldpServerUrl: string; + ldpServerId: string; + componentName: string; + previewUrl: string; +}; + +export default class LightningDevComponent extends SfCommand { public static readonly summary = messages.getMessage('summary'); public static readonly description = messages.getMessage('description'); public static readonly examples = messages.getMessages('examples'); @@ -38,6 +47,7 @@ export default class LightningDevComponent extends SfCommand { char: 'n', requiredOrDefaulted: false, }), + 'api-version': Flags.orgApiVersion(), 'client-select': Flags.boolean({ summary: messages.getMessage('flags.client-select.summary'), char: 'c', @@ -46,7 +56,7 @@ export default class LightningDevComponent extends SfCommand { 'target-org': Flags.requiredOrg(), }; - public async run(): Promise { + public async run(): Promise { const { flags } = await this.parse(LightningDevComponent); const logger = await Logger.child(this.ctor.name); const project = await SfProject.resolve(); @@ -63,6 +73,16 @@ export default class LightningDevComponent extends SfCommand { let componentName = flags['name']; const clientSelect = flags['client-select']; const targetOrg = flags['target-org']; + const apiVersion = flags['api-version']; + + // Auto enable local dev + if (process.env.AUTO_ENABLE_LOCAL_DEV === 'true') { + try { + await MetaUtils.ensureLightningPreviewEnabled(targetOrg.getConnection(undefined)); + } catch (error) { + this.log('Error autoenabling local dev', error); + } + } const { ldpServerId, ldpServerToken } = await PreviewUtils.initializePreviewConnection(targetOrg); @@ -71,44 +91,56 @@ export default class LightningDevComponent extends SfCommand { logger.debug(`Next available ports are http=${serverPorts.httpPort} , https=${serverPorts.httpsPort}`); logger.debug('Determining Local Dev Server url'); - const ldpServerUrl = PreviewUtils.generateWebSocketUrlForLocalDevServer(Platform.desktop, serverPorts, logger); + let ldpServerUrl; + + // In Code Builder, we cannot go to localhost - we need to use a proxy URI to get to the ldpServer + if (process.env.SF_CONTAINER_MODE && process.env.VSCODE_PROXY_URI) { + logger.debug('In Code Builder Mode - using proxy URI'); + ldpServerUrl = process.env.VSCODE_PROXY_URI.replace('https://', 'ws://').replace( + '{{port}}', + `${serverPorts.httpPort}` + ); + } else { + // Default behavior + ldpServerUrl = PreviewUtils.generateWebSocketUrlForLocalDevServer(Platform.desktop, serverPorts, logger); + } logger.debug(`Local Dev Server url is ${ldpServerUrl}`); - const namespacePaths = await ComponentUtils.getNamespacePaths(project); - const componentPaths = await ComponentUtils.getAllComponentPaths(namespacePaths); - if (!componentPaths) { - throw new Error(messages.getMessage('error.directory')); - } + if (!clientSelect) { + const namespacePaths = await ComponentUtils.getNamespacePaths(project); + const componentPaths = await ComponentUtils.getAllComponentPaths(namespacePaths); + if (!componentPaths) { + throw new Error(messages.getMessage('error.directory')); + } - const components = ( - await Promise.all( - componentPaths.map(async (componentPath) => { - let xml; - - try { - xml = await ComponentUtils.getComponentMetadata(componentPath); - } catch (err) { - this.warn(messages.getMessage('error.component-metadata', [componentPath])); - } - - // components must have meta xml to be previewed - if (!xml) { - return undefined; - } - - const name = path.basename(componentPath); - const label = ComponentUtils.componentNameToTitleCase(name); - - return { - name, - label: xml.LightningComponentBundle.masterLabel ?? label, - description: xml.LightningComponentBundle.description ?? '', - }; - }) - ) - ).filter((component) => !!component); + const components = ( + await Promise.all( + componentPaths.map(async (componentPath) => { + let xml; + + try { + xml = await ComponentUtils.getComponentMetadata(componentPath); + } catch (err) { + this.warn(messages.getMessage('error.component-metadata', [componentPath])); + } + + // components must have meta xml to be previewed + if (!xml) { + return undefined; + } + + const name = path.basename(componentPath); + const label = ComponentUtils.componentNameToTitleCase(name); + + return { + name, + label: xml.LightningComponentBundle.masterLabel ?? label, + description: xml.LightningComponentBundle.description ?? '', + }; + }) + ) + ).filter((component) => !!component); - if (!clientSelect) { if (componentName) { // validate that the component exists before launching the server const match = components.find( @@ -138,7 +170,34 @@ export default class LightningDevComponent extends SfCommand { targetOrgArg ); - // Open the browser and navigate to the right page - await this.config.runCommand('org:open', launchArguments); + // Construct and log the full URL that will be opened + const connection = targetOrg.getConnection(apiVersion); + + // strip trailing slashes + const instanceUrl = connection.instanceUrl.replace(/\/$/, ''); + + const previewUrl = PreviewUtils.generateComponentPreviewUrl( + instanceUrl, + ldpServerUrl, + ldpServerId, + componentName, + false + ); + + // Prepare the result for JSON output + const result: ComponentPreviewResult = { + instanceUrl, + ldpServerUrl, + ldpServerId, + componentName: componentName ?? '', + previewUrl, + }; + + // Open the browser and navigate to the right page (unless OPEN_BROWSER is set to true) + if (process.env.OPEN_BROWSER !== 'false') { + await this.config.runCommand('org:open', launchArguments); + } + + return result; } } diff --git a/src/shared/metaUtils.ts b/src/shared/metaUtils.ts new file mode 100644 index 00000000..c5968047 --- /dev/null +++ b/src/shared/metaUtils.ts @@ -0,0 +1,239 @@ +/* + * Copyright 2025, Salesforce, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Connection, Logger } from '@salesforce/core'; + +type LightningExperienceSettingsMetadata = { + [key: string]: unknown; + fullName?: string; + enableLightningPreviewPref?: string | boolean; +}; + +type MyDomainSettingsMetadata = { + [key: string]: unknown; + fullName?: string; + isFirstPartyCookieUseRequired?: string | boolean; +}; + +type MetadataUpdateResult = { + success: boolean; + fullName: string; + errors?: Array<{ message: string }>; +}; + +/** + * Utility class for managing Salesforce metadata settings related to Lightning Development. + */ +export class MetaUtils { + private static logger = Logger.childFromRoot('metaUtils'); + + /** + * Retrieves the Lightning Experience Settings metadata from the org. + * + * @param connection the connection to the org + * @returns LightningExperienceSettingsMetadata object containing the settings + * @throws Error if unable to retrieve the metadata + */ + public static async getLightningExperienceSettings( + connection: Connection + ): Promise { + this.logger.debug('Retrieving Lightning Experience Settings metadata'); + + const metadata = await connection.metadata.read('LightningExperienceSettings', 'enableLightningPreviewPref'); + + if (!metadata) { + throw new Error('Unable to retrieve Lightning Experience Settings metadata.'); + } + + if (Array.isArray(metadata)) { + if (metadata.length === 0) { + throw new Error('Lightning Experience Settings metadata response was empty.'); + } + return metadata[0] as LightningExperienceSettingsMetadata; + } + + return metadata as LightningExperienceSettingsMetadata; + } + + /** + * Checks if Lightning Preview (Local Dev) is enabled for the org. + * + * @param connection the connection to the org + * @returns boolean indicating whether Lightning Preview is enabled + */ + public static async isLightningPreviewEnabled(connection: Connection): Promise { + try { + const settings = await this.getLightningExperienceSettings(connection); + const flagValue = settings.enableLightningPreviewPref ?? 'false'; + const enabled = String(flagValue).toLowerCase().trim() === 'true'; + this.logger.debug(`Lightning Preview enabled: ${enabled}`); + return enabled; + } catch (error) { + this.logger.warn('Error checking Lightning Preview status, assuming disabled:', error); + return false; + } + } + + /** + * Enables or disables Lightning Preview (Local Dev) for the org by updating the metadata. + * + * @param connection the connection to the org + * @param enable boolean indicating whether to enable (true) or disable (false) Lightning Preview + * @throws Error if the metadata update fails + */ + public static async setLightningPreviewEnabled(connection: Connection, enable: boolean): Promise { + this.logger.debug(`Setting Lightning Preview enabled to: ${enable}`); + + const updateResult = await connection.metadata.update('LightningExperienceSettings', { + fullName: 'enableLightningPreviewPref', + enableLightningPreviewPref: enable ? 'true' : 'false', + }); + + const results = Array.isArray(updateResult) ? updateResult : [updateResult]; + const typedResults = results as MetadataUpdateResult[]; + const errors = typedResults.filter((result) => !result.success); + + if (errors.length > 0) { + const message = errors + .flatMap((result) => (Array.isArray(result.errors) ? result.errors : result.errors ? [result.errors] : [])) + .filter((error): error is { message: string } => Boolean(error)) + .map((error) => error.message) + .join(' '); + + throw new Error(message || 'Failed to update Lightning Preview setting.'); + } + + this.logger.debug('Successfully updated Lightning Preview setting'); + } + + /** + * Retrieves the My Domain Settings metadata from the org. + * + * @param connection the connection to the org + * @returns MyDomainSettingsMetadata object containing the settings + * @throws Error if unable to retrieve the metadata + */ + public static async getMyDomainSettings(connection: Connection): Promise { + this.logger.debug('Retrieving My Domain Settings metadata'); + + const metadata = await connection.metadata.read('MyDomainSettings', 'MyDomain'); + + if (!metadata) { + throw new Error('Unable to retrieve My Domain settings metadata.'); + } + + if (Array.isArray(metadata)) { + if (metadata.length === 0) { + throw new Error('My Domain settings metadata response was empty.'); + } + return metadata[0] as MyDomainSettingsMetadata; + } + + return metadata as MyDomainSettingsMetadata; + } + + /** + * Checks if first-party cookies are required for the org. + * + * @param connection the connection to the org + * @returns boolean indicating whether first-party cookies are required + */ + public static async isFirstPartyCookieRequired(connection: Connection): Promise { + try { + const settings = await this.getMyDomainSettings(connection); + const flagValue = settings.isFirstPartyCookieUseRequired ?? 'false'; + const required = String(flagValue).toLowerCase().trim() === 'true'; + this.logger.debug(`First-party cookie required: ${required}`); + return required; + } catch (error) { + this.logger.warn('Error checking first-party cookie requirement, assuming not required:', error); + return false; + } + } + + /** + * Updates the My Domain setting that controls whether first-party cookies are required. + * + * @param connection the connection to the org + * @param requireFirstPartyCookies boolean indicating whether to require first-party cookies + * @throws Error if the metadata update fails + */ + public static async setMyDomainFirstPartyCookieRequirement( + connection: Connection, + requireFirstPartyCookies: boolean + ): Promise { + this.logger.debug(`Setting first-party cookie requirement to: ${requireFirstPartyCookies}`); + + const updateResult = await connection.metadata.update('MyDomainSettings', { + fullName: 'MyDomain', + isFirstPartyCookieUseRequired: requireFirstPartyCookies ? 'true' : 'false', + }); + + const results = Array.isArray(updateResult) ? updateResult : [updateResult]; + const typedResults = results as MetadataUpdateResult[]; + const errors = typedResults.filter((result) => !result.success); + + if (errors.length > 0) { + const message = errors + .flatMap((result) => (Array.isArray(result.errors) ? result.errors : result.errors ? [result.errors] : [])) + .filter((error): error is { message: string } => Boolean(error)) + .map((error) => error.message) + .join(' '); + + throw new Error(message || 'Failed to update My Domain first-party cookie requirement.'); + } + + this.logger.debug('Successfully updated first-party cookie requirement'); + } + + /** + * Ensures Lightning Preview is enabled for the org. If it's not enabled, this method will enable it. + * + * @param connection the connection to the org + * @returns boolean indicating whether Lightning Preview was already enabled (true) or had to be enabled (false) + */ + public static async ensureLightningPreviewEnabled(connection: Connection): Promise { + const isEnabled = await this.isLightningPreviewEnabled(connection); + + if (!isEnabled) { + this.logger.info('Lightning Preview is not enabled. Enabling it now...'); + await this.setLightningPreviewEnabled(connection, true); + return false; + } + + this.logger.debug('Lightning Preview is already enabled'); + return true; + } + + /** + * Ensures first-party cookies are not required for the org. If they are required, this method will disable the requirement. + * + * @param connection the connection to the org + * @returns boolean indicating whether first-party cookies were already not required (true) or had to be disabled (false) + */ + public static async ensureFirstPartyCookiesNotRequired(connection: Connection): Promise { + const isRequired = await this.isFirstPartyCookieRequired(connection); + + if (isRequired) { + this.logger.info('First-party cookies are required. Disabling requirement...'); + await this.setMyDomainFirstPartyCookieRequirement(connection, false); + return false; + } + + this.logger.debug('First-party cookies are not required'); + return true; + } +} diff --git a/src/shared/previewUtils.ts b/src/shared/previewUtils.ts index f5de5279..fa0344f3 100644 --- a/src/shared/previewUtils.ts +++ b/src/shared/previewUtils.ts @@ -255,6 +255,34 @@ export class PreviewUtils { return launchArguments; } + /** + * Generates the full URL for a component preview. + * + * @param instanceUrl The URL of the Salesforce instance + * @param ldpServerUrl The URL for the local dev server + * @param ldpServerId Record ID for the identity token + * @param componentName The name of the component to preview + * @param encodePath Whether to encode the path + * @returns The full URL for the component preview + */ + public static generateComponentPreviewUrl( + instanceUrl: string, + ldpServerUrl: string, + ldpServerId: string, + componentName?: string, + encodePath = false + ): string { + let url = `${instanceUrl}/lwr/application/e/devpreview/ai/${ + encodePath ? encodeURIComponent('localdev%2Fpreview') : 'localdev%2Fpreview' + }?ldpServerUrl=${ldpServerUrl}&ldpServerId=${ldpServerId}`; + if (componentName) { + // TODO: support other namespaces + url += `&specifier=c/${componentName}`; + } + + return url; + } + /** * Generates the proper set of arguments to be used for launching a mobile app with custom launch arguments. * diff --git a/yarn.lock b/yarn.lock index 5000eb21..5ddfa033 100644 --- a/yarn.lock +++ b/yarn.lock @@ -655,20 +655,20 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== -"@babel/core@7.28.4", "@babel/core@^7.23.9", "@babel/core@^7.26.10", "@babel/core@^7.9.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" - integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== +"@babel/core@7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" + integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.3" + "@babel/generator" "^7.28.5" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-module-transforms" "^7.28.3" "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.4" + "@babel/parser" "^7.28.5" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.4" - "@babel/types" "^7.28.4" + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" @@ -676,20 +676,20 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" - integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== +"@babel/core@^7.23.9", "@babel/core@^7.26.10", "@babel/core@^7.9.0": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" + integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" + "@babel/generator" "^7.28.3" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-module-transforms" "^7.28.3" "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.5" + "@babel/parser" "^7.28.4" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" + "@babel/traverse" "^7.28.4" + "@babel/types" "^7.28.4" "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" @@ -1098,14 +1098,6 @@ "@babel/types" "^7.28.4" debug "^4.3.1" -"@babel/types@7.28.4", "@babel/types@^7.22.10", "@babel/types@^7.26.10", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.9.0": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" - integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/types@7.28.5", "@babel/types@^7.28.5", "@babel/types@~7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" @@ -1114,6 +1106,14 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.28.5" +"@babel/types@^7.22.10", "@babel/types@^7.26.10", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.9.0": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" + integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@commitlint/cli@^17.1.2": version "17.8.1" resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.8.1.tgz#10492114a022c91dcfb1d84dac773abb3db76d33" @@ -2266,69 +2266,69 @@ dependencies: "@locker/shared" "0.24.6" -"@lwc/aria-reflection@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/aria-reflection/-/aria-reflection-8.23.0.tgz#b4d1f31e5f380d49e28b6dfe07c505d0657024e4" - integrity sha512-WGaMjNc84art9cYtkMf15dCKZ7M1x1yldsbqctiKOTl6mN6d7EDRaV+046EkFMkC/FwQbspWTHF9x1UGqWV8pw== +"@lwc/aria-reflection@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/aria-reflection/-/aria-reflection-8.24.0.tgz#d8b0fd092fd6ea92d5d42a5d45e004b98ec6372b" + integrity sha512-X6wYl0omMVsElJTpi+8ntyCaOfoRjtVF27K3SnaGaNkntIby/Suz/XKJN1KKgD+hAyQtWzxEsrAbdCYani2ROQ== -"@lwc/babel-plugin-component@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/babel-plugin-component/-/babel-plugin-component-8.23.0.tgz#756762acb6c5ba17f18614d8a858f377a4e55fbc" - integrity sha512-Dct16w1mSoL0gIZFNSQI6EQjOAnOkmdbCBAf2PMD7mJXQKNYYgb4RcA4BDIoZZJwe5nH7rd6q47YaeD7pdxCvg== +"@lwc/babel-plugin-component@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/babel-plugin-component/-/babel-plugin-component-8.24.0.tgz#89aae9ce4dfab40bde1d1d01b087a48581d42de2" + integrity sha512-WaJjoLzNqrhVUHudxv+O04OU5GRNVDfYb1s6fKDYV2VdCHRyl6LQ4v2zZmoeMbahg/S0AO4fyGWxAZS2D7Zuyw== dependencies: "@babel/helper-module-imports" "7.27.1" - "@lwc/errors" "8.23.0" - "@lwc/shared" "8.23.0" + "@lwc/errors" "8.24.0" + "@lwc/shared" "8.24.0" line-column "~1.0.2" -"@lwc/compiler@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/compiler/-/compiler-8.23.0.tgz#bc5f5406e8d71d4675cfe7276b2443544116f0a7" - integrity sha512-ejGsAR9c+Lv3Xtu6XC8RbNl7XUIt3tIES3g4r3FanrU5FHQ2fsqXdLTT2I9jxlTiKHiRnvpq49pQQLWQcUPr0Q== +"@lwc/compiler@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/compiler/-/compiler-8.24.0.tgz#a9227bbd9c5bcd81764fd2895b23750febf69c7d" + integrity sha512-4WlQx1b7V0HlwQY3dLJ7XNdlLPRP8AQlNsfkgkbHGi1YtLx7acFr2ttGHBimsHc4uBHdqdguQ3IQD54agfj+CQ== dependencies: - "@babel/core" "7.28.4" + "@babel/core" "7.28.5" "@babel/plugin-transform-async-generator-functions" "7.28.0" "@babel/plugin-transform-async-to-generator" "7.27.1" "@babel/plugin-transform-class-properties" "7.27.1" "@babel/plugin-transform-object-rest-spread" "7.28.4" "@locker/babel-plugin-transform-unforgeables" "0.22.0" - "@lwc/babel-plugin-component" "8.23.0" - "@lwc/errors" "8.23.0" - "@lwc/shared" "8.23.0" - "@lwc/ssr-compiler" "8.23.0" - "@lwc/style-compiler" "8.23.0" - "@lwc/template-compiler" "8.23.0" - -"@lwc/dev-server-plugin-lex@13.2.18": - version "13.2.18" - resolved "https://registry.yarnpkg.com/@lwc/dev-server-plugin-lex/-/dev-server-plugin-lex-13.2.18.tgz#03be2e1c74b53ad38e48ef749f599ad1e6a688a1" - integrity sha512-Zy08ZENaLMe7PXVycY+N2I1LUS2thLrXTLtRfc3MZdE8SqHXmSHloP+LikR+qIsLBv7s5ox2E12+OEufLroLGw== + "@lwc/babel-plugin-component" "8.24.0" + "@lwc/errors" "8.24.0" + "@lwc/shared" "8.24.0" + "@lwc/ssr-compiler" "8.24.0" + "@lwc/style-compiler" "8.24.0" + "@lwc/template-compiler" "8.24.0" + +"@lwc/dev-server-plugin-lex@13.2.19": + version "13.2.19" + resolved "https://registry.yarnpkg.com/@lwc/dev-server-plugin-lex/-/dev-server-plugin-lex-13.2.19.tgz#5706c2d7a626ed5395b11202fd685e9cd4334f90" + integrity sha512-bjkbqWplGaTlMqayh+m/UEJfi5ra3KbcuXNniCAALDV40xQPqhr2u1fj5j3G69ecAoILMMnIVPC6lWNsdRuWpw== dependencies: magic-string "~0.30.21" -"@lwc/engine-core@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/engine-core/-/engine-core-8.23.0.tgz#04ac9204140685c5d4f69cc3fe8c8bb6d7ffe4df" - integrity sha512-YFobCuGRv0me1FLhJqtSDm/WxTpRyPtdHbfBe/6AKWDFfYYPk83tcMFTTS7ndE3LrYno2aP9ABHdg5BtAl55iA== +"@lwc/engine-core@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/engine-core/-/engine-core-8.24.0.tgz#38c5575a7e8e48048f0d77664b667ce9f3111bff" + integrity sha512-XYMx7wmVY84g7mWzEUUo/26gN3x6/H91Naaul5jKbFJXHrf1YQTF794S+5YPI82GlZYFiDNMYKqi3FXAqvyUpQ== dependencies: - "@lwc/features" "8.23.0" - "@lwc/shared" "8.23.0" - "@lwc/signals" "8.23.0" + "@lwc/features" "8.24.0" + "@lwc/shared" "8.24.0" + "@lwc/signals" "8.24.0" -"@lwc/engine-dom@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/engine-dom/-/engine-dom-8.23.0.tgz#dd45d7c33a318dcdf600796478a7e03e759122df" - integrity sha512-cbMVwFkYmhFFmCpnSYBePk8wnpdhqESVFDZJqFgeR4Tb0LBVlI18gGqHn9MmjxT3SnurDp1EW/ArH8QFYJgf1g== +"@lwc/engine-dom@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/engine-dom/-/engine-dom-8.24.0.tgz#46985f32c9f9c0522c209b42e72d3b435c1ed7f8" + integrity sha512-H0MeTt1DEYKY98m2ZblpSazuhZzKxxChi/iM/4n4fFWtBF87AAoQtGt1fFnEPCq9D9lGmVF28YQdBjL7NNw6nQ== -"@lwc/engine-server@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/engine-server/-/engine-server-8.23.0.tgz#6675516060b8886c23e18faf92ab31b69d6c7053" - integrity sha512-h4HOYAoHWAPEwITroai8yAy6YSlqMXRLdVZNRNH/ZEXkz5Hom+h16BbnGGeGCNqZgGrm58LnCPYmmzeXIZ1aPQ== +"@lwc/engine-server@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/engine-server/-/engine-server-8.24.0.tgz#bbf00cbc822f44d0dae605d69ea77cd09123527d" + integrity sha512-FTgKGYj1pXtiUgXyi+m5BQCe4IMVAp8eF2sRY+NGV0INrmpKfVQaFd5aakGNl27EGEnr/kWUZrY+/dbtwErIdQ== -"@lwc/errors@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/errors/-/errors-8.23.0.tgz#7c230010e197062a0eae04a4caa4abe4e7df4af3" - integrity sha512-cqziHl/aDg0pgAIm9HhNz2OrR0t08vML7+FNrqgrnaSwLgYCYp2WPNmvMjD5ZRy/bIBESwA/dCWf9Cs7Vo/ZGw== +"@lwc/errors@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/errors/-/errors-8.24.0.tgz#348eff6a6022604273d397b624ca96800b242569" + integrity sha512-shYEI9wjVXjKNRXAMAXHMZ23jvMuJIIkctwpkzFx09PcueflwXu9NfNsUlgK8662cOvnvlpAuYvcT+G0k1/wrw== "@lwc/eslint-plugin-lwc-platform@6.3.0": version "6.3.0" @@ -2346,25 +2346,25 @@ globals "~15.14.0" minimatch "~9.0.4" -"@lwc/features@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/features/-/features-8.23.0.tgz#7e0578c89dc39e62d50b732facca7e9e969539e9" - integrity sha512-Y1yVOH6LAJMWJaeUHJwjx7OHjbRxycdSSZKewhQlRTGLrmca1Rtpi31nfrRtcCdOkxfF3oPMFlPlA4ZKDyA6aA== +"@lwc/features@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/features/-/features-8.24.0.tgz#524ee89f11543996b3117e54b62fde867bbf8c44" + integrity sha512-h9FX63i6/wFUzU48jgrRxH3cmxdSZ/HRPwoR3jKb1qLKL0kKkWPF3EuRnXRgqhcD2qhFteTSAUgtwBcRFzvnSg== dependencies: - "@lwc/shared" "8.23.0" + "@lwc/shared" "8.24.0" -"@lwc/lwc-dev-server-types@13.2.18": - version "13.2.18" - resolved "https://registry.yarnpkg.com/@lwc/lwc-dev-server-types/-/lwc-dev-server-types-13.2.18.tgz#f863e2441bd9e7b07d79b71c58292c61d889326b" - integrity sha512-/ehLAJtjaf4QUVjK6qHO7pFJjeNFc6qaSrxXTxfNBD/EelpyNr3S5CT/Ob6Okt6zmZkTAHs1jvK54shk52Tadw== +"@lwc/lwc-dev-server-types@13.2.19": + version "13.2.19" + resolved "https://registry.yarnpkg.com/@lwc/lwc-dev-server-types/-/lwc-dev-server-types-13.2.19.tgz#cd820ffd8ea35cb0570716f179563c1d43528b00" + integrity sha512-BU4ZN6lMMa1+IhpH7SVmAWhimdXffV3/Ti7EYRf5TFB12OYTCACpDbv/qpL4CEpPDOMjWUOI5jZgP8FbPuHWSg== -"@lwc/lwc-dev-server@~13.2.18": - version "13.2.18" - resolved "https://registry.yarnpkg.com/@lwc/lwc-dev-server/-/lwc-dev-server-13.2.18.tgz#d1238c66b80dd61b4f03d36744f03222cb5beb02" - integrity sha512-us06Uayh+sYZENToFqNC0rnl7R/LlCGb37EcRjNpOCVCpeiY540pQC/vd8fPeUqcNgrReF2/AZ7dvLxdVzmTwg== +"@lwc/lwc-dev-server@~13.2.19": + version "13.2.19" + resolved "https://registry.yarnpkg.com/@lwc/lwc-dev-server/-/lwc-dev-server-13.2.19.tgz#ba88ecbbf02821200505b16f51c1534136050ffd" + integrity sha512-vagT4FcY39Z5ryhRwpdeNLWB07zm+IECDHhaVGJWGh4+C3hxnY4Fq5BHtVQOSbVSnR2H23+K8B0klUAhWnb04w== dependencies: - "@lwc/lwc-dev-server-types" "13.2.18" - "@lwc/sfdc-lwc-compiler" "13.2.18" + "@lwc/lwc-dev-server-types" "13.2.19" + "@lwc/sfdc-lwc-compiler" "13.2.19" chalk "~5.6.2" chokidar "~3.6.0" commander "~14.0.2" @@ -2372,45 +2372,45 @@ glob "^11.0.3" ws "^8.18.3" -"@lwc/metadata@13.2.18": - version "13.2.18" - resolved "https://registry.yarnpkg.com/@lwc/metadata/-/metadata-13.2.18.tgz#d8051f6dea6a2e6e1bfc762c00d5568a902b934b" - integrity sha512-J/Xc5H4KtAKoiB7kVORjUs1AccPv/grZ+CwbRlWaO7FypsTkNwQTMqj0dQOYVXpq1Yeil2RcR4MWgmG5VlJ3Cg== +"@lwc/metadata@13.2.19": + version "13.2.19" + resolved "https://registry.yarnpkg.com/@lwc/metadata/-/metadata-13.2.19.tgz#ddb9e25273e9c5e74346578633425d5a6ad56603" + integrity sha512-qX6oMGYfyqXBBq+xEhyj9qTxTrIQuNZ0rTxX8j9QjIM4VZkeJiWkirerDvdlqpPjH1MoqElh+hm60YpZGmUKTw== dependencies: "@babel/parser" "~7.28.5" "@babel/traverse" "~7.28.5" "@babel/types" "~7.28.5" - "@lwc/sfdc-compiler-utils" "13.2.18" + "@lwc/sfdc-compiler-utils" "13.2.19" postcss "~8.5.6" postcss-selector-parser "~7.1.0" postcss-value-parser "~4.2.0" -"@lwc/module-resolver@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/module-resolver/-/module-resolver-8.23.0.tgz#f98581796558d484516097b7b04121453846f9d1" - integrity sha512-ZqZ/402NvVswMK2HMhwH6Fmkzn19xn5Yx7VZr1QmIefKXr8OKqFSlsySujN3CSwNH9XHybyREWe4TXlkT7LHFw== +"@lwc/module-resolver@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/module-resolver/-/module-resolver-8.24.0.tgz#fca4582d31af6f3f62638d84de292f0e18aaa1ce" + integrity sha512-Mqj5PCU46coyUMWZ527JC6EwEv0DdIxEJpSK5RgLjgCGdSK7NXYx2zvTnIbWiLLpcj9u82DvFs/FFJu7ixTHbA== dependencies: - resolve "~1.22.10" + resolve "~1.22.11" -"@lwc/rollup-plugin@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/rollup-plugin/-/rollup-plugin-8.23.0.tgz#6821076f721f4b298b2c40d81832ffb55a37c9f6" - integrity sha512-bDlnRXWOVN4VE+/h1dj2KXuej9bED2A07CtxHPepCH4iIwpN6w+s/495zDndJgO/VppnZ3ZUiUooUrcDOrOmBA== +"@lwc/rollup-plugin@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/rollup-plugin/-/rollup-plugin-8.24.0.tgz#5fb194a58563fd4f4a02d2c82c6ad56d3fe0612d" + integrity sha512-rPRDIdaw9q2A0jG03exzPmZe2YemGPgT9RCH6QPFppTl9s4MpiozLZvnyzJxLRXWIj2e3fu5Yq0o02e5EquqKw== dependencies: - "@lwc/compiler" "8.23.0" - "@lwc/module-resolver" "8.23.0" - "@lwc/shared" "8.23.0" + "@lwc/compiler" "8.24.0" + "@lwc/module-resolver" "8.24.0" + "@lwc/shared" "8.24.0" "@rollup/pluginutils" "~5.3.0" -"@lwc/sfdc-compiler-utils@13.2.18": - version "13.2.18" - resolved "https://registry.yarnpkg.com/@lwc/sfdc-compiler-utils/-/sfdc-compiler-utils-13.2.18.tgz#50b560a04d393dfb6ba969667b7df9065e931f4a" - integrity sha512-V/eFDRfdgCDdK9yTr5IVVTx12Z+mDpjfLIeyK44Zbio1x1rppWwfLP9ek4tpyAIGyGoo34IxiojfdenSIH/bPQ== +"@lwc/sfdc-compiler-utils@13.2.19": + version "13.2.19" + resolved "https://registry.yarnpkg.com/@lwc/sfdc-compiler-utils/-/sfdc-compiler-utils-13.2.19.tgz#1e3e3575f9f91467d717b2768319b4bbde30e3e1" + integrity sha512-Os9s6G+V7RnsnHd+qtz+mB0pQuoudExI622zKJCHe6TdmMPVUGnRjHkyFcw0d0i+JPImF5PkJuZ2QYqcDoPplA== -"@lwc/sfdc-lwc-compiler@13.2.18", "@lwc/sfdc-lwc-compiler@~13.2.7": - version "13.2.18" - resolved "https://registry.yarnpkg.com/@lwc/sfdc-lwc-compiler/-/sfdc-lwc-compiler-13.2.18.tgz#289a81edf5a6dd4275e5f82a44ecc133b828c639" - integrity sha512-YutIaXMhv2JxYkmxBROYtvm0PKIc2mAoKPel9WX54LivODV1fjGAzlms2cCVEes1RIuH3EHkmW4Hp0I/WP2S/A== +"@lwc/sfdc-lwc-compiler@13.2.19", "@lwc/sfdc-lwc-compiler@~13.2.19": + version "13.2.19" + resolved "https://registry.yarnpkg.com/@lwc/sfdc-lwc-compiler/-/sfdc-lwc-compiler-13.2.19.tgz#4bb3a201562ceaf69b0e4f6601eab6388ac334f2" + integrity sha512-8w1Wvc1q/0Vl6xWEyA34wWsyUJ5rdhsSQRJfQ7BOyVzhHas5EoZQ4rPh7z4aC7npA++EStOnm7fdbPK1aqNBMg== dependencies: "@babel/core" "7.28.5" "@babel/parser" "7.28.5" @@ -2419,11 +2419,11 @@ "@babel/traverse" "7.28.5" "@babel/types" "7.28.5" "@komaci/esm-generator" "260.31.0" - "@lwc/dev-server-plugin-lex" "13.2.18" + "@lwc/dev-server-plugin-lex" "13.2.19" "@lwc/eslint-plugin-lwc" "3.3.0" "@lwc/eslint-plugin-lwc-platform" "6.3.0" - "@lwc/metadata" "13.2.18" - "@lwc/sfdc-compiler-utils" "13.2.18" + "@lwc/metadata" "13.2.19" + "@lwc/sfdc-compiler-utils" "13.2.19" "@rollup/plugin-babel" "^6.1.0" "@rollup/plugin-replace" "^6.0.3" "@rollup/wasm-node" "4.52.5" @@ -2444,73 +2444,73 @@ postcss-selector-parser "~7.1.0" terser "~5.44.0" -"@lwc/shared@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/shared/-/shared-8.23.0.tgz#c9304f7fd8db4256094e5cbf1960dd4f027aa599" - integrity sha512-g6teckOlRJgPkqFJjjrMWoXwEbP3E0PByVIbrxfvv7gN/d8INL+TOA/Deg5ZgRMwuYUGO0Elr5rGcAK5jj/bhA== - -"@lwc/signals@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/signals/-/signals-8.23.0.tgz#c38177c9ccd20803392a99715e4770a9e9001104" - integrity sha512-mdW1i0i4RBFracnevRN8YQtkUDI/WuWHsQXGQC2kluQAveM/qmVIkvMCPfehBsMwbXpEnYneUEe58XXnuCsAvA== - -"@lwc/ssr-compiler@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/ssr-compiler/-/ssr-compiler-8.23.0.tgz#cd3ff236701824188e7b9675e927092ffb34d1b2" - integrity sha512-JucwFx+bjVsnyJnfJIbcX2DpaKO+h3vGEBlDPgI6cdaRfymtkxklxZojzc1HTcN+0XSGSiAmBcDn3MKxsNMrMQ== - dependencies: - "@babel/types" "7.28.4" - "@lwc/errors" "8.23.0" - "@lwc/shared" "8.23.0" - "@lwc/template-compiler" "8.23.0" +"@lwc/shared@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/shared/-/shared-8.24.0.tgz#2b28aae08502f7755ee6d01a5539fabf194177e2" + integrity sha512-rYgSg5NLS0M3rvX8iOOez1rFy7JjbB/MWPvIuyNi2z2W/CS7oMen1XTW7you8/d0m0kYM7b7S9gMJHzZAuekXQ== + +"@lwc/signals@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/signals/-/signals-8.24.0.tgz#1b27ba4635bba210f7288503a5192b9140c7b9fe" + integrity sha512-yvW4JRnAORYYrq3l3L//dG++sz5JM2HQ3lHMLpBbBKGWlLflDIUh6teApz8YUddGAyttTo4LcDAajx2HGN+Kfw== + +"@lwc/ssr-compiler@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/ssr-compiler/-/ssr-compiler-8.24.0.tgz#f35793a44f63f203c14b3c1b080dcb00cb067c0f" + integrity sha512-1pnCDuMx6tUrpMKWwq3NVF10B65CILWBen/Axldg5AxIu6TVdlYoy8CbkHcpeS3+Qd9BpAAuQnkZo+RkVEmYww== + dependencies: + "@babel/types" "7.28.5" + "@lwc/errors" "8.24.0" + "@lwc/shared" "8.24.0" + "@lwc/template-compiler" "8.24.0" acorn "8.15.0" astring "^1.9.0" estree-toolkit "^1.7.13" - immer "^10.1.3" + immer "^10.2.0" meriyah "^5.0.0" -"@lwc/ssr-runtime@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/ssr-runtime/-/ssr-runtime-8.23.0.tgz#29da9702f09992a3cf721fa88057c53dcdd7680a" - integrity sha512-J4JSyEGX+DiBUoMIRBUTcrsc0GGI+LuczO4uSLoMIjFQJXjh5dmI058pVBYq5cCXJHTv2vbtUILzQtX3xcFb0A== +"@lwc/ssr-runtime@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/ssr-runtime/-/ssr-runtime-8.24.0.tgz#def2b8035f6659f9dc46b0442d3cc1ba67ffbcfd" + integrity sha512-ZZezcxHFwPu244ARazQZufXirXmdN5/ExiQcCQ5dqmtrzd+daypXpUYgD3tPbhI+423YMbQbfFxceiri0kL8Tw== -"@lwc/style-compiler@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/style-compiler/-/style-compiler-8.23.0.tgz#508faaea6cd4b5df990cc2c0d91b5bbbe3fa905e" - integrity sha512-hIsmMgKyFQ3VSozQtHuU1BcAbbWyk/8BFygB2WdadM/cBrHfNCy+PGLofv8xkyvhDPrfbWBtwFrP9VIRXDdLNA== +"@lwc/style-compiler@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/style-compiler/-/style-compiler-8.24.0.tgz#c5b7ee9f00370c13828d0c23483ab0ff23ff5100" + integrity sha512-AtlwvAOl8siJLXSb6mxXMw89HCgRWxNhVeYEsIvmCos9HTkdhoG8PX6EYcQj8oDnYFBqe2WcR2AUYRBqwV1iig== dependencies: - "@lwc/shared" "8.23.0" + "@lwc/shared" "8.24.0" postcss "~8.5.6" postcss-selector-parser "~7.1.0" postcss-value-parser "~4.2.0" -"@lwc/synthetic-shadow@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/synthetic-shadow/-/synthetic-shadow-8.23.0.tgz#b209293ac9e1b03f778b71c802c5f2095e814067" - integrity sha512-wmFB6nMKlsH47+YW+Wr3HdhPdUbHor6yPzbsai85St8+xSlrCzQWuXPWuqv6raFyHg6YnWAiF2Hf5e2h9sdCig== +"@lwc/synthetic-shadow@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/synthetic-shadow/-/synthetic-shadow-8.24.0.tgz#08ce426ab2762c919204d9963a72575fda2bda64" + integrity sha512-46fWZMRaT7a8fbX/03sXNLB6lBM6xJtIfBivexSUyvNkoyE3iNbRDhzFjTOD1O8Gxx/crpBHaiRtzzEuzcrYtg== -"@lwc/template-compiler@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/template-compiler/-/template-compiler-8.23.0.tgz#323ee9d6476b94421b3041ae359b32ec5bfc0d91" - integrity sha512-E24VtNe4Ej307ui8BuQncBzcd6MdzOjXjrhIOQDnGLzNnGL7I3cuGA2wVwTuV8WNrPg7JkgpJghUduEkN3kubw== +"@lwc/template-compiler@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/template-compiler/-/template-compiler-8.24.0.tgz#033a33fdd36debcd9b21565a59a8c97e85964c48" + integrity sha512-x4SBSvDnC75QK4P2YCkAiwbTTeEmQ5RveT7LB6sk6WYma+OiDSk8pFrj5SFrsjtOy6oDxedvIpftlrbUa+Yh0w== dependencies: - "@lwc/errors" "8.23.0" - "@lwc/shared" "8.23.0" + "@lwc/errors" "8.24.0" + "@lwc/shared" "8.24.0" acorn "~8.15.0" astring "~1.9.0" he "~1.2.0" -"@lwc/types@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/types/-/types-8.23.0.tgz#f7a3dca0e4c3a6649dbaf9e41eac9f3b99a6ae86" - integrity sha512-MqRqq/eQu36/lI3MnPn4EAIW5JgYXIorlzpnQYLA6kBnViSCYcaDeJJil/FDIzKSF8HgHf7CuXVJ5MUkcXbqJw== +"@lwc/types@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/types/-/types-8.24.0.tgz#20c2b9b10104724f492c429dd292ed7ebb652206" + integrity sha512-yQe8VLfrnZoNxGaf13Hs4XJaqBQ8nrKEYfNHUGI9P1tNPGGr1ooNEFGQfNoBkUU7mxZomXRyOD/moUYOIRjqAw== dependencies: - "@lwc/engine-core" "8.23.0" + "@lwc/engine-core" "8.24.0" -"@lwc/wire-service@8.23.0": - version "8.23.0" - resolved "https://registry.yarnpkg.com/@lwc/wire-service/-/wire-service-8.23.0.tgz#c44f5197d921b5fbfa213cb954cccd11b78b9978" - integrity sha512-vAwzn6gSrC/C0FMIXUWl/Ieyg7xaY4SMoMuBiL36ChvtXfSJjHPhmeVjhMGkkGCXyDHS/3f5/9LhplaIi60EfQ== +"@lwc/wire-service@8.24.0": + version "8.24.0" + resolved "https://registry.yarnpkg.com/@lwc/wire-service/-/wire-service-8.24.0.tgz#50efa7428bccb710c6fee134ba56e0e84925f02c" + integrity sha512-hpwgttHXCCABfWOy9ChspmpMrTX3HP6fYqEb+Qp85NP52jE1YSUgnncQ/lqDZF5Xak4b2pm7wM1gR6jMDT/jmA== "@lwrjs/api@0.18.3": version "0.18.3" @@ -7938,10 +7938,10 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== -immer@^10.1.3: - version "10.1.3" - resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.3.tgz#e38a0b97db59949d31d9b381b04c2e441b1c3747" - integrity sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw== +immer@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-10.2.0.tgz#88a4ce06a1af64172d254b70f7cb04df51c871b1" + integrity sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw== import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" @@ -9026,29 +9026,29 @@ lunr@^2.3.9: resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== -lwc@~8.23.0: - version "8.23.0" - resolved "https://registry.yarnpkg.com/lwc/-/lwc-8.23.0.tgz#1123a559700aa8bb437f54258efa1ed2be8e94f1" - integrity sha512-XeNx83aT0NZJ8ORfR4bHWIgL5m+XoDJvIX0Og+8ZAr9YYMmZJuBd83tmdhrneYXaJTaGbX54TVbvRY90k+/noA== - dependencies: - "@lwc/aria-reflection" "8.23.0" - "@lwc/babel-plugin-component" "8.23.0" - "@lwc/compiler" "8.23.0" - "@lwc/engine-core" "8.23.0" - "@lwc/engine-dom" "8.23.0" - "@lwc/engine-server" "8.23.0" - "@lwc/errors" "8.23.0" - "@lwc/features" "8.23.0" - "@lwc/module-resolver" "8.23.0" - "@lwc/rollup-plugin" "8.23.0" - "@lwc/shared" "8.23.0" - "@lwc/ssr-compiler" "8.23.0" - "@lwc/ssr-runtime" "8.23.0" - "@lwc/style-compiler" "8.23.0" - "@lwc/synthetic-shadow" "8.23.0" - "@lwc/template-compiler" "8.23.0" - "@lwc/types" "8.23.0" - "@lwc/wire-service" "8.23.0" +lwc@~8.24.0: + version "8.24.0" + resolved "https://registry.yarnpkg.com/lwc/-/lwc-8.24.0.tgz#fa97aa528c58c813374ce70004af6396747a8b2a" + integrity sha512-u2l1MSulS5W1YIPkeA0ndG2vWFBgAnLGAkYGdbvhEuDdvhIJ7J/U+ftca3f67bx655y1jiBoWjiGEdUDprPcTQ== + dependencies: + "@lwc/aria-reflection" "8.24.0" + "@lwc/babel-plugin-component" "8.24.0" + "@lwc/compiler" "8.24.0" + "@lwc/engine-core" "8.24.0" + "@lwc/engine-dom" "8.24.0" + "@lwc/engine-server" "8.24.0" + "@lwc/errors" "8.24.0" + "@lwc/features" "8.24.0" + "@lwc/module-resolver" "8.24.0" + "@lwc/rollup-plugin" "8.24.0" + "@lwc/shared" "8.24.0" + "@lwc/ssr-compiler" "8.24.0" + "@lwc/ssr-runtime" "8.24.0" + "@lwc/style-compiler" "8.24.0" + "@lwc/synthetic-shadow" "8.24.0" + "@lwc/template-compiler" "8.24.0" + "@lwc/types" "8.24.0" + "@lwc/wire-service" "8.24.0" magic-string@^0.25.3: version "0.25.9" @@ -10656,7 +10656,7 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22.8, resolve@~1.22.10: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22.8: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== @@ -10665,6 +10665,15 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@~1.22.11: + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== + dependencies: + is-core-module "^2.16.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" From 9039c45cdb163e28d1a0ae4c1dff97ec275afe76 Mon Sep 17 00:00:00 2001 From: Nicolas Kruk Date: Thu, 6 Nov 2025 17:58:01 -0500 Subject: [PATCH 2/3] chore: update command snapshot for api-version flag --- command-snapshot.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/command-snapshot.json b/command-snapshot.json index aa16dcf4..26cc62d9 100644 --- a/command-snapshot.json +++ b/command-snapshot.json @@ -12,7 +12,7 @@ "command": "lightning:dev:component", "flagAliases": [], "flagChars": ["c", "n", "o"], - "flags": ["client-select", "flags-dir", "json", "name", "target-org"], + "flags": ["api-version", "client-select", "flags-dir", "json", "name", "target-org"], "plugin": "@salesforce/plugin-lightning-dev" }, { @@ -20,7 +20,7 @@ "command": "lightning:dev:site", "flagAliases": [], "flagChars": ["l", "n", "o"], - "flags": ["flags-dir", "get-latest", "guest", "name", "target-org", "ssr"], + "flags": ["flags-dir", "get-latest", "guest", "name", "ssr", "target-org"], "plugin": "@salesforce/plugin-lightning-dev" } ] From 84c8abecc91f1693fe58ba128edb8b851ce87690 Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Thu, 6 Nov 2025 23:03:41 +0000 Subject: [PATCH 3/3] chore(release): 5.0.25-alpha.0 [skip ci] --- README.md | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 90a46653..42025574 100644 --- a/README.md +++ b/README.md @@ -201,7 +201,7 @@ EXAMPLES $ sf lightning dev app --target-org myOrg --device-type ios --device-id "iPhone 15 Pro Max" ``` -_See code: [src/commands/lightning/dev/app.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/5.0.24/src/commands/lightning/dev/app.ts)_ +_See code: [src/commands/lightning/dev/app.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/5.0.25-alpha.0/src/commands/lightning/dev/app.ts)_ ## `sf lightning dev component` @@ -249,7 +249,7 @@ EXAMPLES $ sf lightning dev component --name myComponent ``` -_See code: [src/commands/lightning/dev/component.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/5.0.24/src/commands/lightning/dev/component.ts)_ +_See code: [src/commands/lightning/dev/component.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/5.0.25-alpha.0/src/commands/lightning/dev/component.ts)_ ## `sf lightning dev site` @@ -305,6 +305,6 @@ EXAMPLES $ sf lightning dev site --name "Partner Central" --target-org myOrg --get-latest ``` -_See code: [src/commands/lightning/dev/site.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/5.0.24/src/commands/lightning/dev/site.ts)_ +_See code: [src/commands/lightning/dev/site.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/5.0.25-alpha.0/src/commands/lightning/dev/site.ts)_ diff --git a/package.json b/package.json index eb879d15..6a61404b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/plugin-lightning-dev", "description": "Lightning development tools for LEX, Mobile, and Experience Sites", - "version": "5.0.24", + "version": "5.0.25-alpha.0", "author": "Salesforce", "bugs": "https://github.com/forcedotcom/cli/issues", "dependencies": {