From 9686a7d7e1d295978d0f439ce9c2ee05ea37f949 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Wed, 17 May 2023 13:32:39 +0200 Subject: [PATCH 01/24] updated folder structure --- src/commands.json | 57 ---- src/devToolsCommands.ts | 252 ------------------ .../commands/DevToolsAdminCommands.ts | 52 ++++ src/devtools/commands/DevToolsCommands.ts | 56 ++++ .../commands/DevToolsStandardCommands.ts | 72 +++++ src/devtools/commands/commands.config.json | 68 +++++ src/devtools/extension.ts | 216 +++++++++++++++ src/{ => devtools/helpers}/initHelper.ts | 5 +- src/{ => devtools/helpers}/installHelper.ts | 4 +- src/{ => devtools}/init.ts | 6 +- src/{ => devtools}/prerequisites.ts | 2 +- src/editor/editorInput.ts | 17 ++ src/editor/editorSettings.ts | 53 ++++ src/editorSettings.ts | 55 ---- src/extension.ts | 2 +- src/shared/interfaces/inputOptionsSettings.ts | 6 + .../interfaces/supportedMetadataTypes.ts | 9 + src/shared/utils/file.ts | 15 ++ src/shared/utils/lib.ts | 3 + src/{utils.ts => shared/utils/terminal.ts} | 17 +- tsconfig.json | 6 +- 21 files changed, 582 insertions(+), 391 deletions(-) delete mode 100644 src/commands.json delete mode 100644 src/devToolsCommands.ts create mode 100644 src/devtools/commands/DevToolsAdminCommands.ts create mode 100644 src/devtools/commands/DevToolsCommands.ts create mode 100644 src/devtools/commands/DevToolsStandardCommands.ts create mode 100644 src/devtools/commands/commands.config.json create mode 100644 src/devtools/extension.ts rename src/{ => devtools/helpers}/initHelper.ts (93%) rename src/{ => devtools/helpers}/installHelper.ts (96%) rename src/{ => devtools}/init.ts (78%) rename src/{ => devtools}/prerequisites.ts (95%) create mode 100644 src/editor/editorInput.ts create mode 100644 src/editor/editorSettings.ts delete mode 100644 src/editorSettings.ts create mode 100644 src/shared/interfaces/inputOptionsSettings.ts create mode 100644 src/shared/interfaces/supportedMetadataTypes.ts create mode 100644 src/shared/utils/file.ts create mode 100644 src/shared/utils/lib.ts rename src/{utils.ts => shared/utils/terminal.ts} (56%) diff --git a/src/commands.json b/src/commands.json deleted file mode 100644 index e7da1b7..0000000 --- a/src/commands.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "admin": { - "isAvailable": true, - "title": "Admin", - "commands": [ - {"id":"init", "title": "Init", "command": "mcdev init", "parameters": [], "description": "Initates SFMC DevTools or adds additional credentials to your project.", "isAvailable": false}, - {"id":"join", "title": "Join", "command": "", "parameters": [], "description": "Clones an existing project from git.", "isAvailable": false}, - {"id":"upgrade", "title": "Upgrade", "command": "", "parameters": [], "description": "Add NPM dependencies and IDE configuration files to your project.", "isAvailable": false}, - {"id":"rbus", "title": "Reload BUs", "command": "", "parameters": [], "description": "Loads the list of available BUs from the server and saves it in your project.", "isAvailable": false}, - {"id":"badkeys", "title": "Bad Keys", "command": "", "parameters": [], "description": "Lists metadata with random API names in specified Business Unit directory.", "isAvailable": false}, - {"id":"doc", "title": "Document", "command": "", "parameters": [], "description": "Creates Markdown or HTML documentation for the selected type.", "isAvailable": false}, - {"id":"stypes", "title": "Select Types", "command": "", "parameters": [], "description": "Allows you choose what metadata types to retrieve.", "isAvailable": false}, - {"id":"etypes", "title": "Explain Types", "command": "mcdev explainTypes", "parameters": ["json"], "description": "Explains metadata types that can be retrieved.", "isAvailable": true} - ] - }, - "standard": { - "isAvailable": true, - "title": "Standard", - "commands": [ - { - "id":"retrieve", - "title": "Retrieve", - "command": "mcdev retrieve", - "parameters": ["bu", "type", "key"], - "description": "Retrieves metadata of a business unit.", - "isAvailable": true - }, - { - "id":"deploy", - "title": "Deploy", - "command": "mcdev deploy", - "parameters": ["bu", "type", "key"], - "description": "Deploys local metadata to a business unit.", - "isAvailable": true - }, - {"id":"delete", "title": "Delete", "command": "mcdev delete", "parameters": [], "description": "Deletes metadata of selected type and external key.", "isAvailable": false}, - { - "id":"refresh", - "title": "Refresh", - "command": "mcdev refresh", - "parameters": ["bu", "type", "key"], - "description": "Ensures that updates are properly published.", - "isAvailable": false - } - ] - }, - "templating": { - "isAvailable": false, - "title": "Templating", - "commands": [ - {"id":"rtemp", "title": "Retrieve As Template", "command": "mcdev delete", "parameters": [], "description": "Retrieves a specific metadata file by name from the server for templating.", "isAvailable": false}, - {"id":"btemp", "title": "Build Template", "command": "mcdev delete", "parameters": [], "description": "Builds a template out of a specific metadata file already in your retrieve folder.", "isAvailable": false}, - {"id":"bdef", "title": "Build Definition", "command": "mcdev delete", "parameters": [], "description": "Builds metadata definition based on template.", "isAvailable": false}, - {"id":"bdefbulk", "title": "Build Definition Bulk", "command": "mcdev delete", "parameters": [], "description": "Builds metadata definition based on template en bulk.", "isAvailable": false} - ] - } -} \ No newline at end of file diff --git a/src/devToolsCommands.ts b/src/devToolsCommands.ts deleted file mode 100644 index 060dbf4..0000000 --- a/src/devToolsCommands.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { window } from "vscode"; -import * as commandsConfig from "./commands.json"; -import { execInTerminal, execInWindowTerminal, readFile } from "./utils"; - -interface DTCommand { - id: string, - title: string, - command: string, - parameters: Array, - description: string, - isAvailable: boolean -} - -interface CommandOptionsSettings { - id: string, - label: string, - detail: string, - dtCommand?: {command: string, args: {[key: string]: string}}, -}; - -interface SupportedMdTypes { - name: string, - apiName: string, - retrievedByDefault: boolean, - supports: { [key: string]: boolean }, - description: string -} - -const allPlaceholder: string = "*All*"; -const COMMAND_INPUT_TITLES: { [key: string]: string } = { - selectType: "Select the DevTools Command Type...", - selectCmd: "Select the DevTools Command...", - credentialsName: "Select one of the credentials...", - bu: "Select one of the business units...", - metaDataType: "Select one or more metadata types..." - -}; - -const COMMAND_TYPES_HANDLERS: { [key: string]: (command: string, args: {[key: string]: string}) => void} = { - admin: handleAdminCommand, - standard: handleStandardCommand, - templating: handleTemplatingCommand -}; - -const COMMAND_PARAMETERS_HANDLERS: {[key: string]: (param: {[key: string]: any}, supportedAction: string) => Promise} = { - bu: buHandler, - credentialsName: credentialsHandler, - type: typeHandler -}; - -let supportedMdTypes: Array = []; - -function getCommandsTypes(): Array<{id: string, label: string}>{ - return Object.keys(commandsConfig) - .filter((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].isAvailable) - .map((cmd: string) => ({ id: cmd, label: commandsConfig[cmd as keyof typeof commandsConfig].title })); -} - -function getCommandsListByType(type: string): Array{ - return Object.keys(commandsConfig).includes(type) ? commandsConfig[type as keyof typeof commandsConfig].commands : []; -} - -async function executeCredentialsSelection(){ - const mcdevrc: {[key: string]: any} = JSON.parse(await readFile(".mcdevrc.json")); - const selectedCredentialBU = await buHandler(mcdevrc); - return selectedCredentialBU; -} - -async function handleAdminCommand(command: string, args: {[key: string]: string}) { - if(command){ - if("json" in args){ - if(args.json !== ""){ - const mdTypes: Array = JSON.parse( - await execInTerminal(`${command} ${args["json"]}`) - ); - return mdTypes; - }else{ - execInWindowTerminal(command); - } - } - } -} - -async function handleStandardCommand(command: string, args: {[key: string]: string}) { - if(command){ - const paramArray = await Promise.all(Object.keys(args).map(async(param: string) => { - let paramInput: string = ''; - if(args[param as keyof typeof args]){ - paramInput = `${args[param as keyof typeof args]}`; - }else{ - if(Object.keys(COMMAND_PARAMETERS_HANDLERS).includes(param.toLowerCase())){ - const paramHandler = COMMAND_PARAMETERS_HANDLERS[param.toLowerCase()]; - paramInput = await paramHandler({}, command.includes("retrieve") ? "retrieve" : "update"); - if(!paramInput){ - return paramInput; - } - } - } - return paramInput.replace(allPlaceholder, "*"); - })); - if(!paramArray.some(arg => arg === undefined || arg === null)){ - try{ - execInWindowTerminal(`${command} ${paramArray.join(" ")}`); - }catch(err){ - console.error("err = ", err); - } - } - } -} - -function handleTemplatingCommand(command: string, args: {[key: string]: string}) { -} - -async function buHandler(mcdevrc: {[key: string]: any}){ - const selectedCredential: string = await credentialsHandler(mcdevrc); - if(selectedCredential){ - if(selectedCredential.toLowerCase() === allPlaceholder.toLowerCase()){ - return "*All*"; - } - const selectedBU = await window.showQuickPick( - [allPlaceholder, ...Object.keys(mcdevrc["credentials"][selectedCredential]["businessUnits"])], - { placeHolder: COMMAND_INPUT_TITLES["bu"], canPickMany: false, ignoreFocusOut: true } - ); - return `${selectedCredential}/${selectedBU.toLowerCase() === allPlaceholder.toLowerCase() ? "*All*" : selectedBU}`; - } - return null; -} - -async function typeHandler(mcdevrcJson: {[key: string]: any}, supportedAction: string){ - if(!supportedMdTypes.length){ - const availableDTCommands: Array = getCommandsListByType("admin").filter(cmd => cmd.isAvailable); - if(availableDTCommands.length){ - const [ { command, parameters }]: Array = availableDTCommands; - supportedMdTypes = await handleAdminCommand( - command, - parameters.reduce((prev, curr) => ({...prev, [curr]: curr === "json" ? "--json" : curr}), {}) - ); - } - } - const supportedMdTypesByAction = supportedMdTypes.filter( - (mdType: SupportedMdTypes) => supportedAction in mdType.supports && mdType.supports[supportedAction] - ); - const selectedTypes = await window.showQuickPick( - supportedMdTypesByAction.map((mdType: SupportedMdTypes) => ({id: mdType.apiName, label: mdType.name})), - { placeHolder: COMMAND_INPUT_TITLES['metaDataType'], canPickMany: true, ignoreFocusOut: true } - ); - if(selectedTypes.length){ - return `"${selectedTypes.map((type: {id: string, label: string}) => type.id).join(",")}"`; - } - return null; -} - -async function credentialsHandler(mcdevrcJson: {[key: string]: any}){ - if(Object.keys(mcdevrcJson).length && Object.keys(mcdevrcJson).includes("credentials")){ - const selectedCredential = await window.showQuickPick( - [allPlaceholder, ...Object.keys(mcdevrcJson["credentials"])], - { placeHolder: COMMAND_INPUT_TITLES['credentialsName'], canPickMany: false, ignoreFocusOut: true } - ); - return selectedCredential; - } - return null; -} - -async function executeCommandBarSelection(selectedCredBU: string){ - // Gets list of types of Commands (admin, standard, templating) configured - const cmdTypeSettingsList: Array = getCommandsTypes().map((type: {id:string, label: string}) => ({ - ...type, - detail: `Example: ${getCommandsListByType(type.id).filter(cmd => cmd.isAvailable).map(cmd => cmd.title)}` - })); - - // Makes user select the command type - const selectedCmdType: CommandOptionsSettings = - await window.showQuickPick(cmdTypeSettingsList, { placeHolder: COMMAND_INPUT_TITLES['selectType'], ignoreFocusOut: true }); - - if(selectedCmdType && Object.keys(COMMAND_TYPES_HANDLERS).includes(selectedCmdType.id)){ - // Gets all the devtools commands from the selected type - const availableDTCommands: Array = getCommandsListByType(selectedCmdType.id).filter(cmd => cmd.isAvailable); - // Configure to the Command Options settings to be displayed as a editor option - const commandOptions: Array = availableDTCommands.map((dtCmd: DTCommand) => ({ - id: dtCmd.id, - label: dtCmd.title, - detail: dtCmd.description, - dtCommand: { - command: dtCmd.command, - args: Object.assign({}, ...dtCmd.parameters.map((param: string) => ({[param]: ""}))) - } - })); - - // Makes user select the devtool command - const selectedDTCommand: CommandOptionsSettings = - await window.showQuickPick(commandOptions, { placeHolder: COMMAND_INPUT_TITLES["selectCmd"], ignoreFocusOut: true }); - - // Executes the command based on the type selected - if(selectedDTCommand && Object.keys(selectedDTCommand.dtCommand).length){ - const { command, args }: { command: string, args: {[key: string]: string}} = selectedDTCommand.dtCommand; - const commandHandler = COMMAND_TYPES_HANDLERS[selectedCmdType.id]; - commandHandler(command, { ...args, bu: selectedCredBU }); - } - } -} - -function executeExplorerMenuAction(action: string, path: string){ - // Separates the selected folder/file path by the retrieve or deploy action - const [ path1, path2 ]: Array = path.split(`/${action}/`); - // Retrieves the all the standard devtools commands - const [ cmd ]: Array = commandsConfig["standard"].commands.filter(({ id }: { id: string }) => id === action); - if(Object.keys(cmd).length){ - const { command, parameters }: DTCommand = cmd; - let args: {[key: string]: string} = {}; - // The user clicked on the top folder (retrieve or deploy) - if(path1 && !path2 && path1.endsWith(`/${action}`)){ - args = { - ...Object.assign({}, ...parameters.map((param: string) => ({[param]: ""}))), - bu: `"${allPlaceholder}"` - }; - } - // The user clicked on a folder/file inside the top folder (retrieve or deploy) - if(path2){ - let [ credName, bUnit, type, ...keys ]: Array = path2.split("/"); - // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder - if(type === "asset" && keys.length){ - // Gets the asset subfolder and asset key - const [ assetFolder, assetKey ] = keys; - if(!assetKey){ - // if user only selected an asset subfolder - // type will be changed to "asset-[name of the asset subfolder]" - type = `${type}-${assetFolder}`; - } - // if user selects a file inside a subfolder of asset - // the key will be the name of the file - keys = assetKey ? [ assetKey ] : []; - } - - // result 1 - credential/* - // result 2 - credential/bu - // result 3 - credential/bu "metadata" - // result 4 - credential/bu "metadata" "key" - args = { - bu: `${credName}/${bUnit ? bUnit : '*'}`, - type: type ? `"${type}"` : "", - key: keys.length ? `"${keys[0].split(".")[0]}"` : "", - }; - } - handleStandardCommand(command, args); - } -} - -export const devToolsCommands = { - executeCommandBarSelection, - executeCredentialsSelection, - executeExplorerMenuAction -}; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts new file mode 100644 index 0000000..a1589a0 --- /dev/null +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -0,0 +1,52 @@ +import { parseArrayJsonStringToArray } from "../../shared/utils/lib"; +import DevToolsCommands from "./DevToolsCommands"; + +class DevToolsAdminCommands extends DevToolsCommands { + + private readonly type: string = "admin"; + private commandsConfig; + private supportedMdType: {}[]; + private commandsList: { [key: string]: (...args: any) => void; } = { + init: this.init, + etypes: this.explainTypes + }; + + constructor(){ + super(); + this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); + this.supportedMdType = []; + } + + getCommand(id: string): () => void { + return this.commandsList[id]; + } + + setSupportedMdTypes(mdTypes: {}[]): void { + this.supportedMdType = mdTypes; + }; + + getSupportedMdTypes(): {}[] { + return this.supportedMdType; + }; + + run(id: string, args: {[key: string]: string }, handleResult: (res: any) => void): void { + this.runDTCommand(this.getCommand(id), args, handleResult); + } + + init(args: {[key: string]: string}){ + console.log("Admin - Init Command - args = ", args); + } + + async explainTypes(args: {[key: string]: string}, handleResult?: (res: any) => void){ + console.log("Admin - Explain Types Command - args = ", args); + let [{ command }] = this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "etypes"); + if(!command){ + // throw error + } + command = command.replace("{{json}}", args["json"] ? "--json" : ""); + const mdTypes: string = await this.executeCommand(command, false); + handleResult(parseArrayJsonStringToArray(mdTypes)); + } +} + +export default DevToolsAdminCommands; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts new file mode 100644 index 0000000..de1d158 --- /dev/null +++ b/src/devtools/commands/DevToolsCommands.ts @@ -0,0 +1,56 @@ +import { execInTerminal } from "../../shared/utils/terminal"; +import * as commandsConfig from "./commands.config.json"; + +interface DevToolsCommandSetting { + id: string, + title: string, + description: string, + command: string, + requiredParams: Array, + optionalParams: Array, + isAvailable: boolean +} + +interface IDevToolsCommand { + runDTCommand: (command: () => void, args: {[key: string]: string}) => void +} + +abstract class DevToolsCommands implements IDevToolsCommand { + name: string; + + abstract getCommand(id: string): void; + abstract setSupportedMdTypes(mdTypes: {}[]): void; + abstract run(id: string, args: {[key: string]: string | boolean}, handleResult?: (res:any) => void): void; + + runDTCommand(command: (...args: any) => void, args: {[key: string]: string}, handleResult?: (res:any) => void): void { + if(command !== undefined){ + const dtCommand = command.bind(this); + dtCommand(args, handleResult); + }else{ + throw Error("Invalid command"); // TODO Complete + } + } + + executeCommand(command: string, runWindowTerminal: boolean){ + console.log('Final Command = ', command); + if(runWindowTerminal){ + //execInWindowTerminal(command); + }else{ + return execInTerminal(command); + } + } + + static getAllCommandTypes(): Array{ + return Object.keys(commandsConfig) + .filter((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].isAvailable) + .map((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].title); + } + + static getCommandsListByType(type: string): Array{ + const { commands } = commandsConfig[type.toLowerCase() as keyof typeof commandsConfig]; + return commands ? + commands.filter((command: DevToolsCommandSetting) => command.isAvailable) : []; + } +} + +export default DevToolsCommands; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts new file mode 100644 index 0000000..1087c9a --- /dev/null +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -0,0 +1,72 @@ +import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; +import DevToolsCommands from "./DevToolsCommands"; + +class DevToolsStandardCommands extends DevToolsCommands { + + private readonly type: string = "standard"; + private supportedMdTypes: SupportedMetadataTypes[]; + private commandsConfig; + private commandsList: { [key: string]: (...args: any) => void; } = { + retrieve: this.retrieve.bind(this), + deploy: this.deploy.bind(this) + }; + + constructor(){ + super(); + this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); + this.supportedMdTypes = []; + } + + getCommand(id: string): () => void { + return this.commandsList[id]; + } + + run(id: string, args: {[key: string]: string}): void { + this.runDTCommand(this.getCommand(id), args); + } + + setSupportedMdTypes(mdTypes: SupportedMetadataTypes[]): void { + this.supportedMdTypes = mdTypes; + }; + + getSupportedMdTypes(): {}[] { + return this.supportedMdTypes; + }; + + retrieve(args: {[key: string]: string}){ + console.log("Standard - Retrieve Method args = ", args); + let [{ command, requiredParams, optionalParams }] = + this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "retrieve"); + if(!command){ + // throw error + } + if(requiredParams && requiredParams.length){ + requiredParams.forEach((param: string) => { + if(param in args && args[param]){ + command = command.replace(`{{${param}}}`, args[param]); + }else{ + // request user + console.log(this.getSupportedMdTypes()); + const supportedMdTypes = this.getSupportedMdTypes() + .filter(mdType => mdType.supports.retrieve); + } + }); + } + if(optionalParams && optionalParams){ + optionalParams.forEach((param: string) => { + command = command.replace(`{{${param}}}`, + param in args ? args[param] : ""); + }); + } + console.log(command); + this.executeCommand(command, true); + } + + deploy(args: {[key: string]: string}){ + console.log("Standard - Deploy Method args = ", args); + } + + +} + +export default DevToolsStandardCommands; \ No newline at end of file diff --git a/src/devtools/commands/commands.config.json b/src/devtools/commands/commands.config.json new file mode 100644 index 0000000..f9ff6c8 --- /dev/null +++ b/src/devtools/commands/commands.config.json @@ -0,0 +1,68 @@ +{ + "admin": { + "title": "Admin", + "isAvailable": true, + "commands": [ + {"id":"init", "title": "Init", "command": "mcdev init", "requiredParams": [], "optionalParams": [], "description": "Initates SFMC DevTools or adds additional credentials to your project.", "isAvailable": false}, + {"id":"join", "title": "Join", "command": "", "requiredParams": [], "optionalParams": [], "description": "Clones an existing project from git.", "isAvailable": false}, + {"id":"upgrade", "title": "Upgrade", "command": "", "requiredParams": [], "optionalParams": [], "description": "Add NPM dependencies and IDE configuration files to your project.", "isAvailable": false}, + {"id":"rbus", "title": "Reload BUs", "command": "", "requiredParams": [], "optionalParams": [], "description": "Loads the list of available BUs from the server and saves it in your project.", "isAvailable": false}, + {"id":"badkeys", "title": "Bad Keys", "command": "", "requiredParams": [], "optionalParams": [], "description": "Lists metadata with random API names in specified Business Unit directory.", "isAvailable": false}, + {"id":"doc", "title": "Document", "command": "", "requiredParams": [], "optionalParams": [], "description": "Creates Markdown or HTML documentation for the selected type.", "isAvailable": false}, + {"id":"stypes", "title": "Select Types", "command": "", "requiredParams": [], "optionalParams": [], "description": "Allows you choose what metadata types to retrieve.", "isAvailable": false}, + { + "id":"etypes", + "title": "Explain Types", + "command": "mcdev explainTypes {{json}}", + "requiredParams": [], + "optionalParams": ["--json"], + "description": "Explains metadata types that can be retrieved.", + "isAvailable": true + } + ] + }, + "standard": { + "title": "Standard", + "isAvailable": true, + "commands": [ + { + "id":"retrieve", + "title": "Retrieve", + "command": "mcdev retrieve {{bu}} {{mdtype}} {{key}}", + "requiredParams": ["bu", "mdtype"], + "optionalParams": ["key"], + "description": "Retrieves metadata of a business unit.", + "isAvailable": true + }, + { + "id":"deploy", + "title": "Deploy", + "command": "mcdev deploy", + "requiredParams": ["bu", "mdtype"], + "optionalParams": ["key"], + "description": "Deploys local metadata to a business unit.", + "isAvailable": true + }, + {"id":"delete", "title": "Delete", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Deletes metadata of selected type and external key.", "isAvailable": false}, + { + "id":"refresh", + "title": "Refresh", + "command": "mcdev refresh", + "requiredParams": [], + "optionalParams": [], + "description": "Ensures that updates are properly published.", + "isAvailable": false + } + ] + }, + "templating": { + "title": "Templating", + "isAvailable": false, + "commands": [ + {"id":"rtemp", "title": "Retrieve As Template", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Retrieves a specific metadata file by name from the server for templating.", "isAvailable": false}, + {"id":"btemp", "title": "Build Template", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Builds a template out of a specific metadata file already in your retrieve folder.", "isAvailable": false}, + {"id":"bdef", "title": "Build Definition", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Builds metadata definition based on template.", "isAvailable": false}, + {"id":"bdefbulk", "title": "Build Definition Bulk", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Builds metadata definition based on template en bulk.", "isAvailable": false} + ] + } +} \ No newline at end of file diff --git a/src/devtools/extension.ts b/src/devtools/extension.ts new file mode 100644 index 0000000..5ed365d --- /dev/null +++ b/src/devtools/extension.ts @@ -0,0 +1,216 @@ +import DevToolsCommands from "./commands/DevToolsCommands"; +import DevToolsAdminCommands from "./commands/DevToolsAdminCommands"; +import DevToolsStandardCommands from "./commands/DevToolsStandardCommands"; +import { readFile } from "../shared/utils/file"; +import { editorInput } from "../editor/editorInput"; +import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; + +interface DTStatusBarSettings { + dtCredential: { + command: string, + title: string + }, + dtCommand: { + command: string, + title: string + } +}; + +const DEVTOOLS_STATUS_BAR_CREDBU: DTStatusBarSettings = { + dtCredential: { + command: "sfmc-devtools-vscode.credbu", + title: "DT:Credential/BU" + }, + dtCommand: { + command: "sfmc-devtools-vscode.command", + title: "DT:Command" + } +}; + +const DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE: string = "sfmc-devtools-vscode.devToolsMenuActionRetrieve"; +const DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY: string = "sfmc-devtools-vscode.devToolsMenuActionDeploy"; + +const COMMAND_INPUT_TITLES: { [key: string]: string } = { + credentialsName: "Select one of the credentials...", + bussinessUnit: "Select one of the business units...", + selectType: "Select the DevTools Command Type...", + selectCmd: "Select the DevTools Command...", + metaDataType: "Select one or more metadata types..." +}; + +const DEVTOOLS_EXTENSION_CONFIG: {[key: string]: any } = { + mcdevrcFile: ".mcdevrc.json", + allPlaceholder: "*All*", + devToolsClasses: [ + DevToolsAdminCommands, + DevToolsStandardCommands + ], + getClassName: (type: string) => `DevTools${type}Commands` +}; + +// eslint-disable-next-line @typescript-eslint/naming-convention +let devTools_commands_types_map: {[key: string]: DevToolsCommands} = {}; + +async function init(): Promise { + devTools_commands_types_map = DevToolsCommands.getAllCommandTypes() + .reduce((prev: {}, type: string) => { + const [ dtCommand ] = DEVTOOLS_EXTENSION_CONFIG.devToolsClasses + .filter((dtClass: DevToolsCommands) => + dtClass.name.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.getClassName(type).toLowerCase()); + if(dtCommand !== undefined){ + return { + ...prev, + [type.toLowerCase()]: new dtCommand(editorInput) + }; + } + return {...prev}; + }, {}); + const mdTypes: SupportedMetadataTypes[] = await getSupportedMetadataTypes(); + Object.values(devTools_commands_types_map).forEach( + (command: DevToolsCommands) => command.setSupportedMdTypes(mdTypes) + ); +} + +function convertToCmdOptSettings(options: Array){ + return options.map(opt => { + if(typeof opt === "string"){ + return {id: opt.toLowerCase(), label: opt, detail: ""}; + } + if(typeof opt === "object"){ + return {id: opt.id.toLowerCase(), label: opt.title, detail: opt.description}; + } + }).filter(val => val !== undefined); +} + +async function getAllCredentials(): Promise<{ [key: string]: string[]; }> { + const { credentials }: { credentials: any } = JSON.parse(await readFile(DEVTOOLS_EXTENSION_CONFIG.mcdevrcFile)); + if(Object.keys(credentials).length){ + const credentialsList: {[key: string]: Array} = Object.keys(credentials) + .reduce((prev, curr) => { + // get business units + const { businessUnits } = credentials[curr]; + const buList = businessUnits ? Object.keys(businessUnits) : []; + return {...prev, [curr]: buList}; + }, {}); + return credentialsList; + } + return {}; +} + +async function handleCredentialChange(){ + const { allPlaceholder } = DEVTOOLS_EXTENSION_CONFIG; + const credentials: {[key: string]: Array} = await getAllCredentials(); + const selectedCredentialName = await editorInput.handleQuickPickSelection( + convertToCmdOptSettings([allPlaceholder, ...Object.keys(credentials)]), + COMMAND_INPUT_TITLES["credentialsName"], + false + ); + if(selectedCredentialName && selectedCredentialName.id && selectedCredentialName.label){ + if(selectedCredentialName.id === allPlaceholder.toLowerCase()){ + return allPlaceholder; + } + const selectedBusinessUnit = await editorInput.handleQuickPickSelection( + convertToCmdOptSettings([ allPlaceholder ,...credentials[selectedCredentialName.label]]), + COMMAND_INPUT_TITLES["bussinessUnit"], + false + ); + if(selectedBusinessUnit && selectedBusinessUnit.id && selectedBusinessUnit.label){ + return `${selectedCredentialName.label}/`+ + `${selectedBusinessUnit.id === allPlaceholder.toLowerCase() ? allPlaceholder : selectedBusinessUnit.label}`; + } + } +} + +function handleSupportedMetadataTypes(){ + +} + +async function handleCommandSelection(credentialBU: string){ + const typesList: Array = DevToolsCommands.getAllCommandTypes(); + const selectedType = await editorInput.handleQuickPickSelection( + convertToCmdOptSettings(typesList), + COMMAND_INPUT_TITLES["selectType"], + false); + if(selectedType && selectedType.id){ + const commandsList = DevToolsCommands.getCommandsListByType(selectedType.id); + const selectedDTCommand = await editorInput.handleQuickPickSelection( + convertToCmdOptSettings(commandsList), + COMMAND_INPUT_TITLES["selectCmd"], + false + ); + if(selectedDTCommand && selectedDTCommand.id){ + const dtClass: DevToolsCommands = devTools_commands_types_map[selectedType.id]; + if(dtClass !== undefined){ + dtClass.run(selectedDTCommand.id, { + bu: credentialBU.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.allPlaceholder.toLowerCase() ? '"*"' : credentialBU + }); + } + } + } +} + +async function getSupportedMetadataTypes(): Promise | undefined { + const { admin }: { admin?: DevToolsCommands } = devTools_commands_types_map; + if(admin !== undefined){ + return await new Promise((resolve) => { + admin.run("etypes", { json: true }, (result: SupportedMetadataTypes[]) => { + resolve(result); + }); + }); + }else{ + // throw exception TODO + return; + } +} + +function executeExplorerMenuAction(action: string, path: string){ + // Separates the selected folder/file path by the retrieve or deploy action + const [ path1, path2 ]: Array = path.split(`/${action}/`); + // Retrieves the all the standard devtools commands + const { standard }: { standard?: DevToolsCommands} = devTools_commands_types_map; + if(standard !== undefined){ + let args: {[key: string]: string} = {}; + // The user clicked on the top folder (retrieve or deploy) + if(path1 && !path2 && path1.endsWith(`/${action}`)){ + args = {bu: `"*"`}; + } + // The user clicked on a folder/file inside the top folder (retrieve or deploy) + if(path2){ + let [ credName, bUnit, type, ...keys ]: Array = path2.split("/"); + // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder + if(type === "asset" && keys.length){ + // Gets the asset subfolder and asset key + const [ assetFolder, assetKey ] = keys; + if(!assetKey){ + // if user only selected an asset subfolder + // type will be changed to "asset-[name of the asset subfolder]" + type = `${type}-${assetFolder}`; + } + // if user selects a file inside a subfolder of asset + // the key will be the name of the file + keys = assetKey ? [ assetKey ] : []; + } + + // result 1 - credential/* + // result 2 - credential/bu + // result 3 - credential/bu "metadata" + // result 4 - credential/bu "metadata" "key" + args = { + bu: `${credName}/${bUnit ? bUnit : '*'}`, + mdtype: type ? `"${type}"` : "", + key: keys.length ? `"${keys[0].split(".")[0]}"` : "", + }; + } + standard.run(action, args); + } +} + +export const devToolsExtension = { + init, + DEVTOOLS_STATUS_BAR_CREDBU, + DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, + DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, + handleCredentialChange, + handleCommandSelection, + executeExplorerMenuAction +}; \ No newline at end of file diff --git a/src/initHelper.ts b/src/devtools/helpers/initHelper.ts similarity index 93% rename from src/initHelper.ts rename to src/devtools/helpers/initHelper.ts index 2f092d7..0db3f9b 100644 --- a/src/initHelper.ts +++ b/src/devtools/helpers/initHelper.ts @@ -1,7 +1,8 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { window, ExtensionContext } from 'vscode'; -import { activateEditorSettings } from './editorSettings'; -import { execInWindowTerminal, isFileInFolder } from './utils'; +import { activateEditorSettings } from '../../editor/editorSettings'; +import { execInWindowTerminal } from '../../shared/utils/terminal'; +import { isFileInFolder } from '../../shared/utils/file'; interface DevToolsForm { credentialName: string, diff --git a/src/installHelper.ts b/src/devtools/helpers/installHelper.ts similarity index 96% rename from src/installHelper.ts rename to src/devtools/helpers/installHelper.ts index 0f9355a..6e7dd2f 100644 --- a/src/installHelper.ts +++ b/src/devtools/helpers/installHelper.ts @@ -1,9 +1,9 @@ import { window, ViewColumn, Uri, ExtensionContext, ProgressLocation } from 'vscode'; import * as path from 'path'; import * as fs from 'fs'; -import { execInTerminal } from './utils'; +import { execInTerminal } from '../../shared/utils/terminal'; import { initHelper } from './initHelper'; -import { isDevToolsInstalled } from './prerequisites'; +import { isDevToolsInstalled } from '../prerequisites'; const MESSAGES: {[key: string]: string } = { noPreRequisites: "The Pre-Requisites required to run SFMC DevTools are missing. Do you wish to install them?", diff --git a/src/init.ts b/src/devtools/init.ts similarity index 78% rename from src/init.ts rename to src/devtools/init.ts index 4516f9e..c7622c9 100644 --- a/src/init.ts +++ b/src/devtools/init.ts @@ -1,7 +1,7 @@ import { ExtensionContext } from "vscode"; -import { initHelper } from "./initHelper"; -import { noDevToolsHandler, noPrerequisitesHandler } from "./installHelper"; -import { arePreRequisitesInstalled, isDevToolsInstalled } from './prerequisites'; +import { initHelper } from "./helpers/initHelper"; +import { noDevToolsHandler, noPrerequisitesHandler } from "./helpers/installHelper"; +import { arePreRequisitesInstalled, isDevToolsInstalled } from "./prerequisites"; export async function init(context: ExtensionContext){ try{ diff --git a/src/prerequisites.ts b/src/devtools/prerequisites.ts similarity index 95% rename from src/prerequisites.ts rename to src/devtools/prerequisites.ts index cfa5d88..d5b13ad 100644 --- a/src/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -1,4 +1,4 @@ -import { execInTerminal } from './utils'; +import { execInTerminal } from "../shared/utils/terminal"; const PREREQUISITES: { [key: string]: { cmdVersion: string, isValidVersion: (version: string) => RegExpMatchArray } } = { node: { diff --git a/src/editor/editorInput.ts b/src/editor/editorInput.ts new file mode 100644 index 0000000..04db5aa --- /dev/null +++ b/src/editor/editorInput.ts @@ -0,0 +1,17 @@ +import { window } from "vscode"; +import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; + +async function handleQuickPickSelection( + optionsList: Array, + placeHolder: string, + canPickMany: boolean): Promise { + const selectedOption = await window.showQuickPick( + optionsList, + { placeHolder: placeHolder, canPickMany: canPickMany, ignoreFocusOut: true } + ); + return selectedOption; +} + +export const editorInput = { + handleQuickPickSelection +}; \ No newline at end of file diff --git a/src/editor/editorSettings.ts b/src/editor/editorSettings.ts new file mode 100644 index 0000000..fb5c940 --- /dev/null +++ b/src/editor/editorSettings.ts @@ -0,0 +1,53 @@ +import { commands, ExtensionContext, StatusBarAlignment, StatusBarItem, window } from "vscode"; +import { devToolsExtension } from "../devtools/extension"; + +// TODO + +export function activateEditorSettings(context: ExtensionContext): void { + createCommandStatusBar(context); + createContextMenus(context); + devToolsExtension.init(); +} + +function createCommandStatusBar( { subscriptions }: ExtensionContext): void { + + let statusBarCredBU: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); + statusBarCredBU.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.command; + statusBarCredBU.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; + statusBarCredBU.show(); + + let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 100); + statusBar.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.command; + statusBar.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.title; + statusBar.show(); + + subscriptions.push( + commands.registerCommand(statusBarCredBU.command, () => credentialBUBarHandler(statusBarCredBU)), + commands.registerCommand(statusBar.command, () => commandBarHandler(statusBarCredBU)) + ); + subscriptions.push(statusBarCredBU, statusBar); +} + +async function credentialBUBarHandler(statusBarCredBU: StatusBarItem): Promise { + const selectedCredentialBU = await devToolsExtension.handleCredentialChange(); + statusBarCredBU.text = selectedCredentialBU ? + `DT:${selectedCredentialBU}` : + devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; +} + +function commandBarHandler(statusBarCredBU: StatusBarItem){ + const { text } = statusBarCredBU; + devToolsExtension.handleCommandSelection(text === devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title ? + "" : + text.split(":")[1] + ); +} + +async function createContextMenus({ subscriptions }: ExtensionContext): Promise { + subscriptions.push( + commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, + ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("retrieve", path)), + commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, + ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("deploy", path)) + ); +} \ No newline at end of file diff --git a/src/editorSettings.ts b/src/editorSettings.ts deleted file mode 100644 index 54beab8..0000000 --- a/src/editorSettings.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { commands, ExtensionContext, StatusBarAlignment, StatusBarItem, window } from "vscode"; -import { devToolsCommands } from "./devToolsCommands"; - -const DEVTOOLS_STATUS_BAR_CREDBU: string = "sfmc-devtools-vscext.credbu"; -const DEVTOOLS_STATUS_BAR_CREDBU_TITLE: string = "DT:Credential/BU"; - -const DEVTOOLS_STATUS_BAR_COMMAND: string = "sfmc-devtools-vscext.command"; -const DEVTOOLS_STATUS_BAR_COMMAND_TITLE: string = "DT:Command"; - -const DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE: string = "sfmc-devtools-vscext.devToolsMenuActionRetrieve"; -const DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY: string = "sfmc-devtools-vscext.devToolsMenuActionDeploy"; -const DEVTOOLS_MENU_ACTION_FOLDER_NAME: string = "sfmc-devtools-vscext.menuActionFolder"; -const DEVTOOLS_MENU_ACTION_TYPES_FOLDER_NAME: string = "sfmc-devtools-vscext.menuActionTypesFolder"; - -export function activateEditorSettings(context: ExtensionContext){ - createCommandStatusBar(context); - createContextMenus(context); -} - -function createCommandStatusBar( { subscriptions }: ExtensionContext){ - - let statusBarCredBU: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); - statusBarCredBU.command = DEVTOOLS_STATUS_BAR_CREDBU; - statusBarCredBU.text = DEVTOOLS_STATUS_BAR_CREDBU_TITLE; - statusBarCredBU.show(); - - let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 100); - statusBar.command = DEVTOOLS_STATUS_BAR_COMMAND; - statusBar.text = DEVTOOLS_STATUS_BAR_COMMAND_TITLE; - statusBar.show(); - - subscriptions.push( - commands.registerCommand(DEVTOOLS_STATUS_BAR_CREDBU, () => credentialBUHandler(statusBarCredBU)), - commands.registerCommand(DEVTOOLS_STATUS_BAR_COMMAND, () => commandBarHandler(statusBarCredBU)) - ); - subscriptions.push(statusBarCredBU, statusBar); -} - -async function credentialBUHandler(statusBarCredBU: StatusBarItem){ - const selectedCredentialBU = await devToolsCommands.executeCredentialsSelection(); - statusBarCredBU.text = selectedCredentialBU ? `DT:${selectedCredentialBU}` : DEVTOOLS_STATUS_BAR_CREDBU_TITLE; -} - -function commandBarHandler(statusBarCredBU: StatusBarItem){ - const { text } = statusBarCredBU; - devToolsCommands.executeCommandBarSelection( text === DEVTOOLS_STATUS_BAR_CREDBU_TITLE ? "" : text.split(":")[1]); -} - - -async function createContextMenus({ subscriptions }: ExtensionContext){ - subscriptions.push( - commands.registerCommand(DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, ({ path }: { path: string}) => devToolsCommands.executeExplorerMenuAction("retrieve", path)), - commands.registerCommand(DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, ({ path }: { path: string}) => devToolsCommands.executeExplorerMenuAction("deploy", path)) - ); -} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 16853b6..267e462 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,5 +1,5 @@ import { ExtensionContext } from 'vscode'; -import { init } from './init'; +import { init } from './devtools/init'; export function activate(context: ExtensionContext) { init(context); diff --git a/src/shared/interfaces/inputOptionsSettings.ts b/src/shared/interfaces/inputOptionsSettings.ts new file mode 100644 index 0000000..c85eff0 --- /dev/null +++ b/src/shared/interfaces/inputOptionsSettings.ts @@ -0,0 +1,6 @@ +interface InputOptionsSettings { + id: string, + label: string, + detail: string +}; +export default InputOptionsSettings; \ No newline at end of file diff --git a/src/shared/interfaces/supportedMetadataTypes.ts b/src/shared/interfaces/supportedMetadataTypes.ts new file mode 100644 index 0000000..396128b --- /dev/null +++ b/src/shared/interfaces/supportedMetadataTypes.ts @@ -0,0 +1,9 @@ +interface SupportedMetadataTypes { + name: string, + apiName: string, + retrieveByDefault: boolean, + supports: {[key: string]: boolean }, + description: string +} + +export default SupportedMetadataTypes; \ No newline at end of file diff --git a/src/shared/utils/file.ts b/src/shared/utils/file.ts new file mode 100644 index 0000000..f74a852 --- /dev/null +++ b/src/shared/utils/file.ts @@ -0,0 +1,15 @@ +import { TextDocument, Uri, workspace } from 'vscode'; + +export async function readFile(filename: string): Promise{ + const [{ uri }] = workspace.workspaceFolders; + if(Object.keys(uri).includes("path")){ + const document: TextDocument = await workspace.openTextDocument(`${uri.path}/${filename}`); + return document.getText(); + } + return ''; +} + +export async function isFileInFolder(filename: string): Promise { + const fileArray: Array = await workspace.findFiles(filename); + return fileArray.length > 0; +} \ No newline at end of file diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts new file mode 100644 index 0000000..944fbba --- /dev/null +++ b/src/shared/utils/lib.ts @@ -0,0 +1,3 @@ +export function parseArrayJsonStringToArray(jsonStr: string): {[key: string]: string | string[] | {[key: string]: string}} { + return JSON.parse(jsonStr); +} \ No newline at end of file diff --git a/src/utils.ts b/src/shared/utils/terminal.ts similarity index 56% rename from src/utils.ts rename to src/shared/utils/terminal.ts index f8b186a..f9a299f 100644 --- a/src/utils.ts +++ b/src/shared/utils/terminal.ts @@ -1,7 +1,7 @@ import { ChildProcess, exec } from 'child_process'; -import { Terminal, TextDocument, Uri, window, workspace } from 'vscode'; +import { Terminal, window } from 'vscode'; -const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; +const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; // TODO export async function execInTerminal(command: string): Promise{ return new Promise((resolve) => { @@ -21,16 +21,5 @@ export async function execInWindowTerminal(command: string): Promise{ devToolsTerminal.show(); } -export async function readFile(filename: string): Promise{ - const [{ uri }] = workspace.workspaceFolders; - if(Object.keys(uri).includes("path")){ - const document: TextDocument = await workspace.openTextDocument(`${uri.path}/${filename}`); - return document.getText(); - } - return ''; -} -export async function isFileInFolder(filename: string): Promise { - const fileArray: Array = await workspace.findFiles(filename); - return fileArray.length > 0; -} \ No newline at end of file + diff --git a/tsconfig.json b/tsconfig.json index 808db50..949378c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,9 +3,7 @@ "module": "commonjs", "target": "es6", "outDir": "out", - "lib": [ - "es6" - ], + "lib": ["es6"], "sourceMap": true, "rootDir": "src", "strict": true, /* enable all strict type-checking options */ @@ -20,4 +18,4 @@ "node_modules", ".vscode-test" ] -} +} \ No newline at end of file From 45f483645db0923bee3942e33ca623198509bcf1 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Fri, 19 May 2023 17:42:56 +0200 Subject: [PATCH 02/24] changed prerequisites logic and include config file --- src/config/prerequisites.config.ts | 15 ++++++++++++++ src/devtools/init.ts | 32 ++++++++++++++++-------------- src/editor/editorInput.ts | 7 ++++++- src/shared/utils/terminal.ts | 17 ++++++++-------- 4 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 src/config/prerequisites.config.ts diff --git a/src/config/prerequisites.config.ts b/src/config/prerequisites.config.ts new file mode 100644 index 0000000..4e86651 --- /dev/null +++ b/src/config/prerequisites.config.ts @@ -0,0 +1,15 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +export enum NoPrerequisitesResponseOptions { + "Yes" = 1, + "No" = 0 +}; +export const prerequisitesConfig: {[key: string]: {[key: string]: string}} = { + packages: { + node: "node -v", + git: "git --version" + }, + titles: { + onePrerequisiteMissing: "Unfortunately the prerequesite {{prerequisites}} is missing.", + multiplePrerequisitesMissing: "Unfortunately the prerequesites {{prerequisites}} are missing." + } +}; \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts index c7622c9..4049ce9 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -1,27 +1,29 @@ import { ExtensionContext } from "vscode"; import { initHelper } from "./helpers/initHelper"; -import { noDevToolsHandler, noPrerequisitesHandler } from "./helpers/installHelper"; -import { arePreRequisitesInstalled, isDevToolsInstalled } from "./prerequisites"; +import { noDevToolsHandler } from "./helpers/installHelper"; +import { prerequisites } from "./prerequisites"; export async function init(context: ExtensionContext){ try{ - const hasPrerequisites = await arePreRequisitesInstalled(null); + // Checks if all the prerequesites are installed. If not returns the missing prerequisite name + const { prerequisitesInstalled, missingPrerequisites} = prerequisites.arePrerequisitesInstalled(); + // if user has prequisites installed - if(hasPrerequisites){ - const hasDevTools = await isDevToolsInstalled(); - if(hasDevTools){ - // TODO - check if project is already initiated - // initialize devtools - initHelper(context); - }else{ - // install devtools - noDevToolsHandler(context); - } + if(prerequisitesInstalled){ + // const hasDevTools = await prerequisites.isDevToolsInstalled(); + // if(hasDevTools){ + // // TODO - check if project is already initiated + // // initialize devtools + // initHelper(context); + // }else{ + // // install devtools + // noDevToolsHandler(context); + // } }else{ // show prequisites installation page - noPrerequisitesHandler(context); + prerequisites.noPrerequisitesHandler(missingPrerequisites); } }catch(exception){ - console.error(exception); + console.error(exception); // TODO } } diff --git a/src/editor/editorInput.ts b/src/editor/editorInput.ts index 04db5aa..10c5119 100644 --- a/src/editor/editorInput.ts +++ b/src/editor/editorInput.ts @@ -11,7 +11,12 @@ async function handleQuickPickSelection( ); return selectedOption; } +async function handleShowInformationMessage(message: string, actions: string[]){ + const response = await window.showInformationMessage(message, ...actions); + return response; +} export const editorInput = { - handleQuickPickSelection + handleQuickPickSelection, + handleShowInformationMessage }; \ No newline at end of file diff --git a/src/shared/utils/terminal.ts b/src/shared/utils/terminal.ts index f9a299f..46f777b 100644 --- a/src/shared/utils/terminal.ts +++ b/src/shared/utils/terminal.ts @@ -1,15 +1,16 @@ -import { ChildProcess, exec } from 'child_process'; +import { execSync } from 'child_process'; import { Terminal, window } from 'vscode'; const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; // TODO -export async function execInTerminal(command: string): Promise{ - return new Promise((resolve) => { - let result: string = ''; - const process: ChildProcess = exec(command); - process.stdout.on('data', (data) => result = data); - process.on('close', () => resolve(result)); - }); +export function executeSyncTerminalCommand(command: string): string { + try { + return execSync(command) + .toString() + .trim(); + }catch(error){ + throw new Error(`Error executing the command: ${command}`); + } } export async function execInWindowTerminal(command: string): Promise{ From 7f45271c6057e23d7409cf1c3af6c3aeeb7b26ea Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Mon, 22 May 2023 17:20:43 +0200 Subject: [PATCH 03/24] prerequisites implementation --- src/config/prerequisites.config.ts | 18 ++++- ...salesforce-lightning-design-system.min.css | 20 +++++ src/devtools/init.ts | 2 +- src/devtools/prerequisites.ts | 81 ++++++++++++------- src/editor/editorWebview.ts | 63 +++++++++++++++ ...isites.html => devtoolsPrerequisites.html} | 2 +- ...requisites.js => devtoolsPrerequisites.js} | 0 src/shared/utils/file.ts | 21 ++++- webpack.config.js | 13 +-- 9 files changed, 175 insertions(+), 45 deletions(-) create mode 100644 src/css/salesforce-lightning-design-system.min.css create mode 100644 src/editor/editorWebview.ts rename src/html/{mcdev_prerequisites.html => devtoolsPrerequisites.html} (98%) rename src/js/{mcdev_prerequisites.js => devtoolsPrerequisites.js} (100%) diff --git a/src/config/prerequisites.config.ts b/src/config/prerequisites.config.ts index 4e86651..ead1f88 100644 --- a/src/config/prerequisites.config.ts +++ b/src/config/prerequisites.config.ts @@ -3,13 +3,27 @@ export enum NoPrerequisitesResponseOptions { "Yes" = 1, "No" = 0 }; -export const prerequisitesConfig: {[key: string]: {[key: string]: string}} = { +export const prerequisitesConfig: { + packages: { node: string, git: string }, + titles: { + onePrerequisiteMissing: string, + multiplePrerequisitesMissing: string, + askPrerequisitesToUser: string + }, + webview: { id: string, title: string, filename: string } +} = { packages: { node: "node -v", git: "git --version" }, titles: { onePrerequisiteMissing: "Unfortunately the prerequesite {{prerequisites}} is missing.", - multiplePrerequisitesMissing: "Unfortunately the prerequesites {{prerequisites}} are missing." + multiplePrerequisitesMissing: "Unfortunately the prerequesites {{prerequisites}} are missing.", + askPrerequisitesToUser: "Do you want to open the installation guide?" + }, + webview: { + id: "prerequisitesPanel", + title: "Prequisites Installation", + filename: "devtoolsPrerequisites" } }; \ No newline at end of file diff --git a/src/css/salesforce-lightning-design-system.min.css b/src/css/salesforce-lightning-design-system.min.css new file mode 100644 index 0000000..2170468 --- /dev/null +++ b/src/css/salesforce-lightning-design-system.min.css @@ -0,0 +1,20 @@ +@charset "UTF-8";/*! Lightning Design System 2.20.1 */.slds-wcag{--slds-g-color-palette-blue-10:#001639;--slds-g-color-palette-blue-15:#03234d;--slds-g-color-palette-blue-20:#032d60;--slds-g-color-palette-blue-30:#014486;--slds-g-color-palette-blue-40:#0b5cab;--slds-g-color-palette-blue-50:#0176d3;--slds-g-color-palette-blue-60:#1b96ff;--slds-g-color-palette-blue-65:#57a3fd;--slds-g-color-palette-blue-70:#78b0fd;--slds-g-color-palette-blue-80:#aacbff;--slds-g-color-palette-blue-90:#d8e6fe;--slds-g-color-palette-blue-95:#eef4ff;--slds-g-color-palette-cloud-blue-10:#001a28;--slds-g-color-palette-cloud-blue-15:#0a2636;--slds-g-color-palette-cloud-blue-20:#023248;--slds-g-color-palette-cloud-blue-30:#084968;--slds-g-color-palette-cloud-blue-40:#05628a;--slds-g-color-palette-cloud-blue-50:#107cad;--slds-g-color-palette-cloud-blue-60:#0d9dda;--slds-g-color-palette-cloud-blue-65:#08abed;--slds-g-color-palette-cloud-blue-70:#1ab9ff;--slds-g-color-palette-cloud-blue-80:#90d0fe;--slds-g-color-palette-cloud-blue-90:#cfe9fe;--slds-g-color-palette-cloud-blue-95:#eaf5fe;--slds-g-color-palette-green-10:#071b12;--slds-g-color-palette-green-15:#0c2912;--slds-g-color-palette-green-20:#1C3326;--slds-g-color-palette-green-30:#194e31;--slds-g-color-palette-green-40:#396547;--slds-g-color-palette-green-50:#2e844a;--slds-g-color-palette-green-60:#3ba755;--slds-g-color-palette-green-65:#41b658;--slds-g-color-palette-green-70:#45c65a;--slds-g-color-palette-green-80:#91db8b;--slds-g-color-palette-green-90:#cdefc4;--slds-g-color-palette-green-95:#ebf7e6;--slds-g-color-palette-hot-orange-10:#281202;--slds-g-color-palette-hot-orange-15:#421604;--slds-g-color-palette-hot-orange-20:#4A2413;--slds-g-color-palette-hot-orange-30:#7e2600;--slds-g-color-palette-hot-orange-40:#aa3001;--slds-g-color-palette-hot-orange-50:#d83a00;--slds-g-color-palette-hot-orange-60:#ff5d2d;--slds-g-color-palette-hot-orange-65:#ff784f;--slds-g-color-palette-hot-orange-70:#ff906e;--slds-g-color-palette-hot-orange-80:#feb9a5;--slds-g-color-palette-hot-orange-90:#ffded5;--slds-g-color-palette-hot-orange-95:#fef1ed;--slds-g-color-palette-indigo-10:#200647;--slds-g-color-palette-indigo-15:#1f0974;--slds-g-color-palette-indigo-20:#321D71;--slds-g-color-palette-indigo-30:#2f2cb7;--slds-g-color-palette-indigo-40:#3a49da;--slds-g-color-palette-indigo-50:#5867e8;--slds-g-color-palette-indigo-60:#7f8ced;--slds-g-color-palette-indigo-65:#8e9bef;--slds-g-color-palette-indigo-70:#9ea9f1;--slds-g-color-palette-indigo-80:#bec7f6;--slds-g-color-palette-indigo-90:#e0e5f8;--slds-g-color-palette-indigo-95:#f1f3fb;--slds-g-color-palette-orange-10:#201600;--slds-g-color-palette-orange-15:#371e03;--slds-g-color-palette-orange-20:#3e2b02;--slds-g-color-palette-orange-30:#5f3e02;--slds-g-color-palette-orange-40:#825101;--slds-g-color-palette-orange-50:#a96404;--slds-g-color-palette-orange-60:#dd7a01;--slds-g-color-palette-orange-65:#f38303;--slds-g-color-palette-orange-70:#fe9339;--slds-g-color-palette-orange-80:#ffba90;--slds-g-color-palette-orange-90:#fedfd0;--slds-g-color-palette-orange-95:#fff1ea;--slds-g-color-palette-pink-10:#370114;--slds-g-color-palette-pink-15:#4b0620;--slds-g-color-palette-pink-20:#61022a;--slds-g-color-palette-pink-30:#8a033e;--slds-g-color-palette-pink-40:#b60554;--slds-g-color-palette-pink-50:#e3066a;--slds-g-color-palette-pink-60:#ff538a;--slds-g-color-palette-pink-65:#fe7298;--slds-g-color-palette-pink-70:#fe8aa7;--slds-g-color-palette-pink-80:#fdb6c5;--slds-g-color-palette-pink-90:#fddde3;--slds-g-color-palette-pink-95:#fef0f3;--slds-g-color-palette-purple-10:#240643;--slds-g-color-palette-purple-15:#300b60;--slds-g-color-palette-purple-20:#401075;--slds-g-color-palette-purple-30:#5a1ba9;--slds-g-color-palette-purple-40:#7526e3;--slds-g-color-palette-purple-50:#9050e9;--slds-g-color-palette-purple-60:#ad7bee;--slds-g-color-palette-purple-65:#b78def;--slds-g-color-palette-purple-70:#c29ef1;--slds-g-color-palette-purple-80:#D7BFF2;--slds-g-color-palette-purple-90:#ece1f9;--slds-g-color-palette-purple-95:#f6f2fb;--slds-g-color-palette-red-10:#300c01;--slds-g-color-palette-red-15:#4a0c04;--slds-g-color-palette-red-20:#640103;--slds-g-color-palette-red-30:#8e030f;--slds-g-color-palette-red-40:#ba0517;--slds-g-color-palette-red-50:#ea001e;--slds-g-color-palette-red-60:#fe5c4c;--slds-g-color-palette-red-65:#fe7765;--slds-g-color-palette-red-70:#fe8f7d;--slds-g-color-palette-red-80:#feb8ab;--slds-g-color-palette-red-90:#feded8;--slds-g-color-palette-red-95:#fef1ee;--slds-g-color-palette-teal-10:#071b12;--slds-g-color-palette-teal-15:#072825;--slds-g-color-palette-teal-20:#023434;--slds-g-color-palette-teal-30:#024d4c;--slds-g-color-palette-teal-40:#056764;--slds-g-color-palette-teal-50:#0b827c;--slds-g-color-palette-teal-60:#06a59a;--slds-g-color-palette-teal-65:#03b4a7;--slds-g-color-palette-teal-70:#01c3b3;--slds-g-color-palette-teal-80:#04e1cb;--slds-g-color-palette-teal-90:#acf3e4;--slds-g-color-palette-teal-95:#def9f3;--slds-g-color-palette-violet-10:#2e0039;--slds-g-color-palette-violet-15:#3d0157;--slds-g-color-palette-violet-20:#481A54;--slds-g-color-palette-violet-30:#730394;--slds-g-color-palette-violet-40:#9602c7;--slds-g-color-palette-violet-50:#ba01ff;--slds-g-color-palette-violet-60:#cb65ff;--slds-g-color-palette-violet-65:#d17dfe;--slds-g-color-palette-violet-70:#d892fe;--slds-g-color-palette-violet-80:#e5b9fe;--slds-g-color-palette-violet-90:#f2defe;--slds-g-color-palette-violet-95:#f9f0ff;--slds-g-color-palette-yellow-10:#281202;--slds-g-color-palette-yellow-15:#2e2204;--slds-g-color-palette-yellow-20:#4f2100;--slds-g-color-palette-yellow-30:#6f3400;--slds-g-color-palette-yellow-40:#8c4b02;--slds-g-color-palette-yellow-50:#a86403;--slds-g-color-palette-yellow-60:#ca8501;--slds-g-color-palette-yellow-65:#d79304;--slds-g-color-palette-yellow-70:#e4a201;--slds-g-color-palette-yellow-80:#fcc003;--slds-g-color-palette-yellow-90:#f9e3b6;--slds-g-color-palette-yellow-95:#fbf3e0;--slds-g-color-palette-neutral-10:#181818;--slds-g-color-palette-neutral-15:#242424;--slds-g-color-palette-neutral-20:#2e2e2e;--slds-g-color-palette-neutral-30:#444444;--slds-g-color-palette-neutral-40:#5c5c5c;--slds-g-color-palette-neutral-50:#747474;--slds-g-color-palette-neutral-60:#939393;--slds-g-color-palette-neutral-65:#a0a0a0;--slds-g-color-palette-neutral-70:#aeaeae;--slds-g-color-palette-neutral-80:#c9c9c9;--slds-g-color-palette-neutral-90:#e5e5e5;--slds-g-color-palette-neutral-95:#f3f3f3;--slds-g-color-palette-neutral-100:#ffffff}.slds-wcag{--slds-g-color-neutral-base-100:#ffffff;--slds-g-color-neutral-base-95:#f3f3f3;--slds-g-color-neutral-base-90:#e5e5e5;--slds-g-color-neutral-base-80:#c9c9c9;--slds-g-color-neutral-base-70:#aeaeae;--slds-g-color-neutral-base-65:#a0a0a0;--slds-g-color-neutral-base-60:#939393;--slds-g-color-neutral-base-50:#747474;--slds-g-color-neutral-base-40:#5c5c5c;--slds-g-color-neutral-base-30:#444444;--slds-g-color-neutral-base-20:#2e2e2e;--slds-g-color-neutral-base-15:#242424;--slds-g-color-neutral-base-10:#181818;--slds-g-color-brand-base-100:#ffffff;--slds-g-color-brand-base-95:#eef4ff;--slds-g-color-brand-base-90:#d8e6fe;--slds-g-color-brand-base-80:#aacbff;--slds-g-color-brand-base-70:#78b0fd;--slds-g-color-brand-base-65:#57a3fd;--slds-g-color-brand-base-60:#1b96ff;--slds-g-color-brand-base-50:#0176d3;--slds-g-color-brand-base-40:#0b5cab;--slds-g-color-brand-base-30:#014486;--slds-g-color-brand-base-20:#032d60;--slds-g-color-brand-base-15:#03234d;--slds-g-color-brand-base-10:#001639;--slds-g-color-error-base-100:#ffffff;--slds-g-color-error-base-90:#feded8;--slds-g-color-error-base-80:#feb8ab;--slds-g-color-error-base-70:#fe8f7d;--slds-g-color-error-base-60:#fe5c4c;--slds-g-color-error-base-50:#ea001e;--slds-g-color-error-base-40:#ba0517;--slds-g-color-error-base-30:#8e030f;--slds-g-color-error-base-20:#640103;--slds-g-color-error-base-10:#300c01;--slds-g-color-warning-base-100:#ffffff;--slds-g-color-warning-base-90:#fedfd0;--slds-g-color-warning-base-80:#ffba90;--slds-g-color-warning-base-70:#fe9339;--slds-g-color-warning-base-60:#dd7a01;--slds-g-color-warning-base-50:#a96404;--slds-g-color-warning-base-40:#825101;--slds-g-color-warning-base-30:#5f3e02;--slds-g-color-warning-base-20:#3e2b02;--slds-g-color-warning-base-10:#201600;--slds-g-color-success-base-100:#ffffff;--slds-g-color-success-base-90:#cdefc4;--slds-g-color-success-base-80:#91db8b;--slds-g-color-success-base-70:#45c65a;--slds-g-color-success-base-60:#3ba755;--slds-g-color-success-base-50:#2e844a;--slds-g-color-success-base-40:#396547;--slds-g-color-success-base-30:#194e31;--slds-g-color-success-base-20:#1C3326;--slds-g-color-success-base-10:#071b12;--slds-g-color-border-base-1:#c9c9c9;--slds-g-color-border-base-2:#aeaeae;--slds-g-color-border-base-3:#939393;--slds-g-color-border-base-4:#747474;--slds-g-color-border-brand-1:#78b0fd;--slds-g-color-border-brand-2:#1b96ff;--slds-g-link-color:#0b5cab;--slds-g-link-color-hover:#014486;--slds-g-link-color-focus:#014486;--slds-g-link-color-active:#032d60}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:var(--slds-g-color-neutral-base-50,#747474);font-weight:400;opacity:1}::-moz-placeholder{color:var(--slds-g-color-neutral-base-50,#747474);font-weight:400;opacity:1}:-ms-input-placeholder{color:var(--slds-g-color-neutral-base-50,#747474);font-weight:400;opacity:1}::-ms-input-placeholder{color:var(--slds-g-color-neutral-base-50,#747474);font-weight:400;opacity:1}::placeholder{color:var(--slds-g-color-neutral-base-50,#747474);font-weight:400;opacity:1}::-moz-selection{background:var(--slds-g-color-brand-base-95,#d8e6fe);text-shadow:none;color:var(--slds-g-color-neutral-base-10,#181818)}::selection{background:var(--slds-g-color-brand-base-95,#d8e6fe);text-shadow:none;color:var(--slds-g-color-neutral-base-10,#181818)}html{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:100%;line-height:1.5;background:#eef4ff;color:var(--slds-g-color-neutral-base-10,#181818);-webkit-tap-highlight-color:transparent}body{font-size:.8125rem;background:0 0}dl,fieldset,h1,h2,h3,h4,h5,h6,ol,p,ul{margin:0;padding:0}dd,figure{margin:0}abbr[title]{text-decoration:none}abbr[title],fieldset,hr{border:0}hr{padding:0}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:1em}ol,ul{list-style:none}a{color:#0176d3;text-decoration:none;-webkit-transition:color .1s linear;transition:color .1s linear}a:focus,a:hover{text-decoration:underline;color:#014486}a:active{color:#014486}a,button{cursor:pointer}b,dfn,strong{font-weight:700}mark{background-color:var(--slds-g-color-palette-yellow-90,#fff03f);color:var(--slds-g-color-neutral-base-10,#181818)}abbr[title]{cursor:help}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}table{width:100%}caption,td,th{text-align:left}hr{display:block;margin:2rem 0;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);height:1px;clear:both}audio,canvas,iframe,img,svg,video{vertical-align:middle}img{max-width:100%;height:auto}.slds-modal--form .slds-modal__content:last-child,.slds-modal--form .slds-modal__header,.slds-modal_form .slds-modal__content:last-child,.slds-modal_form .slds-modal__header{border-radius:0;-webkit-box-shadow:none;box-shadow:none}.slds-modal--form .slds-modal__container,.slds-modal_form .slds-modal__container{margin:0;padding:0}.slds-modal--form .slds-modal__header .slds-text-heading--medium,.slds-modal--form .slds-modal__header .slds-text-heading_medium,.slds-modal_form .slds-modal__header .slds-text-heading--medium,.slds-modal_form .slds-modal__header .slds-text-heading_medium{line-height:1.5}.slds-modal--form .slds-modal__header .slds-button,.slds-modal_form .slds-modal__header .slds-button{display:inline-block;width:auto}.slds-modal--form .slds-modal__header .slds-button:first-child,.slds-modal_form .slds-modal__header .slds-button:first-child{float:left;margin-right:.5rem}.slds-modal--form .slds-modal__header .slds-button:first-child+.slds-button,.slds-modal_form .slds-modal__header .slds-button:first-child+.slds-button{float:right;margin-top:0;margin-left:.5rem}.slds-action-overflow--touch,.slds-action-overflow_touch{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9001}.slds-action-overflow--touch__container,.slds-action-overflow_touch__container{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;height:100%}.slds-action-overflow--touch__content,.slds-action-overflow_touch__content{padding-top:33.333%;overflow:hidden;overflow-y:auto}.slds-action-overflow--touch__body,.slds-action-overflow_touch__body{position:relative;top:2rem;background:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 -2px 4px rgba(0,0,0,.07);box-shadow:0 -2px 4px rgba(0,0,0,.07)}.slds-action-overflow--touch__footer,.slds-action-overflow_touch__footer{position:relative;-ms-flex-negative:0;flex-shrink:0;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);padding:.75rem 1rem;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:0 -2px 4px #f3f3f3;box-shadow:0 -2px 4px #f3f3f3}.slds-media--timeline,.slds-media_timeline,.slds-timeline__media{padding-bottom:1.5rem;position:relative}.slds-media--timeline:before,.slds-media_timeline:before,.slds-timeline__media:before{content:"";background:var(--slds-g-color-neutral-base-80,#e5e5e5);height:100%;width:2px;position:absolute;left:.75rem;top:2px;bottom:0;margin-left:1px;z-index:-1}.slds-timeline__title{position:relative}.slds-timeline__title-content{position:relative;top:-1px;padding-right:1rem;background:var(--slds-g-color-neutral-base-100,#fff);z-index:2}.slds-timeline__title:after{position:absolute;right:0;bottom:.5rem;left:0;border-bottom:1px dashed var(--slds-g-color-border-base-1,#e5e5e5);content:" ";z-index:1}.slds-timeline__media--call:before,.slds-timeline__media_call:before{background:#48c3cc}.slds-timeline__media--email:before,.slds-timeline__media_email:before{background:#95aec5}.slds-timeline__media--event:before,.slds-timeline__media_event:before{background:#eb7092}.slds-timeline__media--task:before,.slds-timeline__media_task:before{background:#4bc076}.slds-timeline__item_expandable{position:relative;padding-bottom:1rem}.slds-timeline__item_expandable:before{content:"";background:var(--slds-g-color-neutral-base-80,#e5e5e5);height:100%;width:2px;position:absolute;left:2.25rem;top:0;bottom:0;margin-left:1px}.slds-timeline__item_expandable .slds-media__figure{margin-right:.25rem;z-index:1}.slds-timeline__item_expandable .slds-media__figure .slds-button_icon{margin-right:.5rem}.slds-timeline__item_expandable .slds-media__body{padding:0 .25rem}.slds-timeline__item_expandable .slds-checkbox{margin-right:.25rem}.slds-timeline__item_expandable .slds-timeline__actions_inline{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;margin-left:.5rem}.slds-timeline__item_expandable .slds-timeline__actions_inline .slds-timeline__date{padding-right:.5rem;margin-bottom:0}.slds-timeline__item_expandable .slds-timeline__item_details{visibility:hidden;opacity:0;height:0;padding:0}.slds-timeline__item_expandable.slds-is-open .slds-timeline__item_details{visibility:visible;opacity:1;height:auto;padding:1rem}.slds-timeline__item_expandable.slds-is-open .slds-timeline__details-action-icon{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:45%;transform-origin:45%}.slds-timeline__item_call:before{background:#48c3cc}.slds-timeline__item_email:before{background:#95aec5}.slds-timeline__item_event:before{background:#eb7092}.slds-timeline__item_task:before{background:#4bc076}.slds-timeline__trigger{padding:.25rem}.slds-timeline__trigger:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-timeline__icon{border:2px solid var(--slds-g-color-neutral-base-100,#fff)}.slds-timeline__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.slds-timeline__date{margin-bottom:.25rem;font-size:.75rem;color:var(--slds-g-color-neutral-base-30,#444)}.slds-timeline__details-action-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.slds-badge{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.25rem .5rem;color:var(--slds-c-badge-text-color,var(--sds-c-badge-text-color,var(--slds-g-color-neutral-base-10,#181818)));font-size:var(--slds-c-badge-font-size,var(--sds-c-badge-font-size,.75rem));font-weight:700;line-height:var(--slds-c-badge-line-height,var(--sds-c-badge-line-height,normal));white-space:nowrap;border-width:var(--slds-c-badge-sizing-border,var(--sds-c-badge-sizing-border,1px));border-style:solid;border-color:var(--slds-c-badge-color-border,var(--sds-c-badge-color-border,transparent));border-radius:var(--slds-c-badge-radius-border,var(--sds-c-badge-radius-border,15rem));background-color:var(--slds-c-badge-color-background,var(--sds-c-badge-color-background,var(--slds-g-color-neutral-base-95,#f3f3f3)))}.slds-badge+.slds-badge{margin-left:.5rem}.slds-badge:empty{padding:0}.slds-badge_inverse{/*! @css-var-fallback background-color */--slds-c-badge-color-background:var(--slds-c-badge-inverse-color-background, var(--sds-c-badge-inverse-color-background, var(--slds-g-color-neutral-base-50, #747474)));/*! @css-var-fallback color */--slds-c-badge-text-color:var(--slds-c-badge-inverse-text-color, var(--sds-c-badge-inverse-text-color, var(--slds-g-color-neutral-base-100, white)))}.slds-badge_lightest{/*! @css-var-fallback background-color */--slds-c-badge-color-background:var(--slds-c-badge-lightest-color-background, var(--sds-c-badge-lightest-color-background, var(--slds-g-color-neutral-base-100, white)));/*! @css-var-fallback border-color */--slds-c-badge-color-border:var(--slds-c-badge-lightest-color-border, var(--sds-c-badge-lightest-color-border, var(--slds-g-color-border-base-1, #e5e5e5)))}.slds-badge__icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--slds-c-badge-icon-color-foreground,var(--sds-c-badge-icon-color-foreground,var(--slds-g-color-neutral-base-50,#747474)));line-height:1;vertical-align:middle}.slds-badge__icon.slds-badge__icon_inverse{/*! @css-var-fallback color */--slds-c-badge-icon-color-foreground:var(--slds-c-badge-icon-inverse-color-foreground, currentColor)}.slds-badge__icon_left{margin-right:.25rem}.slds-badge__icon_right{margin-left:.25rem}.slds-breadcrumb .slds-breadcrumb__item,.slds-breadcrumb .slds-list__item{position:relative}.slds-breadcrumb .slds-breadcrumb__item:before,.slds-breadcrumb .slds-list__item:before{content:">";position:absolute;left:-.25rem}.slds-breadcrumb .slds-breadcrumb__item>a,.slds-breadcrumb .slds-list__item>a{display:block;padding-top:0;padding-right:var(--slds-c-breadcrumbs-spacing-inline-end,var(--sds-c-breadcrumbs-spacing-inline-end,.5rem));padding-bottom:0;padding-left:var(--slds-c-breadcrumbs-spacing-inline-start,var(--sds-c-breadcrumbs-spacing-inline-start,.5rem))}.slds-breadcrumb .slds-breadcrumb__item>a:hover,.slds-breadcrumb .slds-list__item>a:hover{text-decoration:none}.slds-breadcrumb .slds-breadcrumb__item:first-child>a,.slds-breadcrumb .slds-list__item:first-child>a{/*! @css-var-fallback padding-left */--slds-c-breadcrumbs-spacing-inline-start:0}.slds-breadcrumb .slds-breadcrumb__item:first-child:before,.slds-breadcrumb .slds-list__item:first-child:before{content:""}.slds-breadcrumb .slds-dropdown-trigger{margin-right:var(--slds-c-breadcrumbs-spacing-inline-end,var(--sds-c-breadcrumbs-spacing-inline-end,.5rem))}.slds-button-group-row{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-button-group-row .slds-button-group-item+.slds-button-group-item{margin-left:.25rem}.slds-button-group-row .slds-button-group-item .slds-button{margin:0}.slds-button-group,.slds-button-group-list{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-button-group .slds-button,.slds-button-group-list .slds-button{border-radius:0;border-width:1px}.slds-button-group .slds-button:focus,.slds-button-group-list .slds-button:focus{z-index:1}.slds-button-group .slds-button+.slds-button,.slds-button-group .slds-button+.slds-button--last .slds-button,.slds-button-group .slds-button+.slds-button_last .slds-button,.slds-button-group-list li+li .slds-button{margin-left:-1px}.slds-button-group .slds-button_brand+.slds-button--last .slds-button_icon-brand,.slds-button-group .slds-button_brand+.slds-button_last .slds-button_icon-brand,.slds-button-group-list li:last-child .slds-button_icon-brand{-webkit-box-shadow:inset 1px 0 0 var(--slds-g-color-neutral-base-100,#fff);box-shadow:inset 1px 0 0 var(--slds-g-color-neutral-base-100,#fff)}.slds-button-group .slds-button:first-child,.slds-button-group-list li:first-child .slds-button{border-radius:.25rem 0 0 .25rem}.slds-button-group .slds-button--last .slds-button,.slds-button-group .slds-button--last .slds-button:only-child,.slds-button-group .slds-button.slds-button--last,.slds-button-group .slds-button.slds-button_last,.slds-button-group .slds-button:last-child,.slds-button-group .slds-button_last .slds-button,.slds-button-group .slds-button_last .slds-button:only-child,.slds-button-group-list li:last-child .slds-button{border-radius:0 .25rem .25rem 0}.slds-button-group .slds-button:only-child,.slds-button-group-list li:only-child .slds-button{border-radius:.25rem}.slds-button.slds-button_first.slds-button_first{border-right:0;border-radius:.25rem 0 0 .25rem}.slds-button.slds-button_middle.slds-button_middle{border-radius:0;margin-left:-1px}.slds-button.slds-button_last.slds-button_last{border-radius:0 .25rem .25rem 0;margin-left:-1px}.slds-button-group+.slds-button,.slds-button-group+.slds-button-group,.slds-button-group+.slds-button-group-list,.slds-button-group-list+.slds-button,.slds-button-group-list+.slds-button-group,.slds-button-group-list+.slds-button-group-list{margin-left:.25rem}.slds-button-space-left{margin-left:.25rem}.slds-button--small,.slds-button_small{line-height:1.75rem;min-height:2rem}.slds-button{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:var(--slds-c-button-spacing-block-start,var(--sds-c-button-spacing-block-start,0));padding-right:var(--slds-c-button-spacing-inline-end,var(--sds-c-button-spacing-inline-end,0));padding-bottom:var(--slds-c-button-spacing-block-end,var(--sds-c-button-spacing-block-end,0));padding-left:var(--slds-c-button-spacing-inline-start,var(--sds-c-button-spacing-inline-start,0));background:0 0;background-color:var(--slds-c-button-color-background,var(--sds-c-button-color-background,transparent));background-clip:border-box;border-color:var(--slds-c-button-color-border,var(--sds-c-button-color-border,transparent));border-style:solid;border-width:var(--slds-c-button-sizing-border,var(--sds-c-button-sizing-border,1px));border-radius:var(--slds-c-button-radius-border,var(--sds-c-button-radius-border,.25rem));-webkit-box-shadow:var(--slds-c-button-shadow,var(--sds-c-button-shadow));box-shadow:var(--slds-c-button-shadow,var(--sds-c-button-shadow));line-height:var(--slds-c-button-line-height,var(--sds-c-button-line-height,1.875rem));text-decoration:none;color:var(--slds-c-button-text-color,var(--sds-c-button-text-color,#0176d3));-webkit-appearance:none;white-space:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-button:active,.slds-button:focus,.slds-button:hover,.slds-button:visited{text-decoration:none}.slds-button:focus,.slds-button:hover{--slds-c-button-color-border:var(--slds-c-button-color-border-hover);--slds-c-button-color-background:var(--slds-c-button-color-background-hover);color:var(--slds-c-button-text-color-hover,var(--sds-c-button-text-color-hover,#014486))}.slds-button:focus{-webkit-box-shadow:var(--slds-c-button-shadow-focus,var(--sds-c-button-shadow-focus,0 0 3px #0176d3));box-shadow:var(--slds-c-button-shadow-focus,var(--sds-c-button-shadow-focus,0 0 3px #0176d3));outline:0}.slds-button:active{color:var(--slds-c-button-text-color-active,var(--sds-c-button-text-color-active,#014486));background-color:var(--slds-c-button-color-background-active);border-color:var(--slds-c-button-color-border-active)}.slds-button:disabled,.slds-button[disabled]{background-color:transparent;border-color:transparent;color:var(--slds-g-color-neutral-base-80,#c9c9c9);cursor:default}.slds-button:disabled *,.slds-button[disabled] *{pointer-events:none}.slds-button a{/*! @css-var-fallback color */--slds-c-button-text-color:currentColor}.slds-button:active .slds-button__icon,.slds-button:disabled .slds-button__icon,.slds-button:focus .slds-button__icon,.slds-button:hover .slds-button__icon,.slds-button[disabled] .slds-button__icon{fill:currentColor;pointer-events:none}.slds-button+.slds-button-group,.slds-button+.slds-button-group-list{margin-left:.25rem}.slds-button+.slds-button{margin-left:.25rem}a.slds-button{text-align:center}a.slds-button:focus{/*! @css-var-fallback box-shadow */--slds-c-button-shadow-focus:var(--sds-c-button-shadow-focus, 0 0 3px #0176d3);outline:0}a.slds-button--brand:focus,a.slds-button--brand:hover,a.slds-button_brand:focus,a.slds-button_brand:hover{color:var(--slds-c-button-brand-text-color-hover,var(--sds-c-button-brand-text-color-hover,var(--slds-g-link-text-color-hover,var(--slds-g-color-neutral-base-100,#fff))))}a.slds-button--destructive:focus,a.slds-button--destructive:hover,a.slds-button_destructive:focus,a.slds-button_destructive:hover{color:var(--slds-c-button-destructive-text-color,var(--sds-c-button-destructive-text-color,var(--slds-g-color-neutral-base-100,#fff)))}a.slds-button_text-destructive:focus,a.slds-button_text-destructive:hover{color:var(--slds-c-button-text-destructive-text-color-hover,var(--sds-c-button-text-destructive-text-color-hover,var(--slds-g-color-error-base-30,#ba0517)))}a.slds-button--success:focus,a.slds-button--success:hover,a.slds-button_success:focus,a.slds-button_success:hover{color:var(--slds-c-button-success-text-color-hover,var(--sds-c-button-success-text-color-hover,var(--slds-g-color-neutral-base-100,#fff)))}a.slds-button--inverse:focus,a.slds-button_inverse:focus{/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-inverse-color-border-focus, var(--sds-c-button-inverse-color-border-focus, + var(--slds-g-color-neutral-base-100, #f3f3f3)));/*! @css-var-fallback box-shadow */--slds-c-button-shadow:var(--slds-c-button-inverse-shadow-focus, var(--sds-c-button-inverse-shadow-focus, 0 0 3px #f3f3f3));outline:0}.slds-button--reset,.slds-button_reset{font-size:inherit;color:inherit;line-height:inherit;padding:0;background:0 0;border:0;text-align:inherit}.slds-button--neutral,.slds-button_neutral{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-neutral-spacing-inline-start, var(--sds-c-button-neutral-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-neutral-spacing-inline-end, var(--sds-c-button-neutral-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-neutral-color-background, var(--sds-c-button-neutral-color-background, var(--slds-g-color-neutral-base-100, white)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-neutral-color-border, var(--sds-c-button-neutral-color-border, var(--slds-g-color-border-base-4, #c9c9c9)))}.slds-button--neutral:focus,.slds-button--neutral:hover,.slds-button_neutral:focus,.slds-button_neutral:hover{/*! @css-var-fallback background-color */--slds-c-button-color-background-hover:var(--slds-c-button-neutral-color-background-hover, var(--sds-c-button-neutral-color-background-hover, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--slds-c-button-neutral-color-border-hover, var(--sds-c-button-neutral-color-border-hover, var(--slds-g-color-border-base-4, #c9c9c9)))}.slds-button--neutral:active,.slds-button_neutral:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-neutral-color-background-active, var(--sds-c-button-neutral-color-background-active, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--slds-c-button-neutral-color-border-active, var(--sds-c-button-neutral-color-border-active, var(--slds-g-color-border-base-4, #c9c9c9)))}.slds-button--neutral:disabled,.slds-button--neutral[disabled],.slds-button_neutral:disabled,.slds-button_neutral[disabled]{background-color:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-border-base-4,#c9c9c9)}.slds-button--brand,.slds-button_brand{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-brand-spacing-inline-start, var(--sds-c-button-brand-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-brand-spacing-inline-end, var(--sds-c-button-brand-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-brand-color-background, var(--sds-c-button-brand-color-background, #0176d3));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-brand-color-border, var(--sds-c-button-brand-color-border, #0176d3));/*! @css-var-fallback color */--slds-c-button-text-color:var(--slds-c-button-brand-text-color, var(--sds-c-button-brand-text-color, var(--slds-g-color-neutral-base-100, white)))}.slds-button--brand:focus,.slds-button--brand:hover,.slds-button_brand:focus,.slds-button_brand:hover{/*! @css-var-fallback background-color */--slds-c-button-color-background-hover:var(--slds-c-button-brand-color-background-hover, var(--sds-c-button-brand-color-background-hover, #014486));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--slds-c-button-brand-color-border-hover, var(--sds-c-button-brand-color-border-hover, #014486));/*! @css-var-fallback color */--slds-c-button-text-color-hover:var(--slds-c-button-brand-text-color-hover, var(--sds-c-button-brand-text-color-hover, var(--slds-g-link-text-color-hover, white)))}.slds-button--brand:active,.slds-button_brand:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-brand-color-background-active, var(--sds-c-button-brand-color-background-active, #014486));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--sds-c-button-brand-color-border-active, var(--sds-c-button-brand-color-border-active, #014486));/*! @css-var-fallback color */--slds-c-button-text-color-active:var(--slds-c-button-brand-text-color-active, var(--sds-c-button-brand-text-color-active, var(--slds-g-color-neutral-base-100, white)))}.slds-button--brand:disabled,.slds-button--brand[disabled],.slds-button_brand:disabled,.slds-button_brand[disabled]{background-color:var(--slds-g-color-neutral-base-80,#c9c7c5);border-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button_outline-brand{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-outline-brand-spacing-inline-start, var(--sds-c-button-outline-brand-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-outline-brand-spacing-inline-end, var(--sds-c-button-outline-brand-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-outline-brand-color-background, var(--sds-c-button-outline-brand-color-background, var(--slds-g-color-neutral-base-100, white)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-outline-brand-color-border, var(--sds-c-button-outline-brand-color-border, #0176d3))}.slds-button_outline-brand:focus,.slds-button_outline-brand:hover{/*! @css-var-fallback background-color */--slds-c-button-color-background-hover:var(--slds-c-button-outline-brand-color-background-hover, var(--sds-c-button-outline-brand-color-background-hover, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--slds-c-button-outline-brand-color-border-hover, var(--sds-c-button-outline-brand-color-border-hover, #0176d3))}.slds-button_outline-brand:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-outline-brand-color-background-active, var(--sds-c-button-outline-brand-color-background-active, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--sds-c-button-outline-brand-color-border-active, var(--sds-c-button-outline-brand-color-border-active, #0176d3))}.slds-button_outline-brand:disabled,.slds-button_outline-brand[disabled]{background-color:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-border-base-4,#c9c9c9)}.slds-button--inverse,.slds-button_inverse{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-inverse-spacing-inline-start, var(--sds-c-button-inverse-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-inverse-spacing-inline-end, var(--sds-c-button-inverse-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-inverse-color-background, var(--sds-c-button-inverse-color-background, rgba(0, 0, 0, 0)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-inverse-color-border, var(--sds-c-button-inverse-color-border, var(--slds-g-color-border-base-4, #c9c9c9)))}.slds-button--inverse:focus,.slds-button--inverse:hover,.slds-button_inverse:focus,.slds-button_inverse:hover{/*! @css-var-fallback border-color */--slds-c-button-color-background-hover:var(--slds-c-button-inverse-color-background-hover, var(--sds-c-button-inverse-color-background-hover, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--slds-c-button-inverse-color-border-hover, var(--sds-c-button-inverse-color-border-hover, var(--slds-g-color-border-base-4, #c9c9c9)))}.slds-button--inverse:active,.slds-button_inverse:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-inverse-color-background-active, var(--sds-c-button-inverse-color-background-active, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--slds-c-button-inverse-color-border-active, var(--sds-c-button-inverse-color-border-active, var(--slds-g-color-border-base-4, #c9c9c9)))}.slds-button--inverse:disabled,.slds-button--inverse[disabled],.slds-button_inverse:disabled,.slds-button_inverse[disabled]{background-color:rgba(0,0,0,0);border-color:rgba(255,255,255,.15)}.slds-button--icon-border-inverse,.slds-button--icon-border-inverse:link,.slds-button--icon-border-inverse:visited,.slds-button--inverse,.slds-button--inverse:link,.slds-button--inverse:visited,.slds-button_icon-border-inverse,.slds-button_icon-border-inverse:link,.slds-button_icon-border-inverse:visited,.slds-button_inverse,.slds-button_inverse:link,.slds-button_inverse:visited{/*! @css-var-fallback color */--slds-c-button-text-color:var(--slds-c-button-inverse-text-color, var(--sds-c-button-inverse-text-color, var(--slds-g-color-neutral-base-100, #f3f3f3)))}.slds-button--icon-border-inverse:focus,.slds-button--icon-border-inverse:hover,.slds-button--inverse:focus,.slds-button--inverse:hover,.slds-button_icon-border-inverse:focus,.slds-button_icon-border-inverse:hover,.slds-button_inverse:focus,.slds-button_inverse:hover{/*! @css-var-fallback color */--slds-c-button-text-color-hover:var(--slds-c-button-inverse-text-color-hover, var(--sds-c-button-inverse-text-color-hover, var(--slds-g-link-color, #0176d3)))}.slds-button--icon-border-inverse:focus,.slds-button--inverse:focus,.slds-button_icon-border-inverse:focus,.slds-button_inverse:focus{/*! @css-var-fallback box-shadow */--slds-c-button-shadow:var(--sds-c-button-inverse-shadow-focus, var(--sds-c-button-inverse-shadow-focus, 0 0 3px #f3f3f3));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-g-color-neutral-base-100, #f3f3f3);outline:0}.slds-button--icon-border-inverse:active,.slds-button--inverse:active,.slds-button_icon-border-inverse:active,.slds-button_inverse:active{/*! @css-var-fallback color */--slds-c-button-text-color-active:var(--slds-c-button-inverse-text-color-active, var(--sds-c-button-inverse-text-color-active, var(--slds-g-link-color, #0176d3)))}.slds-button--icon-border-inverse:disabled,.slds-button--icon-border-inverse[disabled],.slds-button--inverse:disabled,.slds-button--inverse[disabled],.slds-button_icon-border-inverse:disabled,.slds-button_icon-border-inverse[disabled],.slds-button_inverse:disabled,.slds-button_inverse[disabled]{color:rgba(255,255,255,.5)}.slds-button--destructive,.slds-button_destructive{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-destructive-spacing-inline-start, var(--sds-c-button-destructive-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-destructive-spacing-inline-end, var(--sds-c-button-destructive-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-destructive-color-background, var(--sds-c-button-destructive-color-background, var(--slds-g-color-error-base-40, #ba0517)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-destructive-color-border, var(--sds-c-button-destructive-color-border, var(--slds-g-color-error-base-40, #ba0517)));/*! @css-var-fallback color */--slds-c-button-text-color:var(--slds-c-button-destructive-text-color, + var(--sds-c-button-destructive-text-color, var(--slds-g-color-neutral-base-100, white)))}.slds-button--destructive:focus,.slds-button--destructive:hover,.slds-button_destructive:focus,.slds-button_destructive:hover{/*! @css-var-fallback background-color */--slds-c-button-color-background-hover:var(--slds-c-button-destructive-color-background-hover, var(--sds-c-button-destructive-color-background-hover, var(--slds-g-color-error-base-30, #8e030f)));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--sds-c-button-destructive-color-border-hover, var(--sds-c-button-destructive-color-border-hover, var(--slds-g-color-error-base-40, #ba0517)));/*! @css-var-fallback color */--slds-c-button-text-color-hover:var(--sds-c-button-destructive-text-color-hover, var(--sds-c-button-destructive-text-color-hover, var(--slds-g-color-neutral-base-100, white)))}.slds-button--destructive:active,.slds-button_destructive:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-destructive-color-background-active, var(--sds-c-button-destructive-color-background-active, var(--slds-g-color-error-base-30, #8e030f)));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--slds-c-button-destructive-color-border-active, var(--sds-c-button-destructive-color-border-active, var(--slds-g-color-error-base-30, #8e030f)));/*! @css-var-fallback color */--slds-c-button-text-color-active:var(--slds-c-button-destructive-text-color-active, var(--sds-c-button-destructive-text-color-active, var(--slds-g-color-neutral-base-100, white)))}.slds-button--destructive:disabled,.slds-button--destructive[disabled],.slds-button_destructive:disabled,.slds-button_destructive[disabled]{background-color:var(--slds-g-color-neutral-base-80,#c9c7c5);border-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button_text-destructive{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-text-destructive-spacing-inline-start, var(--sds-c-button-text-destructive-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-text-destructive-spacing-inline-end, var(--sds-c-button-text-destructive-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-text-destructive-color-background, var(--sds-c-button-text-destructive-color-background, var(--slds-g-color-neutral-base-100, white)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-text-destructive-color-border, var(--sds-c-button-text-destructive-color-border, var(--slds-g-color-border-base-4, #c9c9c9)));/*! @css-var-fallback color */--slds-c-button-text-color:var(--slds-c-button-text-destructive-text-color, var(--sds-c-button-text-destructive-text-color, var(--slds-g-color-error-base-30, #ea001e)))}.slds-button_text-destructive:focus,.slds-button_text-destructive:hover{/*! @css-var-fallback background-color */--slds-c-button-color-background-hover:var(--slds-c-button-text-destructive-color-background-hover, var(--sds-c-button-text-destructive-color-background-hover, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--slds-c-button-text-destructive-color-border-hover, var(--sds-c-button-text-destructive-color-border-hover, var(--slds-g-color-border-base-4, #c9c9c9)));/*! @css-var-fallback color */--slds-c-button-text-color-hover:var(--sds-c-button-text-destructive-text-color-hover, var(--sds-c-button-text-destructive-text-color-hover, var(--slds-g-color-error-base-30, #ba0517)))}.slds-button_text-destructive:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-text-destructive-color-background-active, var(--sds-c-button-text-destructive-color-background-active, var(--slds-g-color-neutral-base-95, #f3f3f3)));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--sds-c-button-text-destructive-color-border-active, var(--sds-c-button-text-destructive-color-border-active, var(--slds-g-color-border-base-4, #c9c9c9)));/*! @css-var-fallback color */--slds-c-button-text-color-active:var(--slds-c-button-text-destructive-text-color-active, var(--sds-c-button-text-destructive-text-color-active, var(--slds-g-color-error-base-30, #ba0517)))}.slds-button_text-destructive:disabled,.slds-button_text-destructive[disabled]{background-color:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-border-base-4,#c9c9c9);color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-button--success,.slds-button_success{/*! @css-var-fallback padding-left */--slds-c-button-spacing-inline-start:var(--slds-c-button-success-spacing-inline-start, var(--sds-c-button-success-spacing-inline-start, 1rem));/*! @css-var-fallback padding-right */--slds-c-button-spacing-inline-end:var(--slds-c-button-success-spacing-inline-end, var(--sds-c-button-success-spacing-inline-end, 1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-success-color-background, var(--sds-c-button-success-color-background, var(--slds-g-color-success-base-70, #45c65a)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-success-color-border, var(--sds-c-button-success-color-border, var(--slds-g-color-success-base-50, #91db8b)));/*! @css-var-fallback color */--slds-c-button-text-color:var(--slds-c-button-success-text-color, var(--sds-c-button-success-text-color, var(--slds-g-color-neutral-base-10, #181818)))}.slds-button--success:focus,.slds-button--success:hover,.slds-button_success:focus,.slds-button_success:hover{/*! @css-var-fallback background-color */--slds-c-button-color-background-hover:var(--slds-c-button-success-color-background-hover, var(--sds-c-button-success-color-background-hover, var(--slds-g-color-success-base-50, #2e844a)));/*! @css-var-fallback border-color */--slds-c-button-color-border-hover:var(--slds-c-button-success-color-border-hover, var(--sds-c-button-success-color-border-hover, var(--slds-g-color-success-base-50, #2e844a)));/*! @css-var-fallback color */--slds-c-button-text-color-hover:var(--slds-c-button-success-text-color-hover, var(--sds-c-button-success-text-color-hover, var(--slds-g-color-neutral-base-100, white)))}.slds-button--success:active,.slds-button_success:active{/*! @css-var-fallback background-color */--slds-c-button-color-background-active:var(--slds-c-button-success-color-background-active, var(--sds-c-button-success-color-background-active, var(--slds-g-color-success-base-50, #2e844a)));/*! @css-var-fallback border-color */--slds-c-button-color-border-active:var(--slds-c-button-success-color-border-active, var(--sds-c-button-success-color-border-active, var(--slds-g-color-success-base-50, #2e844a)));/*! @css-var-fallback color */--slds-c-button-text-color-active:var(--slds-c-button-success-text-color-active, var(--sds-c-button-success-text-color-active, var(--slds-g-color-neutral-base-100, white)))}.slds-button--success:disabled,.slds-button--success[disabled],.slds-button_success:disabled,.slds-button_success[disabled]{background-color:var(--slds-g-color-neutral-base-80,#c9c7c5);border-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button__icon{width:.875rem;height:.875rem;fill:var(--slds-c-icon-color-foreground,currentColor)}.slds-button__icon--large,.slds-button__icon_large{width:1.5rem;height:1.5rem}.slds-button__icon--small,.slds-button__icon_small{width:.75rem;height:.75rem}.slds-button__icon--x-small,.slds-button__icon_x-small{width:.5rem;height:.5rem}.slds-button__icon--left,.slds-button__icon_left{margin-right:.5rem}.slds-button__icon--right,.slds-button__icon_right{margin-left:.5rem}.slds-button_full-width{font-size:inherit;color:inherit;line-height:inherit;padding:0;background:0 0;border:0;text-align:inherit;width:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.slds-button_full-width:focus{/*! @css-var-fallback box-shadow */--slds-c-button-shadow:none}.slds-button_stretch{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%}.slds-button__icon--stateful,.slds-button__icon_stateful{width:.75rem;height:.75rem;fill:currentColor}.slds-button--neutral.slds-is-selected,.slds-button_neutral.slds-is-selected{/*! @css-var-fallback background-color */--slds-c-button-neutral-color-background:var(--slds-c-button-stateful-color-background-selected, transparent);/*! @css-var-fallback border-color */--slds-c-button-neutral-color-border:var(--slds-c-button-stateful-color-border-selected, transparent)}.slds-button--neutral.slds-is-selected:focus:not([disabled]),.slds-button--neutral.slds-is-selected:hover:not([disabled]),.slds-button_neutral.slds-is-selected:focus:not([disabled]),.slds-button_neutral.slds-is-selected:hover:not([disabled]){/*! @css-var-fallback background-color */--slds-c-button-neutral-color-background-hover:var(--slds-c-button-stateful-color-background-selected-hover, var(--slds-g-color-neutral-base-95, #f3f3f3));/*! @css-var-fallback border-color */--slds-c-button-neutral-color-border-hover:var(--slds-c-button-stateful-color-border-selected-hover, var(--slds-g-color-border-base-1, #c9c9c9))}.slds-button--neutral.slds-is-selected:active:not([disabled]),.slds-button_neutral.slds-is-selected:active:not([disabled]){/*! @css-var-fallback background-color */--slds-c-button-neutral-color-background-active:var(--slds-c-button-stateful-color-background-selected-active, var(--slds-g-color-neutral-base-95, #f3f3f3))}.slds-button--inverse.slds-is-selected,.slds-button_inverse.slds-is-selected{border-color:transparent}.slds-button_stateful .slds-text-not-selected,.slds-button_stateful .slds-text-selected,.slds-button_stateful .slds-text-selected-focus{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-not-selected .slds-text-selected{display:none}.slds-not-selected .slds-text-selected-focus{display:none}.slds-not-selected .slds-text-not-selected{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-is-selected-clicked .slds-text-selected,.slds-is-selected[disabled] .slds-text-selected,.slds-is-selected[disabled]:focus .slds-text-selected,.slds-is-selected[disabled]:hover .slds-text-selected{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-is-selected-clicked .slds-text-selected-focus,.slds-is-selected[disabled] .slds-text-selected-focus,.slds-is-selected[disabled]:focus .slds-text-selected-focus,.slds-is-selected[disabled]:hover .slds-text-selected-focus{display:none}.slds-is-selected-clicked .slds-text-not-selected,.slds-is-selected[disabled] .slds-text-not-selected,.slds-is-selected[disabled]:focus .slds-text-not-selected,.slds-is-selected[disabled]:hover .slds-text-not-selected{display:none}.slds-is-selected .slds-text-not-selected{display:none}.slds-is-selected .slds-text-selected{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-is-selected .slds-text-selected-focus{display:none}.slds-is-selected:focus .slds-text-not-selected,.slds-is-selected:hover .slds-text-not-selected{display:none}.slds-is-selected:focus .slds-text-selected,.slds-is-selected:hover .slds-text-selected{display:none}.slds-is-selected:focus .slds-text-selected-focus,.slds-is-selected:hover .slds-text-selected-focus{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-button_dual-stateful .slds-text-not-pressed{display:block}.slds-button_dual-stateful .slds-text-pressed{display:none}.slds-button_dual-stateful.slds-is-pressed{padding-left:var(--slds-c-button-brand-spacing-inline-start,var(--sds-c-button-brand-spacing-inline-start,1rem));padding-right:var(--slds-c-button-brand-spacing-inline-end,var(--sds-c-button-brand-spacing-inline-end,1rem));text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:border .15s linear;transition:border .15s linear;/*! @css-var-fallback background-color */--slds-c-button-color-background:var(--slds-c-button-dual-stateful-color-background-selected, + var(--slds-c-button-brand-color-background, + var(--sds-c-button-brand-color-background, #0176d3)));/*! @css-var-fallback border-color */--slds-c-button-color-border:var(--slds-c-button-dual-stateful-color-border-selected, + var(--slds-c-button-brand-color-border, + var(--sds-c-button-brand-color-border, #0176d3)));/*! @css-var-fallback color */--slds-c-button-text-color:var(--slds-c-button-dual-stateful-text-color-selected, + var(--slds-c-button-brand-text-color, + var(--sds-c-button-brand-text-color, var(--slds-g-color-neutral-base-100, white))))}.slds-button_dual-stateful.slds-is-pressed:focus,.slds-button_dual-stateful.slds-is-pressed:hover{/*! @css-var-fallback background-color */--slds-c-button-dual-stateful-color-background-selected:var(--slds-c-button-dual-stateful-color-background-selected-hover, + var(--slds-c-button-brand-color-background-hover, + var(--sds-c-button-brand-color-background-hover, #014486)));/*! @css-var-fallback border-color */--slds-c-button-dual-stateful-color-border-selected:var(--slds-c-button-dual-stateful-color-border-selected-hover, + var(--slds-c-button-brand-color-border-hover, + var(--sds-c-button-brand-color-border-hover, #014486)));/*! @css-var-fallback color */--slds-c-button-dual-stateful-text-color-selected:var(--slds-c-button-dual-stateful-text-color-selected-hover, + var(--slds-c-button-brand-text-color-hover, + var(--sds-c-button-brand-text-color-hover, var(--slds-g-color-neutral-base-100, white))))}.slds-button_dual-stateful.slds-is-pressed .slds-text-not-pressed{display:none}.slds-button_dual-stateful.slds-is-pressed .slds-text-pressed{display:block}.slds-button--icon-bare,.slds-button_icon-bare{line-height:1;vertical-align:middle;color:var(--slds-g-color-neutral-base-50,#747474)}.slds-button--icon,.slds-button--icon-border,.slds-button--icon-border-filled,.slds-button--icon-border-inverse,.slds-button--icon-container,.slds-button--icon-error,.slds-button--icon-inverse,.slds-button--icon-more,.slds-button--icon-warning,.slds-button_icon,.slds-button_icon-border,.slds-button_icon-border-filled,.slds-button_icon-border-inverse,.slds-button_icon-container,.slds-button_icon-error,.slds-button_icon-inverse,.slds-button_icon-more,.slds-button_icon-warning{line-height:1;vertical-align:middle;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--slds-g-color-neutral-base-50,#747474);-ms-flex-negative:0;flex-shrink:0}.slds-button--icon-border,.slds-button--icon-border-filled,.slds-button--icon-border-inverse,.slds-button--icon-container,.slds-button--icon-container-more,.slds-button--icon-more,.slds-button_icon-border,.slds-button_icon-border-filled,.slds-button_icon-border-inverse,.slds-button_icon-brand,.slds-button_icon-container,.slds-button_icon-container-more,.slds-button_icon-more{width:2rem;height:2rem}.slds-button--icon-border,.slds-button--icon-border-filled,.slds-button_icon-border,.slds-button_icon-border-filled{line-height:1;vertical-align:middle;color:var(--slds-g-color-neutral-base-50,#747474);border:1px solid var(--slds-g-color-border-base-1,#c9c9c9);-webkit-transition:border .15s linear;transition:border .15s linear;border-color:var(--slds-g-color-border-base-4,#c9c9c9)}.slds-button--icon-border-filled:disabled,.slds-button--icon-border-filled[disabled],.slds-button--icon-border:disabled,.slds-button--icon-border[disabled],.slds-button_icon-border-filled:disabled,.slds-button_icon-border-filled[disabled],.slds-button_icon-border:disabled,.slds-button_icon-border[disabled]{color:var(--slds-g-color-neutral-base-80,#c9c9c9);border-color:var(--slds-g-color-border-base-4,#c9c9c9)}.slds-button--icon-border-inverse,.slds-button_icon-border-inverse{background-color:rgba(0,0,0,0);border-color:var(--slds-g-color-border-base-4,#c9c9c9)}.slds-button--icon-border-inverse:disabled,.slds-button--icon-border-inverse[disabled],.slds-button_icon-border-inverse:disabled,.slds-button_icon-border-inverse[disabled]{background-color:rgba(0,0,0,0);border-color:rgba(255,255,255,.15)}.slds-button_icon-brand{background-color:#0176d3;border-color:#0176d3;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button_icon-brand:active,.slds-button_icon-brand:link,.slds-button_icon-brand:visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button_icon-brand:focus,.slds-button_icon-brand:hover{background-color:#014486;border-color:#014486;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button_icon-brand:active{background-color:#014486;border-color:#014486}.slds-button_icon-brand:disabled,.slds-button_icon-brand[disabled]{background:var(--slds-g-color-neutral-base-80,#c9c7c5);border-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border-filled,.slds-button_icon-border-filled{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border-filled:disabled,.slds-button--icon-border-filled[disabled],.slds-button_icon-border-filled:disabled,.slds-button_icon-border-filled[disabled]{border-color:var(--slds-g-color-border-base-4,#c9c9c9);background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border-inverse,.slds-button--icon-inverse,.slds-button_icon-border-inverse,.slds-button_icon-inverse{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border-inverse:focus,.slds-button--icon-border-inverse:hover,.slds-button--icon-inverse:focus,.slds-button--icon-inverse:hover,.slds-button_icon-border-inverse:focus,.slds-button_icon-border-inverse:hover,.slds-button_icon-inverse:focus,.slds-button_icon-inverse:hover{color:rgba(255,255,255,.75)}.slds-button--icon-border-inverse:focus,.slds-button--icon-inverse:focus,.slds-button_icon-border-inverse:focus,.slds-button_icon-inverse:focus{outline:0;-webkit-box-shadow:0 0 3px #f3f3f3;box-shadow:0 0 3px #f3f3f3;border:1px solid var(--slds-g-color-neutral-base-100,#f3f3f3)}.slds-button--icon-border-inverse:active,.slds-button--icon-inverse:active,.slds-button_icon-border-inverse:active,.slds-button_icon-inverse:active{color:rgba(255,255,255,.5)}.slds-button--icon-border-inverse:disabled,.slds-button--icon-border-inverse[disabled],.slds-button--icon-inverse:disabled,.slds-button--icon-inverse[disabled],.slds-button_icon-border-inverse:disabled,.slds-button_icon-border-inverse[disabled],.slds-button_icon-inverse:disabled,.slds-button_icon-inverse[disabled]{color:rgba(255,255,255,.15)}.slds-button--icon-error,.slds-button--icon-error:active,.slds-button--icon-error:focus,.slds-button--icon-error:hover,.slds-button_icon-error,.slds-button_icon-error:active,.slds-button_icon-error:focus,.slds-button_icon-error:hover{color:var(--slds-g-color-error-base-40,#ea001e)}.slds-button--icon-warning,.slds-button--icon-warning:active,.slds-button--icon-warning:focus,.slds-button--icon-warning:hover,.slds-button_icon-warning,.slds-button_icon-warning:active,.slds-button_icon-warning:focus,.slds-button_icon-warning:hover{color:var(--slds-g-color-warning-base-50,#fe9339)}.slds-button_icon-current-color{color:currentColor}.slds-button--icon-large,.slds-button_icon-large{width:3rem;height:3rem}.slds-button--icon-large .slds-button__icon,.slds-button_icon-large .slds-button__icon{width:1.5rem;height:1.5rem}.slds-button--icon-small,.slds-button_icon-small{width:1.5rem;height:1.5rem}.slds-button--icon-x-small,.slds-button_icon-x-small{width:1.25rem;height:1.25rem;line-height:1}.slds-button--icon-x-small .slds-button__icon,.slds-button_icon-x-small .slds-button__icon{width:.75rem;height:.75rem}.slds-button--icon-xx-small,.slds-button_icon-xx-small{width:1rem;height:1rem;line-height:1}.slds-button--icon-xx-small .slds-button__icon,.slds-button_icon-xx-small .slds-button__icon{width:.5rem;height:.5rem}.slds-button--icon-more,.slds-button_icon-more{width:auto;line-height:1.875rem;padding:0 .5rem;background-color:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-border-base-4,#c9c9c9);color:var(--slds-g-color-neutral-base-50,#747474)}.slds-button--icon-more:focus .slds-button__icon,.slds-button--icon-more:hover .slds-button__icon,.slds-button_icon-more:focus .slds-button__icon,.slds-button_icon-more:hover .slds-button__icon{fill:#0176d3}.slds-button--icon-more:active .slds-button__icon,.slds-button_icon-more:active .slds-button__icon{fill:#014486}.slds-button--icon-more:disabled,.slds-button--icon-more[disabled],.slds-button_icon-more:disabled,.slds-button_icon-more[disabled]{cursor:default}.slds-button--icon-more:disabled .slds-button__icon,.slds-button--icon-more[disabled] .slds-button__icon,.slds-button_icon-more:disabled .slds-button__icon,.slds-button_icon-more[disabled] .slds-button__icon{fill:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-button--icon-container-more,.slds-button_icon-container-more{width:auto;line-height:1.875rem;padding:0 .5rem;vertical-align:middle}.slds-button__icon--hint,.slds-button__icon_hint{fill:var(--slds-g-color-neutral-base-50,#aeaeae)}.slds-button__icon--inverse-hint,.slds-button__icon_inverse-hint{fill:rgba(255,255,255,.5)}.slds-hint-parent .slds-button--icon-border-inverse,.slds-hint-parent .slds-button_icon-border-inverse{border-color:rgba(255,255,255,.5)}.slds-hint-parent .slds-button--icon-border-inverse:focus,.slds-hint-parent .slds-button_icon-border-inverse:focus{border-color:rgba(255,255,255,.75)}.slds-hint-parent:focus .slds-button--icon-border-inverse,.slds-hint-parent:focus .slds-button_icon-border-inverse,.slds-hint-parent:hover .slds-button--icon-border-inverse,.slds-hint-parent:hover .slds-button_icon-border-inverse{border-color:rgba(255,255,255,.75)}.slds-hint-parent:focus .slds-button__icon--hint,.slds-hint-parent:focus .slds-button__icon_hint,.slds-hint-parent:hover .slds-button__icon--hint,.slds-hint-parent:hover .slds-button__icon_hint{fill:var(--slds-g-color-neutral-base-40,#747474)}.slds-hint-parent:focus .slds-button__icon--inverse-hint,.slds-hint-parent:focus .slds-button__icon_inverse-hint,.slds-hint-parent:hover .slds-button__icon--inverse-hint,.slds-hint-parent:hover .slds-button__icon_inverse-hint{fill:rgba(255,255,255,.75)}.slds-hint-parent:focus .slds-button:disabled .slds-button__icon--hint,.slds-hint-parent:focus .slds-button:disabled .slds-button__icon_hint,.slds-hint-parent:hover .slds-button:disabled .slds-button__icon--hint,.slds-hint-parent:hover .slds-button:disabled .slds-button__icon_hint{fill:currentColor}.slds-button--icon-border.slds-is-selected,.slds-button--icon-container.slds-is-selected,.slds-button_icon-border-filled.slds-is-selected,.slds-button_icon-border-inverse.slds-is-selected,.slds-button_icon-border.slds-is-selected,.slds-button_icon-container.slds-is-selected{background-color:#0176d3;border-color:#0176d3;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border.slds-is-selected:active,.slds-button--icon-border.slds-is-selected:link,.slds-button--icon-border.slds-is-selected:visited,.slds-button--icon-container.slds-is-selected:active,.slds-button--icon-container.slds-is-selected:link,.slds-button--icon-container.slds-is-selected:visited,.slds-button_icon-border-filled.slds-is-selected:active,.slds-button_icon-border-filled.slds-is-selected:link,.slds-button_icon-border-filled.slds-is-selected:visited,.slds-button_icon-border-inverse.slds-is-selected:active,.slds-button_icon-border-inverse.slds-is-selected:link,.slds-button_icon-border-inverse.slds-is-selected:visited,.slds-button_icon-border.slds-is-selected:active,.slds-button_icon-border.slds-is-selected:link,.slds-button_icon-border.slds-is-selected:visited,.slds-button_icon-container.slds-is-selected:active,.slds-button_icon-container.slds-is-selected:link,.slds-button_icon-container.slds-is-selected:visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border.slds-is-selected:focus,.slds-button--icon-border.slds-is-selected:hover,.slds-button--icon-container.slds-is-selected:focus,.slds-button--icon-container.slds-is-selected:hover,.slds-button_icon-border-filled.slds-is-selected:focus,.slds-button_icon-border-filled.slds-is-selected:hover,.slds-button_icon-border-inverse.slds-is-selected:focus,.slds-button_icon-border-inverse.slds-is-selected:hover,.slds-button_icon-border.slds-is-selected:focus,.slds-button_icon-border.slds-is-selected:hover,.slds-button_icon-container.slds-is-selected:focus,.slds-button_icon-container.slds-is-selected:hover{background-color:#014486;border-color:#014486;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border.slds-is-selected:active,.slds-button--icon-container.slds-is-selected:active,.slds-button_icon-border-filled.slds-is-selected:active,.slds-button_icon-border-inverse.slds-is-selected:active,.slds-button_icon-border.slds-is-selected:active,.slds-button_icon-container.slds-is-selected:active{background-color:#014486;border-color:#014486}.slds-button--icon-border.slds-is-selected .slds-button__icon,.slds-button--icon-container.slds-is-selected .slds-button__icon,.slds-button_icon-border-filled.slds-is-selected .slds-button__icon,.slds-button_icon-border-inverse.slds-is-selected .slds-button__icon,.slds-button_icon-border.slds-is-selected .slds-button__icon,.slds-button_icon-container.slds-is-selected .slds-button__icon{fill:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border.slds-is-selected:focus .slds-button__icon,.slds-button--icon-border.slds-is-selected:hover .slds-button__icon,.slds-button--icon-container.slds-is-selected:focus .slds-button__icon,.slds-button--icon-container.slds-is-selected:hover .slds-button__icon,.slds-button_icon-border-filled.slds-is-selected:focus .slds-button__icon,.slds-button_icon-border-filled.slds-is-selected:hover .slds-button__icon,.slds-button_icon-border-inverse.slds-is-selected:focus .slds-button__icon,.slds-button_icon-border-inverse.slds-is-selected:hover .slds-button__icon,.slds-button_icon-border.slds-is-selected:focus .slds-button__icon,.slds-button_icon-border.slds-is-selected:hover .slds-button__icon,.slds-button_icon-container.slds-is-selected:focus .slds-button__icon,.slds-button_icon-container.slds-is-selected:hover .slds-button__icon{fill:var(--slds-g-color-neutral-base-100,#fff)}.slds-button--icon-border.slds-is-selected:disabled,.slds-button--icon-border.slds-is-selected[disabled],.slds-button--icon-container.slds-is-selected:disabled,.slds-button--icon-container.slds-is-selected[disabled],.slds-button_icon-border-filled.slds-is-selected:disabled,.slds-button_icon-border-filled.slds-is-selected[disabled],.slds-button_icon-border-inverse.slds-is-selected:disabled,.slds-button_icon-border-inverse.slds-is-selected[disabled],.slds-button_icon-border.slds-is-selected:disabled,.slds-button_icon-border.slds-is-selected[disabled],.slds-button_icon-container.slds-is-selected:disabled,.slds-button_icon-container.slds-is-selected[disabled]{background:var(--slds-g-color-neutral-base-80,#c9c7c5);border-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-color-picker{position:relative}.slds-color-picker .slds-form-error{padding-top:.5rem;color:var(--slds-g-color-error-base-40,#ea001e);font-size:.75rem}.slds-color-picker__summary-label{display:block}.slds-color-picker__summary-button{vertical-align:top;padding:.3rem .5rem;line-height:1;background:var(--slds-g-color-neutral-base-100,#fff);margin-right:.25rem}.slds-color-picker__summary-input{display:inline-block}.slds-color-picker__summary-input .slds-input{width:6rem}.slds-color-picker__selector{margin-top:.5rem}.slds-color-picker__selector.slds-popover{width:14rem}.slds-color-picker__selector .slds-popover__footer{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-color-picker__selector .slds-tabs_default__content{padding:.5rem 0 .25rem}.slds-color-picker__swatches{font-size:0}.slds-color-picker__swatches.slds-swatch{cursor:pointer}.slds-color-picker__swatch{display:inline-block;margin:.25rem}.slds-color-picker__swatch-trigger{display:inline-block}.slds-color-picker__swatch-trigger:active,.slds-color-picker__swatch-trigger:focus{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;border-radius:.25rem}.slds-color-picker__custom{padding:.25rem 0}.slds-color-picker__custom-range{position:relative;margin-bottom:.25rem;height:5rem;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;overflow:hidden}.slds-color-picker__custom-range:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:-webkit-gradient(linear,left bottom,left top,from(black),color-stop(1%,rgba(0,0,0,.9)),color-stop(99%,rgba(0,0,0,0))),-webkit-gradient(linear,left top,right top,color-stop(1%,#fff),to(rgba(255,255,255,0)));background:linear-gradient(to top,#000,rgba(0,0,0,.9) 1%,rgba(0,0,0,0) 99%),linear-gradient(to right,#fff 1%,rgba(255,255,255,0))}.slds-color-picker__range-indicator{-webkit-transform:translate3d(-.375rem,.375rem,0);transform:translate3d(-.375rem,.375rem,0);cursor:pointer;position:absolute;height:.75rem;width:.75rem;border:2px solid #fff;border-radius:50%;-webkit-box-shadow:0 2px 4px 4px rgba(0,0,0,.16),inset 0 2px 4px 4px rgba(0,0,0,.16);box-shadow:0 2px 4px 4px rgba(0,0,0,.16),inset 0 2px 4px 4px rgba(0,0,0,.16)}.slds-color-picker__range-indicator:focus{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-color-picker__hue-and-preview{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-color-picker__hue-and-preview .slds-swatch{margin-left:.25rem;height:1.5rem;width:1.5rem;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem}.slds-color-picker__hue-slider{-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0;height:1.5rem;width:100%;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(#ff1500),color-stop(#ff2b00),color-stop(#ff4000),color-stop(#f50),color-stop(#ff6a00),color-stop(#ff8000),color-stop(#ff9500),color-stop(#fa0),color-stop(#ffbf00),color-stop(#ffd500),color-stop(#ffea00),color-stop(yellow),color-stop(#eaff00),color-stop(#d5ff00),color-stop(#bfff00),color-stop(#af0),color-stop(#95ff00),color-stop(#80ff00),color-stop(#6aff00),color-stop(#5f0),color-stop(#40ff00),color-stop(#2bff00),color-stop(#15ff00),color-stop(lime),color-stop(#00ff15),color-stop(#00ff2b),color-stop(#00ff40),color-stop(#0f5),color-stop(#00ff6a),color-stop(#00ff80),color-stop(#00ff95),color-stop(#0fa),color-stop(#00ffbf),color-stop(#00ffd5),color-stop(#00ffea),color-stop(aqua),color-stop(#00eaff),color-stop(#00d5ff),color-stop(deepskyblue),color-stop(#0af),color-stop(#0095ff),color-stop(#0080ff),color-stop(#006aff),color-stop(#05f),color-stop(#0040ff),color-stop(#002bff),color-stop(#0015ff),color-stop(blue),color-stop(#1500ff),color-stop(#2b00ff),color-stop(#4000ff),color-stop(#50f),color-stop(#6a00ff),color-stop(#8000ff),color-stop(#9500ff),color-stop(#a0f),color-stop(#bf00ff),color-stop(#d500ff),color-stop(#ea00ff),color-stop(fuchsia),color-stop(#ff00ea),color-stop(#ff00d5),color-stop(#ff00bf),color-stop(#f0a),color-stop(#ff0095),color-stop(#ff0080),color-stop(#ff006a),color-stop(#f05),color-stop(#ff0040),color-stop(#ff002b),to(#ff0015));background:linear-gradient(to right,red,#ff1500,#ff2b00,#ff4000,#f50,#ff6a00,#ff8000,#ff9500,#fa0,#ffbf00,#ffd500,#ffea00,#ff0,#eaff00,#d5ff00,#bfff00,#af0,#95ff00,#80ff00,#6aff00,#5f0,#40ff00,#2bff00,#15ff00,#0f0,#00ff15,#00ff2b,#00ff40,#0f5,#00ff6a,#00ff80,#00ff95,#0fa,#00ffbf,#00ffd5,#00ffea,#0ff,#00eaff,#00d5ff,#00bfff,#0af,#0095ff,#0080ff,#006aff,#05f,#0040ff,#002bff,#0015ff,#00f,#1500ff,#2b00ff,#4000ff,#50f,#6a00ff,#8000ff,#9500ff,#a0f,#bf00ff,#d500ff,#ea00ff,#f0f,#ff00ea,#ff00d5,#ff00bf,#f0a,#ff0095,#ff0080,#ff006a,#f05,#ff0040,#ff002b,#ff0015)}.slds-color-picker__hue-slider::-webkit-slider-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none;cursor:pointer;height:calc(1.5rem - (1px * 2));width:.375rem;border:1px solid var(--slds-g-color-neutral-base-30,#444);border-radius:.125rem;background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-color-picker__hue-slider::-moz-range-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none;cursor:pointer;height:calc(1.5rem - (1px * 2));width:.375rem;border:1px solid var(--slds-g-color-neutral-base-30,#444);border-radius:.125rem;background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-color-picker__hue-slider::-ms-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none;cursor:pointer;height:calc(1.5rem - (1px * 2));width:.375rem;border:1px solid var(--slds-g-color-neutral-base-30,#444);border-radius:.125rem;background:var(--slds-g-color-neutral-base-95,#f3f3f3);height:1.5rem}.slds-color-picker__hue-slider:focus{outline:0}.slds-color-picker__hue-slider:focus::-webkit-slider-thumb{border-color:var(--slds-g-color-brand-base-60,#1b96ff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-color-picker__hue-slider:focus::-moz-range-thumb{border-color:var(--slds-g-color-brand-base-60,#1b96ff);box-shadow:0 0 3px #0176d3}.slds-color-picker__hue-slider:focus::-ms-thumb{border-color:var(--slds-g-color-brand-base-60,#1b96ff);box-shadow:0 0 3px #0176d3}.slds-color-picker__hue-slider::-moz-range-track{height:0}.slds-color-picker__hue-slider::-ms-track{height:0;border:0;background:0 0;color:transparent}.slds-color-picker__custom-inputs{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:.5rem}.slds-color-picker__custom-inputs .slds-form-element{-webkit-box-flex:flex-grow;-ms-flex:flex-grow;flex:flex-grow}.slds-color-picker__custom-inputs .slds-form-element:not(:first-child){margin-left:.25rem}.slds-color-picker__custom-inputs input{padding:0 .25rem}.slds-color-picker__custom-inputs abbr{cursor:text;text-decoration:none}.slds-color-picker__input-custom-hex{-webkit-box-flex:0;-ms-flex:none;flex:none;width:4.2rem}.slds-color-picker__input-custom-hex input{font-size:.75rem}.slds-color-picker__selector-footer{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-color-picker__selector-footer .slds-button{-webkit-box-flex:1;-ms-flex:1;flex:1}.slds-swatch{display:inline-block;vertical-align:middle;height:1.25rem;width:1.25rem;border-radius:.125rem;-webkit-box-shadow:var(--slds-g-color-neutral-base-10,inset 0 0 1px rgba(0,0,0,.4));box-shadow:var(--slds-g-color-neutral-base-10,inset 0 0 1px rgba(0,0,0,.4))}.slds-color-picker.slds-color-picker_swatches-only{width:13.3rem;padding:.5rem}.slds-color-picker.slds-color-picker_swatches-only .slds-color-picker__selector{margin:0}.slds-icon__container,.slds-icon_container{display:inline-block;border-radius:var(--slds-c-icon-radius-border,var(--sds-c-icon-radius-border,.25rem));line-height:1;background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,transparent))}.slds-icon__container--circle,.slds-icon__container_circle,.slds-icon_container--circle,.slds-icon_container_circle{/*! @css-var-fallback border-radius */--slds-c-icon-radius-border:50%;padding:.5rem}[dir=rtl] .slds-icon_flip{-webkit-transform:scaleX(-1);transform:scaleX(-1)}[class*=slds-icon-action-]{padding:.5rem;border-radius:50%}.slds-icon-action-new-custom18{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4dca76))}.slds-icon-action-new-custom29{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#bdd25f))}.slds-icon-action-edit-groups{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-action-new-custom9{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b9ee2))}.slds-icon-action-log-a-call{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#48c3cc))}.slds-icon-action-new-custom19{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3abeb1))}.slds-icon-action-filter{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fd90b5))}.slds-icon-action-user-activation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-opportunity-competitor{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-action-canvas{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8199af))}.slds-icon-action-change-record-type{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-notebook{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e6d478))}.slds-icon-action-docusign{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5080db))}.slds-icon-action-share-link{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7a9ae6))}.slds-icon-action-add-file{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-action-edit-relationship{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1dccbf))}.slds-icon-action-notebook{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e6d478))}.slds-icon-action-new-lead{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-action-new-custom-object{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a7d44d))}.slds-icon-action-new-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-action-question-post-action{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#32af5c))}.slds-icon-action-share-file{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#baac93))}.slds-icon-action-default-custom-object{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8199af))}.slds-icon-action-opportunity-team-member{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-action-add-photo-video{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00cdc0))}.slds-icon-action-sort{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fab9a5))}.slds-icon-action-call{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1fcaa0))}.slds-icon-action-concur{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4cc3c7))}.slds-icon-action-reject{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00c6b7))}.slds-icon-action-share-poll{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#699be1))}.slds-icon-action-scan-enabled{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1b96ff))}.slds-icon-action-following{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7dcf64))}.slds-icon-action-defer{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef7ead))}.slds-icon-action-opportunity-line-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-action-social-post{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ea74a2))}.slds-icon-action-share-post{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#65cae4))}.slds-icon-action-view-relationship{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-action-adjust-value{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#47b46c))}.slds-icon-action-upload{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-remove-relationship{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef6e64))}.slds-icon-action-freeze-user{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-person-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-action-bug{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef6e5d))}.slds-icon-action-apex{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#696e71))}.slds-icon-action-new-opportunity{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-action-fallback{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9895ee))}.slds-icon-action-dial-in{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8b9ae3))}.slds-icon-action-approval{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00c6b7))}.slds-icon-action-change-owner{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-task{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-action-priority{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fbb439))}.slds-icon-action-remove{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-web-link{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#56aadf))}.slds-icon-action-leave-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f39e58))}.slds-icon-action-manage-perm-sets{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-close{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef6e64))}.slds-icon-action-google-news{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f5675b))}.slds-icon-action-announcement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fe8f60))}.slds-icon-action-back{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0dc2d9))}.slds-icon-action-new-custom90{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#22a48a))}.slds-icon-action-download{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-custom80{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#659ad5))}.slds-icon-action-new-custom91{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#bf7b66))}.slds-icon-action-search{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#48adeb))}.slds-icon-action-new-event{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-action-new-custom70{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e769b4))}.slds-icon-action-new-custom81{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#da627f))}.slds-icon-action-new-custom92{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#517e82))}.slds-icon-action-refresh{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-share-thanks{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9696e))}.slds-icon-action-update{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#81b4d6))}.slds-icon-action-email{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#95aec5))}.slds-icon-action-join-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#779ef2))}.slds-icon-action-new-custom60{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#bf5a88))}.slds-icon-action-new-custom71{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e36ee3))}.slds-icon-action-new-custom82{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d15b97))}.slds-icon-action-new-custom93{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#904d4c))}.slds-icon-action-edit{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1dccbf))}.slds-icon-action-quote{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#88c651))}.slds-icon-action-dropbox{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#52aef9))}.slds-icon-action-description{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7dc37d))}.slds-icon-action-map{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#76c6ee))}.slds-icon-action-user{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#65cae4))}.slds-icon-action-reset-password{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-custom50{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#49bcd3))}.slds-icon-action-new-custom61{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f57376))}.slds-icon-action-new-custom72{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8d9bfb))}.slds-icon-action-new-custom83{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e7806f))}.slds-icon-action-new-custom94{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#439cba))}.slds-icon-action-clone{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ca1e9))}.slds-icon-action-script{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0070d2))}.slds-icon-action-delete{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e6717c))}.slds-icon-action-new-custom40{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#83c75e))}.slds-icon-action-new-custom51{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d8c760))}.slds-icon-action-new-custom62{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b92dc))}.slds-icon-action-new-custom73{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#679ef0))}.slds-icon-action-new-custom84{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f6707b))}.slds-icon-action-new-custom95{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8bcf6a))}.slds-icon-action-scan-disabled{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#939393))}.slds-icon-action-share{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-custom30{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f59f71))}.slds-icon-action-new-custom41{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#43b5b5))}.slds-icon-action-new-custom52{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ee8e6f))}.slds-icon-action-new-custom63{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7ccf60))}.slds-icon-action-new-custom74{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#41c8a0))}.slds-icon-action-new-custom85{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f26891))}.slds-icon-action-new-custom96{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6d9de3))}.slds-icon-action-log-event{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ca1e9))}.slds-icon-action-new-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#83b6ff))}.slds-icon-action-new-custom20{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#48c7c8))}.slds-icon-action-new-custom31{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb687f))}.slds-icon-action-new-custom42{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cfd05b))}.slds-icon-action-info{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-new-custom53{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f36e83))}.slds-icon-action-new-custom64{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#618fd8))}.slds-icon-action-new-custom75{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cd9f65))}.slds-icon-action-new-custom86{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e260ab))}.slds-icon-action-flow{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-action-new-custom97{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#dd6085))}.slds-icon-action-submit-for-approval{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#50cc7a))}.slds-icon-action-new{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#33bce7))}.slds-icon-action-new-campaign{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f49756))}.slds-icon-action-new-custom10{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6488e3))}.slds-icon-action-new-custom21{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8a7aed))}.slds-icon-action-new-custom32{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#38c393))}.slds-icon-action-new-custom43{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f93f9))}.slds-icon-action-new-custom54{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ea70b1))}.slds-icon-action-new-custom65{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f279ab))}.slds-icon-action-new-custom76{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#db6d7a))}.slds-icon-action-new-custom87{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d876e5))}.slds-icon-action-new-custom98{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e1be5c))}.slds-icon-action-new-case{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-action-new-custom100{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e15d76))}.slds-icon-action-new-custom1{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff7b84))}.slds-icon-action-new-contact{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a094ed))}.slds-icon-action-office-365{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff8041))}.slds-icon-action-new-custom11{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8784ea))}.slds-icon-action-new-custom22{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8b85f9))}.slds-icon-action-new-custom33{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#97cf5d))}.slds-icon-action-new-custom44{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#c8ca58))}.slds-icon-action-new-custom55{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d66ee0))}.slds-icon-action-new-custom66{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d8be5f))}.slds-icon-action-new-custom77{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b55d5b))}.slds-icon-action-new-custom88{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#996fe6))}.slds-icon-action-new-custom99{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f0856e))}.slds-icon-action-add-contact{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a094ed))}.slds-icon-action-evernote{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#86c86f))}.slds-icon-action-new-custom2{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cfd05c))}.slds-icon-action-lead-convert{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-action-new-custom12{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#dc71d1))}.slds-icon-action-new-custom23{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b070e6))}.slds-icon-action-new-custom34{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d58a6a))}.slds-icon-action-new-custom45{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d95879))}.slds-icon-action-new-custom56{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#718deb))}.slds-icon-action-new-custom67{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f87d76))}.slds-icon-action-recall{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4a698d))}.slds-icon-action-new-custom78{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5a95dd))}.slds-icon-action-new-custom89{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3e99be))}.slds-icon-action-follow{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#31b9f8))}.slds-icon-action-record{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7dc37d))}.slds-icon-action-new-custom3{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ecb46c))}.slds-icon-action-new-note{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e6d478))}.slds-icon-action-new-custom13{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#df6184))}.slds-icon-action-new-custom24{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e56798))}.slds-icon-action-new-custom35{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9637e))}.slds-icon-action-new-custom46{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#67a5e7))}.slds-icon-action-new-custom57{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5a9cdd))}.slds-icon-action-new-custom68{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f26979))}.slds-icon-action-new-custom79{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8ed363))}.slds-icon-action-new-child-case{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fa975c))}.slds-icon-action-new-custom4{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e1d951))}.slds-icon-action-new-custom14{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3cc2b3))}.slds-icon-action-new-custom25{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e46fbe))}.slds-icon-action-new-custom36{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d472d4))}.slds-icon-action-new-custom47{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5fcc64))}.slds-icon-action-new-custom58{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34b59d))}.slds-icon-action-new-custom69{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ed6387))}.slds-icon-action-new-custom5{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9fdb66))}.slds-icon-action-goal{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#56aadf))}.slds-icon-action-new-custom15{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f77e75))}.slds-icon-action-new-custom26{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7698f0))}.slds-icon-action-new-custom37{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8c89f2))}.slds-icon-action-new-custom48{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef697f))}.slds-icon-action-new-custom59{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e3d067))}.slds-icon-action-new-custom6{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54c473))}.slds-icon-action-log-this-event{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-action-new-custom16{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9af67))}.slds-icon-action-new-custom27{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5ab0d2))}.slds-icon-action-new-custom38{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#53b6d7))}.slds-icon-action-new-custom49{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e25c80))}.slds-icon-action-new-custom7{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6a89e5))}.slds-icon-action-more{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-action-add-relationship{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-action-new-custom17{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#acd360))}.slds-icon-action-new-custom28{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#89c059))}.slds-icon-action-new-custom39{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4fbe75))}.slds-icon-action-password-unlock{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-check{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-action-update-status{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1ec7be))}.slds-icon-action-preview{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-action-new-custom8{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#50ceb9))}.slds-icon-custom-110,.slds-icon-custom-custom110{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-100,.slds-icon-custom-custom100{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e15d76));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-111,.slds-icon-custom-custom111{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-1,.slds-icon-custom-custom1{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff7b84));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-101,.slds-icon-custom-custom101{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-112,.slds-icon-custom-custom112{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-2,.slds-icon-custom-custom2{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cfd05c));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-102,.slds-icon-custom-custom102{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-113,.slds-icon-custom-custom113{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-90,.slds-icon-custom-custom90{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#22a48a));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-3,.slds-icon-custom-custom3{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ecb46c));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-103,.slds-icon-custom-custom103{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-80,.slds-icon-custom-custom80{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#659ad5));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-91,.slds-icon-custom-custom91{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#bf7b66));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-4,.slds-icon-custom-custom4{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e1d951));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-104,.slds-icon-custom-custom104{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-70,.slds-icon-custom-custom70{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e769b4));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-81,.slds-icon-custom-custom81{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#da627f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-92,.slds-icon-custom-custom92{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#517e82));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-5,.slds-icon-custom-custom5{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9fdb66));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-105,.slds-icon-custom-custom105{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-60,.slds-icon-custom-custom60{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#bf5a88));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-71,.slds-icon-custom-custom71{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e36ee3));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-82,.slds-icon-custom-custom82{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d15b97));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-93,.slds-icon-custom-custom93{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#904d4c));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-6,.slds-icon-custom-custom6{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54c473));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-106,.slds-icon-custom-custom106{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-50,.slds-icon-custom-custom50{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#49bcd3));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-61,.slds-icon-custom-custom61{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f57376));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-72,.slds-icon-custom-custom72{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8d9bfb));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-83,.slds-icon-custom-custom83{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e7806f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-94,.slds-icon-custom-custom94{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#439cba));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-7,.slds-icon-custom-custom7{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6a89e5));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-107,.slds-icon-custom-custom107{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-40,.slds-icon-custom-custom40{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#83c75e));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-51,.slds-icon-custom-custom51{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d8c760));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-62,.slds-icon-custom-custom62{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b92dc));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-73,.slds-icon-custom-custom73{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#679ef0));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-84,.slds-icon-custom-custom84{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f6707b));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-95,.slds-icon-custom-custom95{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8bcf6a));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-8,.slds-icon-custom-custom8{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#50ceb9));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-108,.slds-icon-custom-custom108{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-30,.slds-icon-custom-custom30{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f59f71));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-41,.slds-icon-custom-custom41{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#43b5b5));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-52,.slds-icon-custom-custom52{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ee8e6f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-63,.slds-icon-custom-custom63{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7ccf60));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-74,.slds-icon-custom-custom74{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#41c8a0));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-85,.slds-icon-custom-custom85{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f26891));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-96,.slds-icon-custom-custom96{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6d9de3));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-9,.slds-icon-custom-custom9{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b9ee2));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-109,.slds-icon-custom-custom109{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-20,.slds-icon-custom-custom20{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#48c7c8));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-31,.slds-icon-custom-custom31{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb687f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-42,.slds-icon-custom-custom42{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cfd05b));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-53,.slds-icon-custom-custom53{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f36e83));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-64,.slds-icon-custom-custom64{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#618fd8));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-75,.slds-icon-custom-custom75{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cd9f65));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-86,.slds-icon-custom-custom86{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e260ab));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-97,.slds-icon-custom-custom97{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#dd6085));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-10,.slds-icon-custom-custom10{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6488e3));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-21,.slds-icon-custom-custom21{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8a7aed));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-32,.slds-icon-custom-custom32{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#38c393));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-43,.slds-icon-custom-custom43{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f93f9));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-54,.slds-icon-custom-custom54{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ea70b1));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-65,.slds-icon-custom-custom65{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f279ab));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-76,.slds-icon-custom-custom76{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#db6d7a));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-87,.slds-icon-custom-custom87{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d876e5));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-98,.slds-icon-custom-custom98{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e1be5c));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-11,.slds-icon-custom-custom11{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8784ea));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-22,.slds-icon-custom-custom22{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8b85f9));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-33,.slds-icon-custom-custom33{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#97cf5d));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-44,.slds-icon-custom-custom44{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#c8ca58));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-55,.slds-icon-custom-custom55{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d66ee0));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-66,.slds-icon-custom-custom66{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d8be5f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-77,.slds-icon-custom-custom77{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b55d5b));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-88,.slds-icon-custom-custom88{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#996fe6));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-99,.slds-icon-custom-custom99{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f0856e));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-12,.slds-icon-custom-custom12{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#dc71d1));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-23,.slds-icon-custom-custom23{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b070e6));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-34,.slds-icon-custom-custom34{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d58a6a));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-45,.slds-icon-custom-custom45{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d95879));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-56,.slds-icon-custom-custom56{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#718deb));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-67,.slds-icon-custom-custom67{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f87d76));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-78,.slds-icon-custom-custom78{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5a95dd));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-89,.slds-icon-custom-custom89{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3e99be));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-13,.slds-icon-custom-custom13{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#df6184));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-24,.slds-icon-custom-custom24{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e56798));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-35,.slds-icon-custom-custom35{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9637e));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-46,.slds-icon-custom-custom46{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#67a5e7));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-57,.slds-icon-custom-custom57{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5a9cdd));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-68,.slds-icon-custom-custom68{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f26979));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-79,.slds-icon-custom-custom79{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8ed363));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-14,.slds-icon-custom-custom14{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3cc2b3));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-25,.slds-icon-custom-custom25{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e46fbe));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-36,.slds-icon-custom-custom36{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d472d4));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-47,.slds-icon-custom-custom47{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5fcc64));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-58,.slds-icon-custom-custom58{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34b59d));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-69,.slds-icon-custom-custom69{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ed6387));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-15,.slds-icon-custom-custom15{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f77e75));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-26,.slds-icon-custom-custom26{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7698f0));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-37,.slds-icon-custom-custom37{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8c89f2));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-48,.slds-icon-custom-custom48{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef697f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-59,.slds-icon-custom-custom59{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e3d067));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-16,.slds-icon-custom-custom16{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9af67));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-27,.slds-icon-custom-custom27{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5ab0d2));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-38,.slds-icon-custom-custom38{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#53b6d7));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-49,.slds-icon-custom-custom49{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e25c80));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-17,.slds-icon-custom-custom17{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#acd360));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-28,.slds-icon-custom-custom28{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#89c059));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-39,.slds-icon-custom-custom39{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4fbe75));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-18,.slds-icon-custom-custom18{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4dca76));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-29,.slds-icon-custom-custom29{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#bdd25f));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-custom-19,.slds-icon-custom-custom19{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3abeb1));color:var(--slds-g-color-neutral-base-100,#fff)}.slds-icon-standard-task-2{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-contact{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a094ed))}.slds-icon-standard-crypto-transaction{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#c0532e))}.slds-icon-standard-multi-select-checkbox{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-work-order{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#50e3c2))}.slds-icon-standard-post{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#65cae4))}.slds-icon-standard-global-constant{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-change-request{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0b827c))}.slds-icon-standard-carousel{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6bbd6e))}.slds-icon-standard-work-contract{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-resource-skill{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c173))}.slds-icon-standard-system-and-global-variable{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-segments{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f28b00))}.slds-icon-standard-account-info{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-goals{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#56aadf))}.slds-icon-standard-tour-check{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9050e9))}.slds-icon-standard-adjust-value{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#47b46c))}.slds-icon-standard-case-wrap-up{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-investment-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-store{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-slider{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-output{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#439cba))}.slds-icon-standard-medication-ingredient{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-store-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-all{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-service-territory-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-slack-conversations{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#481a54))}.slds-icon-standard-picklist-choice{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-choice{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-funding-requirement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#396547))}.slds-icon-standard-your-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1b96ff))}.slds-icon-standard-app{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-default{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8199af))}.slds-icon-standard-case-milestone{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-today{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef7ead))}.slds-icon-standard-buyer-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-lead-list{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-standard-work-plan-template{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#449488))}.slds-icon-standard-tableau{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0f1e3c))}.slds-icon-standard-shift{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-product-item-transaction{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-standard-person-language{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-apex{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-reply-text{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88965))}.slds-icon-standard-answer-private{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-immunization{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-asset-downtime-period{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#317a92))}.slds-icon-standard-opportunity-contact-role{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-retail-banking-console{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00afa0))}.slds-icon-standard-channel-program-members{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-apps-admin{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9895ee))}.slds-icon-standard-datadotcom{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-settings{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-network-contract{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ec06e))}.slds-icon-standard-crypto-transaction-envelope-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#107cad))}.slds-icon-standard-product-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#769ed9))}.slds-icon-standard-metrics{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#56aadf))}.slds-icon-standard-topic2{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#56aad0))}.slds-icon-standard-partner-fund-allocation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-care-request-reviewer{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-crypto-transaction-envelope-change-snapshot{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#cb65ff))}.slds-icon-standard-approval{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#50cc7a))}.slds-icon-standard-work-queue{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-iot-orchestrations{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-visualforce-page{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-person-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-entity{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-standard-service-territory-location{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-qualifications{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-tax-treatment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-entitlement-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-form{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ec06e))}.slds-icon-standard-products{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-prompt{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#06a59a))}.slds-icon-standard-order-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#769ed3))}.slds-icon-standard-read-receipts{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-javascript-button{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-maintenance-asset{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-work-plan-rule{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#449488))}.slds-icon-standard-loop{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-portal-roles-and-subordinates{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7a9ae6))}.slds-icon-standard-work-capacity-limit{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-employee-organization{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-workforce-engagement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9d3856))}.slds-icon-standard-constant{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-marketing-actions{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6bbd6e))}.slds-icon-standard-case-transcript{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-timesheet-entry{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7dc37d))}.slds-icon-standard-key-dates{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b9ee2))}.slds-icon-standard-multi-picklist{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-product-workspace{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-visit-templates{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-restriction-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-task{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-answer-best{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-attach{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9050e9))}.slds-icon-standard-asset-action{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#317a92))}.slds-icon-standard-section{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-service-request{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589e4))}.slds-icon-standard-orders{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#769ed9))}.slds-icon-standard-propagation-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-budget{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#107cad))}.slds-icon-standard-report-type{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c65a))}.slds-icon-standard-past-chat{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88960))}.slds-icon-standard-crypto-transaction-envelope-change-log{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#084968))}.slds-icon-standard-feedback{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6da1ea))}.slds-icon-standard-action-list-component{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5876a3))}.slds-icon-standard-opportunity-splits{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-location-permit{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34b59d))}.slds-icon-standard-messaging-user{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-filter-criteria{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-tax-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-trailhead{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#032e61))}.slds-icon-standard-entitlements{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b781d3))}.slds-icon-standard-checkout{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-formula{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-case-log-a-call{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-shift-pattern-entry{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-thanks-loading{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b8c3ce))}.slds-icon-standard-job-family{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-service-appointment-capacity-usage{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-channel-program-levels{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-letterhead{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-promotions-workspace{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-nft-settings{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#c5486d))}.slds-icon-standard-asset-hierarchy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#107cad))}.slds-icon-standard-email-chatter{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-document-reference{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-announcement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-standard-field-sales{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9050e9))}.slds-icon-standard-bot{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698f))}.slds-icon-standard-macros{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#47cfd2))}.slds-icon-standard-dashboard-ea{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-job-profile{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-steps{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-snippet-alt{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-asset-relationship{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fa975c))}.slds-icon-standard-high-velocity-sales{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#47cfc9))}.slds-icon-standard-brand{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-historical-adherence{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#03b4a7))}.slds-icon-standard-visits{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-einstein-replies{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88965))}.slds-icon-standard-coaching{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f67594))}.slds-icon-standard-record-lookup{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-product-service-campaign-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-scheduling-constraint{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-lightning-component{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-search{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-standard-connected-apps{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9895ee))}.slds-icon-standard-swarm-request{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e26e8c))}.slds-icon-standard-work-type-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-education{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-work-type{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-travel-mode{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c173))}.slds-icon-standard-environment-hub{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-identifier{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-standard-cms{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#88c651))}.slds-icon-standard-call-coaching{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-salesforce-cms{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1df))}.slds-icon-standard-thanks{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9696e))}.slds-icon-standard-service-territory-member{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-work-forecast{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-crypto-product-category-wallet-role{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0b827c))}.slds-icon-standard-holiday-operating-hours{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b9ee2))}.slds-icon-standard-user-role{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8fc96e))}.slds-icon-standard-observation-component{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-orchestrator{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#006eb3))}.slds-icon-standard-work-capacity-usage{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-record-create{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-campaign-members{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f49756))}.slds-icon-standard-retail-banking{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00d2be))}.slds-icon-standard-product-service-campaign{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-portal-roles{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fb8950))}.slds-icon-standard-calibration{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#47cfd2))}.slds-icon-standard-answer-public{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-display-text{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-product-consumed-state{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#06a59a))}.slds-icon-standard-budget-category-value{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1b96ff))}.slds-icon-standard-unmatched{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-standard-partners{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-email-iq{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a094ed))}.slds-icon-standard-service-crew{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fa975c))}.slds-icon-standard-payment-gateway{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0b827c))}.slds-icon-standard-voice-call{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#30c85a))}.slds-icon-standard-cancel-checkout{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-asset-warranty{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#107cad))}.slds-icon-standard-resource-capacity{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c173))}.slds-icon-standard-setup-modal{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-channel-programs{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-quip{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d3451d))}.slds-icon-standard-quip-sheet{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#30c85a))}.slds-icon-standard-timeslot{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fab24c))}.slds-icon-standard-live-chat{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88960))}.slds-icon-standard-service-request-detail{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-med-rec-statement-recommendation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#808cde))}.slds-icon-standard-job-position{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-sobject-collection{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-user{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-client{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00d2be))}.slds-icon-standard-screen{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-portal{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#aec770))}.slds-icon-standard-partner-fund-request{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-asset-audit{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9050e9))}.slds-icon-standard-resource-preference{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c173))}.slds-icon-standard-first-non-empty{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9696e))}.slds-icon-standard-customer-360{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#032e61))}.slds-icon-standard-employee-job{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-resource-absence{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c173))}.slds-icon-standard-text-template{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-entitlement-template{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-lightning-usage{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-product-transfer-state{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e3734f))}.slds-icon-standard-medication-dispense{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5696d7))}.slds-icon-standard-entitlement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-empty{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8199af))}.slds-icon-standard-text{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-delegated-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-fulfillment-order{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b9ac91))}.slds-icon-standard-case-email{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-account{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-coupon-codes{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-assignment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-wealth-management-console{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00afa0))}.slds-icon-standard-task2{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-patient-medication-dosage{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-code-playground{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-social{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ea74a2))}.slds-icon-standard-endorsement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8b9ae3))}.slds-icon-standard-folder{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8b9ae3))}.slds-icon-standard-service-crew-member{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-variation-attribute-setup{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-connect-wallet{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ba0517))}.slds-icon-standard-flow{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-recipe{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0176d3))}.slds-icon-standard-expense-report-entry{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3a3180))}.slds-icon-standard-employee{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-omni-supervisor{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8a76f0))}.slds-icon-standard-capacity-plan{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-asset-object{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#317a92))}.slds-icon-standard-product{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b781d3))}.slds-icon-standard-crypto-transaction-envelope{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0b827c))}.slds-icon-standard-topic{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#56aadf))}.slds-icon-standard-product-required{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef6e64))}.slds-icon-standard-dynamic-record-choice{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-aggregation-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-warranty-term{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-process{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-swarm-session{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f5675b))}.slds-icon-standard-people{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-medication{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4ac076))}.slds-icon-standard-reward{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9696e))}.slds-icon-standard-employee-contact{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-bundle-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-performance{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f8b156))}.slds-icon-standard-promotions{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-case-comment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-price-book-entries{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-sales-channel{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-apex-plugin{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-campaign{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f49756))}.slds-icon-standard-contact-request{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fb8954))}.slds-icon-standard-business-hours{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7dc37d))}.slds-icon-standard-evernote{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#86c86f))}.slds-icon-standard-variation-products{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-trailhead-alt{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00396b))}.slds-icon-standard-service-territory{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-customer-lifecycle-analytics{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9274df))}.slds-icon-standard-code-set{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-case{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-slack{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4a154b))}.slds-icon-standard-currency{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-record{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7dc37d))}.slds-icon-standard-code-set-bundle{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0079bc))}.slds-icon-standard-queue{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-schedule-objective{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-contract-line-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ec06e))}.slds-icon-standard-skill-entity{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8b9ae3))}.slds-icon-standard-funding-award-adjustment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1b96ff))}.slds-icon-standard-skill{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fa975c))}.slds-icon-standard-operating-hours{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6b9ee2))}.slds-icon-standard-crypto-product{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8c5ec6))}.slds-icon-standard-custom{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8199af))}.slds-icon-standard-related-list{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#59bcab))}.slds-icon-standard-bot-training{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5876a3))}.slds-icon-standard-case-change-status{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-insurance-console{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00afa0))}.slds-icon-standard-dashboard-component{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-incident{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ba0517))}.slds-icon-standard-contract{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ec06e))}.slds-icon-standard-sobject{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-sales-cadence-target{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-photo{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#d7d1d1))}.slds-icon-standard-apps{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-timesheet{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-drafts{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ca1e9))}.slds-icon-standard-outcome{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-discounts{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-work-order-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#33a8dc))}.slds-icon-standard-pricebook{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b781d3))}.slds-icon-standard-scan-card{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f39e58))}.slds-icon-standard-note{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e6d478))}.slds-icon-standard-serialized-product-transaction{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-shift-pattern{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-buyer-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-product-quantity-rules{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-medication-reconciliation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3f719a))}.slds-icon-standard-procedure{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589e4))}.slds-icon-standard-opportunity{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-news{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-sort-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-display-rich-text{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-strategy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc071))}.slds-icon-standard-call-history{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-webcart{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-serialized-product{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-tax-rate{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-report{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2ecbbe))}.slds-icon-standard-customer-workspace{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-groups{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#779ef2))}.slds-icon-standard-data-model{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-dashboard{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef6e64))}.slds-icon-standard-generic-loading{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b8c3ce))}.slds-icon-standard-number-input{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-toggle{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-address{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-price-books{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-entity-milestone{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f49756))}.slds-icon-standard-contract-line-outcome{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2e844a))}.slds-icon-standard-wealth-management{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00d2be))}.slds-icon-standard-customers{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-story{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-service-appointment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-maintenance-plan{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-contract-line-outcome-data{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2e844a))}.slds-icon-standard-data-integration-hub{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-person-name{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-work-plan-template-entry{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#449488))}.slds-icon-standard-hierarchy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-custom-component-task{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8a76f0))}.slds-icon-standard-partner-marketing-budget{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-asset-action-source{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#317a92))}.slds-icon-standard-skill-requirement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fa975c))}.slds-icon-standard-filter-criteria-rule{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-location{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4bc076))}.slds-icon-standard-promotion-tiers{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#396547))}.slds-icon-standard-radio-button{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-avatar-loading{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b8c3ce))}.slds-icon-standard-article{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-learner-program{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ca8501))}.slds-icon-standard-invocable-action{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-device{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-proposition{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-snippets{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-customer-portal-users{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97db))}.slds-icon-standard-actions-and-buttons{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fcb95b))}.slds-icon-standard-record-update{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-shift-type{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-water{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1b96ff))}.slds-icon-standard-log-a-call{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#48c3cc))}.slds-icon-standard-crypto-wallet{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2e844a))}.slds-icon-standard-crypto-wallet-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0176d3))}.slds-icon-standard-quotes{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#88c651))}.slds-icon-standard-question-feed{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-kanban{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-work-plan{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#449488))}.slds-icon-standard-shift-template{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-merge{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-expense{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3a3180))}.slds-icon-standard-dataset{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b070e6))}.slds-icon-standard-shift-preference{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-product-consumed{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#55bc9c))}.slds-icon-standard-canvas{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8199af))}.slds-icon-standard-forecasts{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6bbd6e))}.slds-icon-standard-relationship{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-tour{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9050e9))}.slds-icon-standard-service-resource{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-filter{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1539ee))}.slds-icon-standard-sales-path{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-shift-scheduling-operation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-events{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97db))}.slds-icon-standard-data-mapping{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#061c3f))}.slds-icon-standard-sms{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#88c651))}.slds-icon-standard-rtc-presence{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#47cfd2))}.slds-icon-standard-avatar{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-standard-record-delete{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-solution{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8fc972))}.slds-icon-standard-nft-studio{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5867e8))}.slds-icon-standard-agent-home{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00396b))}.slds-icon-standard-partner-fund-claim{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-individual{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-custom-notification{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6bb7e4))}.slds-icon-standard-contract-payment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9050e9))}.slds-icon-standard-date-input{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-catalog{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#027e46))}.slds-icon-standard-template{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-activation-target{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#dc71d1))}.slds-icon-standard-selling-model{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ad7bee))}.slds-icon-standard-shipment{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-budget-allocation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#107cad))}.slds-icon-standard-record-signature-task{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-event{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-insurance{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00d2be))}.slds-icon-standard-live-chat-visitor{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f68960))}.slds-icon-standard-textarea{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-work-step{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#449488))}.slds-icon-standard-picklist-type{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-survey{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#319fd6))}.slds-icon-standard-link{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7a9ae6))}.slds-icon-standard-messaging-session{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-video{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b070e6))}.slds-icon-standard-list-email{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8baeb5))}.slds-icon-standard-med-rec-recommendation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#61bbca))}.slds-icon-standard-crypto-wallet-group-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8c5ec6))}.slds-icon-standard-recycle-bin{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589e4))}.slds-icon-standard-document{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#baac93))}.slds-icon-standard-product-transfer{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e3734f))}.slds-icon-standard-instore-locations{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-recent{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#6ca1e9))}.slds-icon-standard-practitioner-role{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-password{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-expense-report{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3a3180))}.slds-icon-standard-branch-merge{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#e9696e))}.slds-icon-standard-ai-accelerator-card{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0176d3))}.slds-icon-standard-insights{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ec94ed))}.slds-icon-standard-budget-period{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#9602c7))}.slds-icon-standard-dropbox{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#52aef9))}.slds-icon-standard-unified-health-score{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-calculated-insights{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54a7f8))}.slds-icon-standard-employee-job-position{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-file{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#baac93))}.slds-icon-standard-currency-input{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-data-transforms{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#5867e8))}.slds-icon-standard-variable{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-team-member{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-pricing-workspace{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-agent-session{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88960))}.slds-icon-standard-guidance-center{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7f8de1))}.slds-icon-standard-crypto-category-wallet-group{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ba0517))}.slds-icon-standard-group-loading{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b8c3ce))}.slds-icon-standard-lead{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f88962))}.slds-icon-standard-email{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#95aec5))}.slds-icon-standard-service-contract{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#8a76f0))}.slds-icon-standard-decision{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-promotion-segments{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-duration-downscale{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-snippet{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a094ed))}.slds-icon-standard-entitlement-process{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-contact-list{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#a094ed))}.slds-icon-standard-planogram{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-activations{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b070e6))}.slds-icon-standard-scheduling-policy{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#eb7092))}.slds-icon-standard-channel-program-history{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#0eb58a))}.slds-icon-standard-question-best{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-collection-variable{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-procedure-detail{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-sales-value{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#3c97dd))}.slds-icon-standard-knowledge{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ec94ed))}.slds-icon-standard-date-time{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-category{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#027e46))}.slds-icon-standard-maintenance-work-rule{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-data-streams{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef6e64))}.slds-icon-standard-textbox{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#969492))}.slds-icon-standard-lead-insights{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#22b0e6))}.slds-icon-standard-waits{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-concur{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#4cc3c7))}.slds-icon-standard-feed{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7ed))}.slds-icon-standard-sort{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1539ee))}.slds-icon-standard-messaging-conversation{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#34becd))}.slds-icon-standard-service-report{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#7e8be4))}.slds-icon-standard-iot-context{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#2a739e))}.slds-icon-standard-asset-state-period{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#317a92))}.slds-icon-standard-call{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-collection{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f2cf5b))}.slds-icon-standard-stage{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-sales-cadence{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-product-request-line-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#88c651))}.slds-icon-standard-return-order-line-item{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#009688))}.slds-icon-standard-chart{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1fcaa0))}.slds-icon-standard-customer{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#04844b))}.slds-icon-standard-quick-text{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#62b7e5))}.slds-icon-standard-home{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ef7ead))}.slds-icon-standard-sossession{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#54698d))}.slds-icon-standard-bundle-config{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon-standard-employee-asset{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1e0))}.slds-icon-standard-process-exception{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#f5a623))}.slds-icon-standard-product-warranty-term{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#b781d3))}.slds-icon-standard-problem{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#fe9339))}.slds-icon-standard-stage-collection{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#ff9a3c))}.slds-icon-standard-product-request{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#88c651))}.slds-icon-standard-logging{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00a1df))}.slds-icon-standard-assigned-resource{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#45c173))}.slds-icon-standard-return-order{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#009688))}.slds-icon-standard-poll{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#699be1))}.slds-icon-standard-household{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#00afa0))}.slds-icon-standard-work-step-template{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#449488))}.slds-icon-standard-medication-statement{background-color:var(--slds-c-icon-color-background,var(--sds-c-icon-color-background,#1589ee))}.slds-icon{width:2rem;height:2rem;fill:var(--slds-c-icon-color-foreground,var(--sds-c-icon-color-foreground,var(--slds-g-color-neutral-base-100,#fff)))}.slds-icon--xx-small,.slds-icon_xx-small{width:.875rem;height:.875rem;line-height:1}.slds-icon--x-small,.slds-icon_x-small{width:1rem;height:1rem;line-height:1}.slds-icon--small,.slds-icon_small{width:1.5rem;height:1.5rem;line-height:1}.slds-icon--large,.slds-icon_large{width:3rem;height:3rem}.slds-icon-text-default{/*! @css-var-fallback fill */--slds-c-icon-color-foreground:var(--slds-c-icon-color-foreground-default, var(--sds-c-icon-color-foreground-default, var(--slds-g-color-neutral-base-50, #747474)))}.slds-icon-text-default.slds-is-disabled{fill:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-icon-text-warning{/*! @css-var-fallback fill */--slds-c-icon-color-foreground:var(--slds-g-color-warning-base-50, #fe9339)}.slds-icon-text-success{/*! @css-var-fallback fill */--slds-c-icon-color-foreground:var(--slds-g-color-success-base-50, #2e844a)}.slds-icon-text-error{/*! @css-var-fallback fill */--slds-c-icon-color-foreground:var(--slds-g-color-error-base-40, #ea001e)}.slds-icon-text-light{/*! @css-var-fallback fill */--slds-c-icon-color-foreground:var(--slds-g-color-neutral-base-50, #aeaeae)}.slds-current-color .slds-icon{/*! @css-var-fallback fill */--slds-c-icon-color-foreground:currentColor}.slds-icon_disabled{background-color:currentColor}.slds-accordion{position:relative}.slds-accordion__list-item{border-top-width:var(--slds-c-accordion-sizing-border,var(--sds-c-accordion-sizing-border,1px));border-top-style:solid;border-top-color:var(--slds-c-accordion-color-border,var(--sds-c-accordion-color-border,var(--slds-g-color-border-base-1,#e5e5e5)))}.slds-accordion__list-item:first-child{border-top:0}.slds-accordion__summary{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:calc(var(--slds-c-accordion-section-spacing-block-start,var(--sds-c-accordion-section-spacing-block-start,.75rem)) * -1);margin-right:calc(var(--slds-c-accordion-section-spacing-inline-end,var(--sds-c-accordion-section-spacing-inline-end,.75rem)) * -1);margin-bottom:calc(var(--slds-c-accordion-section-spacing-block-end,var(--sds-c-accordion-section-spacing-block-end,.75rem)) * -1);margin-left:calc(var(--slds-c-accordion-section-spacing-inline-start,var(--sds-c-accordion-section-spacing-inline-start,.75rem)) * -1);padding-top:var(--slds-c-accordion-section-spacing-block-start,var(--sds-c-accordion-section-spacing-block-start,.75rem));padding-right:var(--slds-c-accordion-section-spacing-inline-end,var(--sds-c-accordion-section-spacing-inline-end,.75rem));padding-bottom:var(--slds-c-accordion-section-spacing-block-end,var(--sds-c-accordion-section-spacing-block-end,.75rem));padding-left:var(--slds-c-accordion-section-spacing-inline-start,var(--sds-c-accordion-section-spacing-inline-start,.75rem));background-color:var(--slds-c-accordion-summary-color-background,var(--sds-c-accordion-summary-color-background,transparent))}.slds-accordion__summary-heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-width:0;color:var(--slds-c-accordion-heading-text-color,var(--sds-c-accordion-heading-text-color,var(--slds-g-color-neutral-base-10,#181818)));font-size:var(--slds-c-accordion-heading-font-size,var(--sds-c-accordion-heading-font-size,1rem));line-height:var(--slds-c-accordion-heading-line-height,var(--sds-c-accordion-heading-line-height,1.25))}.slds-accordion__summary-heading .slds-button:focus{text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}.slds-accordion__summary-action{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:0;margin-top:calc(var(--slds-c-accordion-section-spacing-block-start,var(--sds-c-accordion-section-spacing-block-start,.75rem)) * -1);margin-right:calc(var(--slds-c-accordion-section-spacing-inline-end,var(--sds-c-accordion-section-spacing-inline-end,.75rem)) * -1);margin-bottom:calc(var(--slds-c-accordion-section-spacing-block-end,var(--sds-c-accordion-section-spacing-block-end,.75rem)) * -1);margin-left:calc(var(--slds-c-accordion-section-spacing-inline-start,var(--sds-c-accordion-section-spacing-inline-start,.75rem)) * -1);padding-top:var(--slds-c-accordion-section-spacing-block-start,var(--sds-c-accordion-section-spacing-block-start,.75rem));padding-right:var(--slds-c-accordion-section-spacing-inline-end,var(--sds-c-accordion-section-spacing-inline-end,.75rem));padding-bottom:var(--slds-c-accordion-section-spacing-block-end,var(--sds-c-accordion-section-spacing-block-end,.75rem));padding-left:var(--slds-c-accordion-section-spacing-inline-start,var(--sds-c-accordion-section-spacing-inline-start,.75rem))}.slds-accordion__summary-action:focus,.slds-accordion__summary-action:hover{color:var(--sds-c-accordion-heading-text-color-hover,var(--sds-c-accordion-heading-text-color-hover,#014486))}.slds-accordion__summary-action-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}[dir=rtl] .slds-accordion__summary-action-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@media (min-width:64em){.slds-accordion__summary-content{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.slds-accordion__section{padding-top:var(--slds-c-accordion-section-spacing-block-start,var(--sds-c-accordion-section-spacing-block-start,.75rem));padding-right:var(--slds-c-accordion-section-spacing-inline-end,var(--sds-c-accordion-section-spacing-inline-end,.75rem));padding-bottom:var(--slds-c-accordion-section-spacing-block-end,var(--sds-c-accordion-section-spacing-block-end,.75rem));padding-left:var(--slds-c-accordion-section-spacing-inline-start,var(--sds-c-accordion-section-spacing-inline-start,.75rem))}.slds-accordion__content{overflow:hidden;visibility:hidden;opacity:0;height:0}.slds-is-open>.slds-accordion__summary{margin-bottom:0}.slds-is-open>.slds-accordion__summary .slds-accordion__summary-action-icon{-webkit-transform:rotate(0);transform:rotate(0)}.slds-is-open>.slds-accordion__content{overflow:visible;visibility:visible;opacity:1;height:auto}.slds-icon-ellie{width:calc(14rem / 16);height:calc(14rem / 16);display:inline-block;overflow:hidden}.slds-icon-ellie.slds-is-animated{will-change:transform;-webkit-animation:slds-icon-ellie-pop .3s ease-in 2s 1 both;animation:slds-icon-ellie-pop .3s ease-in 2s 1 both}.slds-icon-ellie.slds-is-animated svg{will-change:transform;-webkit-animation:slds-icon-ellie 1.2s steps(20) 2.3s 2 alternate;animation:slds-icon-ellie 1.2s steps(20) 2.3s 2 alternate}.slds-icon-ellie.slds-is-paused,.slds-icon-ellie.slds-is-paused svg{-webkit-animation-play-state:paused;animation-play-state:paused}.slds-icon-ellie svg{width:17.5rem;vertical-align:top;color:var(--slds-g-color-palette-cloud-blue-60,#0d9dda)}.slds-icon-ellie circle:nth-child(2n+1){fill:currentColor;stroke:currentColor;stroke-width:4px}.slds-icon-ellie circle:nth-child(2n){fill:var(--slds-g-color-neutral-base-100,#fff);stroke:var(--slds-g-color-neutral-base-100,#fff);stroke-width:1px}.slds-icon-ellie circle:nth-child(1),.slds-icon-ellie circle:nth-last-child(2){stroke-width:4px}.slds-icon-ellie circle:nth-child(2),.slds-icon-ellie circle:nth-last-child(1){stroke-width:1px}.slds-icon-ellie circle:nth-child(3),.slds-icon-ellie circle:nth-last-child(4){stroke-width:3.95px}.slds-icon-ellie circle:nth-child(4),.slds-icon-ellie circle:nth-last-child(3){stroke-width:1.2px}.slds-icon-ellie circle:nth-child(5),.slds-icon-ellie circle:nth-last-child(6){stroke-width:3.85px}.slds-icon-ellie circle:nth-child(6),.slds-icon-ellie circle:nth-last-child(5){stroke-width:1.4px}.slds-icon-ellie circle:nth-child(7),.slds-icon-ellie circle:nth-last-child(8){stroke-width:3.6px}.slds-icon-ellie circle:nth-child(8),.slds-icon-ellie circle:nth-last-child(7){stroke-width:1.7px}.slds-icon-ellie circle:nth-child(9),.slds-icon-ellie circle:nth-last-child(10){stroke-width:3.3px}.slds-icon-ellie circle:nth-child(10),.slds-icon-ellie circle:nth-last-child(9){stroke-width:2px}.slds-icon-ellie circle:nth-child(11),.slds-icon-ellie circle:nth-last-child(12){stroke-width:3.2px}.slds-icon-ellie circle:nth-child(12),.slds-icon-ellie circle:nth-last-child(11){stroke-width:2.4px}.slds-icon-ellie circle:nth-child(13),.slds-icon-ellie circle:nth-last-child(14){stroke-width:3.15px}.slds-icon-ellie circle:nth-child(14),.slds-icon-ellie circle:nth-last-child(13){stroke-width:2.8px}.slds-icon-ellie circle:nth-child(15),.slds-icon-ellie circle:nth-last-child(16){stroke-width:3.1px}.slds-icon-ellie circle:nth-child(16),.slds-icon-ellie circle:nth-last-child(15){stroke-width:3.25px}.slds-icon-ellie circle:nth-child(17),.slds-icon-ellie circle:nth-last-child(18){stroke-width:3.05px}.slds-icon-ellie circle:nth-child(18),.slds-icon-ellie circle:nth-last-child(17){stroke-width:3.7px}.slds-icon-ellie circle:nth-child(19),.slds-icon-ellie circle:nth-last-child(20){stroke-width:3px}.slds-icon-ellie circle:nth-child(20),.slds-icon-ellie circle:nth-last-child(19){stroke-width:4px}@-webkit-keyframes slds-icon-ellie-pop{0%{-webkit-transform:scale(.2);transform:scale(.2)}70%{-webkit-transform:scale(1.1);transform:scale(1.1)}90%{-webkit-transform:scale(.7);transform:scale(.7)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes slds-icon-ellie-pop{0%{-webkit-transform:scale(.2);transform:scale(.2)}70%{-webkit-transform:scale(1.1);transform:scale(1.1)}90%{-webkit-transform:scale(.7);transform:scale(.7)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes slds-icon-ellie{to{-webkit-transform:translateX(-17.5rem);transform:translateX(-17.5rem)}}@keyframes slds-icon-ellie{to{-webkit-transform:translateX(-17.5rem);transform:translateX(-17.5rem)}}.slds-icon-eq{position:relative;width:calc(14rem / 16);height:calc(14rem / 16)}.slds-icon-eq.slds-is-animated .slds-icon-eq__bar{-webkit-animation:slds-icon-eq .25s ease-in-out infinite alternate;animation:slds-icon-eq .25s ease-in-out infinite alternate;will-change:transform;height:.1875rem}.slds-icon-eq.slds-is-animated .slds-icon-eq__bar:nth-of-type(2){-webkit-animation-duration:.65s;animation-duration:.65s}.slds-icon-eq.slds-is-animated .slds-icon-eq__bar:nth-of-type(3){-webkit-animation-duration:.35s;animation-duration:.35s}.slds-icon-eq__bar{position:absolute;bottom:0;left:0;width:calc(4rem / 16);height:.5625rem;background:#0176d3;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:bottom;transform-origin:bottom}.slds-icon-eq__bar:nth-of-type(2){left:calc(5rem / 16);height:.875rem}.slds-icon-eq__bar:nth-of-type(3){left:calc(10rem / 16);height:.75rem}@-webkit-keyframes slds-icon-eq{to{-webkit-transform:scaleY(4.6666666667);transform:scaleY(4.6666666667)}}@keyframes slds-icon-eq{to{-webkit-transform:scaleY(4.6666666667);transform:scaleY(4.6666666667)}}.slds-icon-score{display:inline-block;width:.3125rem;height:.3125rem;position:relative}[class*=slds-icon-score__]{position:absolute;opacity:0;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;will-change:opacity;stroke-width:1.125px}.slds-icon-score__positive{fill:var(--slds-g-color-success-base-50,#2e844a);stroke:var(--slds-g-color-success-base-50,#2e844a)}.slds-icon-score__negative{fill:transparent;stroke:var(--slds-g-color-error-base-40,#ba0517)}[data-slds-state=negative] .slds-icon-score__negative,[data-slds-state=positive] .slds-icon-score__positive{opacity:1}.slds-icon-strength{width:1.6875rem;height:.4375rem;display:inline-block}.slds-icon-strength circle{stroke-width:.95px;fill:transparent;stroke:var(--slds-g-color-neutral-base-60,#939393);-webkit-transition:fill .4s ease-in-out,stroke .4s ease-in-out;transition:fill .4s ease-in-out,stroke .4s ease-in-out;will-change:fill,stroke}.slds-icon-strength[data-slds-strength="1"] circle:nth-child(1),.slds-icon-strength[data-slds-strength="2"] circle:nth-child(1),.slds-icon-strength[data-slds-strength="2"] circle:nth-child(2),.slds-icon-strength[data-slds-strength="3"] circle:nth-child(1),.slds-icon-strength[data-slds-strength="3"] circle:nth-child(2),.slds-icon-strength[data-slds-strength="3"] circle:nth-child(3){fill:var(--slds-g-color-success-base-50,#2e844a);stroke:var(--slds-g-color-success-base-50,#2e844a)}.slds-icon-strength[data-slds-strength="-1"] circle:nth-child(1),.slds-icon-strength[data-slds-strength="-2"] circle:nth-child(1),.slds-icon-strength[data-slds-strength="-2"] circle:nth-child(2),.slds-icon-strength[data-slds-strength="-3"] circle:nth-child(1),.slds-icon-strength[data-slds-strength="-3"] circle:nth-child(2),.slds-icon-strength[data-slds-strength="-3"] circle:nth-child(3){fill:var(--slds-g-color-palette-pink-90,#fddde3);stroke:var(--slds-g-color-error-base-30,#ba0517)}.slds-icon-strength.slds-is-animated circle{-webkit-animation:slds-icon-strength-positive-load .4s 1s ease-in-out alternate both paused;animation:slds-icon-strength-positive-load .4s 1s ease-in-out alternate both paused}.slds-icon-strength.slds-is-animated circle:nth-child(2){-webkit-animation-delay:1.4s;animation-delay:1.4s}.slds-icon-strength.slds-is-animated circle:nth-child(3){-webkit-animation-delay:1.8s;animation-delay:1.8s}.slds-icon-strength.slds-is-animated[data-slds-strength^="-"] circle{-webkit-animation-name:slds-icon-strength-negative-load;animation-name:slds-icon-strength-negative-load}.slds-icon-strength.slds-is-animated[data-slds-strength="-1"] circle:nth-child(1),.slds-icon-strength.slds-is-animated[data-slds-strength="-2"] circle:nth-child(1),.slds-icon-strength.slds-is-animated[data-slds-strength="-2"] circle:nth-child(2),.slds-icon-strength.slds-is-animated[data-slds-strength="-3"] circle:nth-child(1),.slds-icon-strength.slds-is-animated[data-slds-strength="-3"] circle:nth-child(2),.slds-icon-strength.slds-is-animated[data-slds-strength="-3"] circle:nth-child(3),.slds-icon-strength.slds-is-animated[data-slds-strength="1"] circle:nth-child(1),.slds-icon-strength.slds-is-animated[data-slds-strength="2"] circle:nth-child(1),.slds-icon-strength.slds-is-animated[data-slds-strength="2"] circle:nth-child(2),.slds-icon-strength.slds-is-animated[data-slds-strength="3"] circle:nth-child(1),.slds-icon-strength.slds-is-animated[data-slds-strength="3"] circle:nth-child(2),.slds-icon-strength.slds-is-animated[data-slds-strength="3"] circle:nth-child(3){-webkit-animation-play-state:running;animation-play-state:running}.slds-icon-strength.slds-is-paused circle{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}@-webkit-keyframes slds-icon-strength-positive-load{0%{fill:transparent;stroke:var(--slds-g-color-neutral-base-60,#939393)}100%{fill:var(--slds-g-color-success-base-50,#2e844a);stroke:var(--slds-g-color-success-base-50,#2e844a)}}@keyframes slds-icon-strength-positive-load{0%{fill:transparent;stroke:var(--slds-g-color-neutral-base-60,#939393)}100%{fill:var(--slds-g-color-success-base-50,#2e844a);stroke:var(--slds-g-color-success-base-50,#2e844a)}}@-webkit-keyframes slds-icon-strength-negative-load{0%{fill:transparent;stroke:var(--slds-g-color-neutral-base-60,#939393)}100%{fill:var(--slds-g-color-palette-pink-90,#fddde3);stroke:var(--slds-g-color-error-base-40,#ba0517)}}@keyframes slds-icon-strength-negative-load{0%{fill:transparent;stroke:var(--slds-g-color-neutral-base-60,#939393)}100%{fill:var(--slds-g-color-palette-pink-90,#fddde3);stroke:var(--slds-g-color-error-base-40,#ba0517)}}.slds-icon-trend{width:1rem;height:1rem;display:inline-block}.slds-icon-trend.slds-is-animated .slds-icon-trend__arrow{-webkit-animation:slds-icon-trend-arrow .8s .4s ease-in-out both;animation:slds-icon-trend-arrow .8s .4s ease-in-out both}.slds-icon-trend.slds-is-animated .slds-icon-trend__circle{-webkit-animation:slds-icon-trend-circle .8s ease-in-out both;animation:slds-icon-trend-circle .8s ease-in-out both}.slds-icon-trend.slds-is-paused .slds-icon-trend__arrow,.slds-icon-trend.slds-is-paused .slds-icon-trend__circle{-webkit-animation-play-state:paused;animation-play-state:paused}.slds-icon-trend[data-slds-trend=down]{color:var(--slds-g-color-error-base-30,#ba0517);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.slds-icon-trend[data-slds-trend=neutral]{color:var(--slds-g-color-neutral-base-50,#939393)}.slds-icon-trend[data-slds-trend=up]{color:var(--slds-g-color-success-base-50,#2e844a);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.slds-icon-trend__arrow,.slds-icon-trend__circle{stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.125px}.slds-icon-trend__arrow{stroke-dashoffset:.1px;stroke-dasharray:39.175px}.slds-icon-trend__circle{stroke-dasharray:42.3385px,46.3385px}@-webkit-keyframes slds-icon-trend-arrow{from{stroke-dashoffset:40.3px}}@keyframes slds-icon-trend-arrow{from{stroke-dashoffset:40.3px}}@-webkit-keyframes slds-icon-trend-circle{from{stroke-dasharray:.1px,46.3385px}}@keyframes slds-icon-trend-circle{from{stroke-dasharray:.1px,46.3385px}}.slds-icon-waffle_container{border:0;outline:0}.slds-icon-waffle_container:focus [class*=slds-r],.slds-icon-waffle_container:hover [class*=slds-r]{-webkit-animation:slds-icon-waffle-throb 2 .2s alternate;animation:slds-icon-waffle-throb 2 .2s alternate}.slds-icon-waffle_container:focus .slds-r1,.slds-icon-waffle_container:focus .slds-r2,.slds-icon-waffle_container:focus .slds-r3,.slds-icon-waffle_container:hover .slds-r1,.slds-icon-waffle_container:hover .slds-r2,.slds-icon-waffle_container:hover .slds-r3{background-color:var(--slds-g-color-brand-base-50,#418fde)}.slds-icon-waffle_container:focus .slds-r4,.slds-icon-waffle_container:focus .slds-r5,.slds-icon-waffle_container:focus .slds-r7,.slds-icon-waffle_container:hover .slds-r4,.slds-icon-waffle_container:hover .slds-r5,.slds-icon-waffle_container:hover .slds-r7{background-color:var(--slds-g-color-warning-base-70,#ed8b00)}.slds-icon-waffle_container:focus .slds-r6,.slds-icon-waffle_container:focus .slds-r8,.slds-icon-waffle_container:focus .slds-r9,.slds-icon-waffle_container:hover .slds-r6,.slds-icon-waffle_container:hover .slds-r8,.slds-icon-waffle_container:hover .slds-r9{background-color:var(--slds-g-color-palette-yellow-80,#ffb60f)}.slds-icon-waffle_container:focus .slds-r2,.slds-icon-waffle_container:focus .slds-r4,.slds-icon-waffle_container:hover .slds-r2,.slds-icon-waffle_container:hover .slds-r4{-webkit-transition-delay:50ms;transition-delay:50ms;-webkit-animation-delay:50ms;animation-delay:50ms}.slds-icon-waffle_container:focus .slds-r3,.slds-icon-waffle_container:focus .slds-r5,.slds-icon-waffle_container:focus .slds-r7,.slds-icon-waffle_container:hover .slds-r3,.slds-icon-waffle_container:hover .slds-r5,.slds-icon-waffle_container:hover .slds-r7{-webkit-transition-delay:.1s;transition-delay:.1s;-webkit-animation-delay:.1s;animation-delay:.1s}.slds-icon-waffle_container:focus .slds-r6,.slds-icon-waffle_container:focus .slds-r8,.slds-icon-waffle_container:hover .slds-r6,.slds-icon-waffle_container:hover .slds-r8{-webkit-transition-delay:150ms;transition-delay:150ms;-webkit-animation-delay:150ms;animation-delay:150ms}.slds-icon-waffle_container:focus .slds-r9,.slds-icon-waffle_container:hover .slds-r9{-webkit-transition-delay:.2s;transition-delay:.2s;-webkit-animation-delay:.2s;animation-delay:.2s}.slds-icon-waffle{width:1.3125rem;height:1.3125rem;position:relative;display:block;cursor:pointer}.slds-icon-waffle [class*=slds-r]{width:.3125rem;height:.3125rem;background-color:var(--slds-g-color-neutral-base-50,#747474);display:inline-block;position:absolute;border-radius:50%;-webkit-transition:background-color .1s;transition:background-color .1s;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;will-change:scale,background-color}.slds-icon-waffle .slds-r1{top:0;left:0}.slds-icon-waffle .slds-r2{top:0;left:.5rem}.slds-icon-waffle .slds-r3{top:0;right:0}.slds-icon-waffle .slds-r4{top:.5rem;left:0}.slds-icon-waffle .slds-r5{top:.5rem;left:.5rem}.slds-icon-waffle .slds-r6{top:.5rem;right:0}.slds-icon-waffle .slds-r7{bottom:0;left:0}.slds-icon-waffle .slds-r8{bottom:0;left:.5rem}.slds-icon-waffle .slds-r9{bottom:0;right:0}.slds-icon-waffle .slds-r1{-webkit-transition-delay:.2s;transition-delay:.2s}.slds-icon-waffle .slds-r2,.slds-icon-waffle .slds-r4{-webkit-transition-delay:150ms;transition-delay:150ms}.slds-icon-waffle .slds-r3,.slds-icon-waffle .slds-r5,.slds-icon-waffle .slds-r7{-webkit-transition-delay:.1s;transition-delay:.1s}.slds-icon-waffle .slds-r6,.slds-icon-waffle .slds-r8{-webkit-transition-delay:50ms;transition-delay:50ms}@-webkit-keyframes slds-icon-waffle-throb{to{-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes slds-icon-waffle-throb{to{-webkit-transform:scale(1.5);transform:scale(1.5)}}.slds-icon-help{width:1.5rem;height:1.5rem;fill:var(--slds-g-color-neutral-base-70,#aeaeae)}.slds-icon-help:hover .slds-icon-help_hover{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.slds-icon-help:focus{-webkit-animation:slds-click-global-action 80ms cubic-bezier(1,1.9,.94,.98);animation:slds-click-global-action 80ms cubic-bezier(1,1.9,.94,.98)}.slds-icon-help:focus .slds-icon-help_focus{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.slds-icon-help mask{mask-type:alpha}.slds-icon-help_hover{opacity:0;-webkit-transform:scale(.1,.1);transform:scale(.1,.1);-webkit-transform-origin:45px 47px;transform-origin:45px 47px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;fill:var(--slds-g-link-color-hover,#014486)}.slds-icon-help_focus{opacity:0;-webkit-transform:scale(.1,.1);transform:scale(.1,.1);-webkit-transform-origin:45px 47px;transform-origin:45px 47px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;fill:var(--slds-g-color-brand-base-50,#0176d3)}.slds-icon-help svg{width:1.5rem;height:1.5rem}.slds-icon-help g{-webkit-mask:url(#questionMark);mask:url(#questionMark)}@-webkit-keyframes slds-click-global-action{25%{-webkit-transform:scale(.95,.95);transform:scale(.95,.95)}100%{-webkit-transform:scale(.98,.98);transform:scale(.98,.98)}}@keyframes slds-click-global-action{25%{-webkit-transform:scale(.95,.95);transform:scale(.95,.95)}100%{-webkit-transform:scale(.98,.98);transform:scale(.98,.98)}}.slds-icon-typing{display:inline-block;padding:.25rem 0}.slds-icon-typing.slds-is-animated .slds-icon-typing__dot{-webkit-animation:slds-icon-typing__dot-first 1.2s infinite ease-in-out;animation:slds-icon-typing__dot-first 1.2s infinite ease-in-out}.slds-icon-typing.slds-is-animated .slds-icon-typing__dot:nth-child(1){-webkit-animation-name:slds-icon-typing__dot-first;animation-name:slds-icon-typing__dot-first}.slds-icon-typing.slds-is-animated .slds-icon-typing__dot:nth-child(2){-webkit-animation-name:slds-icon-typing__dot-second;animation-name:slds-icon-typing__dot-second}.slds-icon-typing.slds-is-animated .slds-icon-typing__dot:nth-child(3){-webkit-animation-name:slds-icon-typing__dot-third;animation-name:slds-icon-typing__dot-third}.slds-icon-typing.slds-is-paused .slds-icon-typing__dot{-webkit-animation-play-state:paused;animation-play-state:paused}.slds-icon-typing__dot{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9);border-radius:50%;display:inline-block;height:.5rem;margin:0 .125rem;width:.5rem}@-webkit-keyframes slds-icon-typing__dot-first{0%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}16%{background-color:var(--slds-g-color-neutral-base-60,#c9c9c9)}100%,33%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}}@keyframes slds-icon-typing__dot-first{0%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}16%{background-color:var(--slds-g-color-neutral-base-60,#c9c9c9)}100%,33%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}}@-webkit-keyframes slds-icon-typing__dot-second{0%,33%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}50%{background-color:var(--slds-g-color-neutral-base-60,#c9c9c9)}100%,67%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}}@keyframes slds-icon-typing__dot-second{0%,33%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}50%{background-color:var(--slds-g-color-neutral-base-60,#c9c9c9)}100%,67%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}}@-webkit-keyframes slds-icon-typing__dot-third{0%,67%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}83%{background-color:var(--slds-g-color-neutral-base-60,#c9c9c9)}100%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}}@keyframes slds-icon-typing__dot-third{0%,67%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}83%{background-color:var(--slds-g-color-neutral-base-60,#c9c9c9)}100%{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}}.slds-dynamic-menu .slds-popover__footer{background-color:transparent}.slds-dynamic-menu__header{font-size:.875rem;font-weight:700}.slds-carousel{position:relative}.slds-carousel__stage{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.slds-carousel__panels{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:-webkit-transform 250ms ease-in;transition:-webkit-transform 250ms ease-in;transition:transform 250ms ease-in;transition:transform 250ms ease-in,-webkit-transform 250ms ease-in;min-height:0}.slds-carousel__panel{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.slds-carousel__panel-action{display:block;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem}.slds-carousel__panel-action:focus{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;border-color:#014486;outline:0}.slds-carousel__image{border-top-left-radius:.25rem;border-top-right-radius:.25rem;overflow:hidden}.slds-carousel__image>img{width:100%}.slds-carousel__content{background:var(--slds-g-color-neutral-base-100,#fff);padding:.75rem;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;text-align:center;height:6.625rem;overflow-x:hidden;overflow-y:auto}.slds-carousel__content-title{font-size:1rem;font-weight:600}.slds-carousel__indicators{-ms-flex-item-align:center;align-self:center;margin:.5rem 0}.slds-carousel__indicator{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin:0 .25rem}.slds-carousel__indicator-action{width:1rem;height:1rem;background:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#e5e5e5);border-radius:50%}.slds-carousel__indicator-action.slds-is-active,.slds-carousel__indicator-action.slds-is-active:hover{background:var(--slds-g-color-brand-base-50,#0176d3);border-color:var(--slds-g-color-brand-base-50,#0176d3)}.slds-carousel__indicator-action:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-carousel__indicator-action:focus{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;background-color:var(--slds-g-color-brand-base-30,#014486);border-color:var(--slds-g-color-brand-base-30,#014486);outline:0}.slds-carousel__autoplay{position:absolute;left:0;bottom:.25rem}.slds-card--empty .slds-card__body,.slds-card_empty .slds-card__body{text-align:center}.slds-card{position:relative;padding-top:var(--slds-c-card-spacing-block-start,var(--sds-c-card-spacing-block-start,var(--sds-c-card-spacing-block,0)));padding-right:var(--slds-c-card-spacing-inline-end,var(--sds-c-card-spacing-inline-end,var(--sds-c-card-spacing-inline,0)));padding-bottom:var(--slds-c-card-spacing-block-end,var(--sds-c-card-spacing-block-end,var(--sds-c-card-spacing-block,0)));padding-left:var(--slds-c-card-spacing-inline-start,var(--sds-c-card-spacing-inline-start,var(--sds-c-card-spacing-inline,0)));background:var(--slds-c-card-color-background,var(--sds-c-card-color-background,var(--slds-g-color-neutral-base-100,#fff)));border-width:var(--slds-c-card-sizing-border,var(--sds-c-card-sizing-border,1px));border-style:solid;border-color:var(--slds-c-card-color-border,var(--sds-c-card-color-border,var(--slds-g-color-border-base-1,#c9c9c9)));border-radius:var(--slds-c-card-radius-border,var(--sds-c-card-radius-border,.25rem));background-clip:padding-box;-webkit-box-shadow:var(--slds-c-card-shadow,var(--sds-c-card-shadow,0 2px 2px 0 rgba(0,0,0,.1)));box-shadow:var(--slds-c-card-shadow,var(--sds-c-card-shadow,0 2px 2px 0 rgba(0,0,0,.1)));color:var(--slds-c-card-text-color,var(--sds-c-card-text-color))}.slds-card+.slds-card{margin-top:1rem}.slds-card__header{padding-top:var(--slds-c-card-header-spacing-block-start,var(--sds-c-card-header-spacing-block-start,var(--slds-c-card-header-spacing-block,var(--sds-c-card-header-spacing-block,.75rem))));padding-right:var(--slds-c-card-header-spacing-inline-end,var(--sds-c-card-header-spacing-inline-end,var(--slds-c-card-header-spacing-inline,var(--sds-c-card-header-spacing-inline,1rem))));padding-bottom:var(--slds-c-card-header-spacing-block-end,var(--sds-c-card-header-spacing-block-end,var(--slds-c-card-header-spacing-block,var(--sds-c-card-header-spacing-block,0))));padding-left:var(--slds-c-card-header-spacing-inline-start,var(--sds-c-card-header-spacing-inline-start,var(--slds-c-card-header-spacing-inline,var(--sds-c-card-header-spacing-inline,1rem))));margin:0 0 var(--slds-c-card-header-spacing-block-end,var(--sds-c-card-header-spacing-block-end,.75rem))}.slds-card__header-title{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:var(--slds-c-card-heading-font-size,var(--sds-c-card-heading-font-size,1rem));font-weight:var(--slds-c-card-heading-font-weight,var(--sds-c-card-heading-font-weight,700));line-height:1.25}.slds-card__header-link{color:inherit;font-weight:var(--slds-c-card-heading-font-weight,var(--sds-c-card-heading-font-weight,700))}.slds-card__body{margin-top:var(--slds-c-card-body-spacing-block-start,var(--sds-c-card-body-spacing-block-start,var(--slds-c-card-body-spacing-block,var(--sds-c-card-body-spacing-block,.75rem))));margin-bottom:var(--slds-c-card-body-spacing-block-end,var(--sds-c-card-body-spacing-block-end,var(--slds-c-card-body-spacing-block,var(--sds-c-card-body-spacing-block,.75rem))));padding-right:var(--slds-c-card-body-spacing-inline-end,var(--sds-c-card-body-spacing-inline-end,var(--slds-c-card-body-spacing-inline,var(--sds-c-card-body-spacing-inline))));padding-left:var(--slds-c-card-body-spacing-inline-start,var(--sds-c-card-body-spacing-inline-start,var(--slds-c-card-body-spacing-inline,var(--sds-c-card-body-spacing-inline))))}.slds-card__body--inner,.slds-card__body_inner{/*! @css-var-fallback padding-right */--slds-c-card-body-spacing-inline-end:var(--sds-c-card-body-spacing-inline-end, var(--sds-c-card-body-spacing-inline, 1rem));/*! @css-var-fallback padding-left */--slds-c-card-body-spacing-inline-start:var(--sds-c-card-body-spacing-inline-start, var(--sds-c-card-body-spacing-inline, 1rem));padding-top:0;padding-bottom:0}.slds-card__body:empty,.slds-card__footer:empty{display:none}.slds-card__footer{padding-top:var(--slds-c-card-footer-spacing-block-start,var(--sds-c-card-footer-spacing-block-start,var(--slds-c-card-footer-spacing-block,var(--sds-c-card-footer-spacing-block,.75rem))));padding-right:var(--slds-c-card-footer-spacing-inline-end,var(--sds-c-card-footer-spacing-inline-end,var(--slds-c-card-footer-spacing-inline,var(--sds-c-card-footer-spacing-inline,1rem))));padding-bottom:var(--slds-c-card-footer-spacing-block-end,var(--sds-c-card-footer-spacing-block-end,var(--slds-c-card-footer-spacing-block,var(--sds-c-card-footer-spacing-block,.75rem))));padding-left:var(--slds-c-card-footer-spacing-inline-start,var(--sds-c-card-footer-spacing-inline-start,var(--slds-c-card-footer-spacing-inline,var(--sds-c-card-footer-spacing-inline,1rem))));margin-top:var(--slds-c-card-footer-spacing-block-start,var(--sds-c-card-footer-spacing-block-start,.75rem));text-align:var(--slds-c-card-footer-text-align,var(--sds-c-card-footer-text-align,center));font-size:var(--slds-c-card-footer-font-size,var(--sds-c-card-footer-font-size,.8125rem));border-top-width:var(--slds-c-card-footer-sizing-border,var(--sds-c-card-footer-sizing-border,1px));border-top-style:solid;border-top-color:var(--slds-c-card-footer-color-border,var(--sds-c-card-footer-color-border,var(--slds-g-color-border-base-1,#c9c9c9)))}.slds-card__footer-action{display:block}.slds-card__tile{margin-top:.75rem}.slds-region__pinned-left .slds-card,.slds-region__pinned-left .slds-card-wrapper,.slds-region__pinned-left .slds-card_boundary,.slds-region__pinned-left .slds-tabs_card,.slds-region__pinned-right .slds-card,.slds-region__pinned-right .slds-card-wrapper,.slds-region__pinned-right .slds-card_boundary,.slds-region__pinned-right .slds-tabs_card{border-radius:0;border:0;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);-webkit-box-shadow:none;box-shadow:none}.slds-region__pinned-left .slds-card-wrapper:last-child,.slds-region__pinned-left .slds-card:last-child,.slds-region__pinned-left .slds-card_boundary:last-child,.slds-region__pinned-left .slds-tabs_card:last-child,.slds-region__pinned-right .slds-card-wrapper:last-child,.slds-region__pinned-right .slds-card:last-child,.slds-region__pinned-right .slds-card_boundary:last-child,.slds-region__pinned-right .slds-tabs_card:last-child{border-bottom:0}.slds-card-wrapper{padding:1rem;background:var(--slds-c-card-color-background,var(--sds-c-card-color-background,var(--slds-g-color-neutral-base-100,#fff)));border-width:var(--slds-c-card-sizing-border,var(--sds-c-card-sizing-border,1px));border-style:solid;border-color:var(--slds-c-card-color-border,var(--sds-c-card-color-border,var(--slds-g-color-border-base-1,#c9c9c9)));border-radius:var(--slds-c-card-radius-border,var(--sds-c-card-radius-border,.25rem));background-clip:padding-box;-webkit-box-shadow:var(--slds-c-card-shadow,var(--sds-c-card-shadow,0 2px 2px 0 rgba(0,0,0,.1)));box-shadow:var(--slds-c-card-shadow,var(--sds-c-card-shadow,0 2px 2px 0 rgba(0,0,0,.1)))}.slds-card-wrapper .slds-card__body,.slds-card-wrapper .slds-card__footer,.slds-card-wrapper .slds-card__header{padding-left:0;padding-right:0}.slds-card .slds-card,.slds-card .slds-card-wrapper,.slds-card-wrapper .slds-card,.slds-card-wrapper .slds-card-wrapper,.slds-modal .slds-card,.slds-modal .slds-card-wrapper,.slds-tabs--default .slds-card,.slds-tabs--default .slds-card-wrapper,.slds-tabs_card .slds-card,.slds-tabs_card .slds-card-wrapper,.slds-tabs_card.slds-tabs_card .slds-card,.slds-tabs_card.slds-tabs_card .slds-card-wrapper,.slds-tabs_default .slds-card,.slds-tabs_default .slds-card-wrapper{border:0;-webkit-box-shadow:none;box-shadow:none}.slds-card .slds-card_boundary,.slds-modal .slds-card_boundary,.slds-tabs--default .slds-card_boundary,.slds-tabs_default .slds-card_boundary{border-width:var(--slds-c-card-sizing-border,var(--sds-c-card-sizing-border,1px));border-style:solid;border-color:var(--slds-c-card-color-border,var(--sds-c-card-color-border,var(--slds-g-color-border-base-1,#c9c9c9)));border-radius:var(--slds-c-card-radius-border,var(--sds-c-card-radius-border,.25rem))}.slds-tabs_card,.slds-tabs_card.slds-tabs_card{padding:.75rem 1rem;background:var(--slds-c-card-color-background,var(--sds-c-card-color-background,var(--slds-g-color-neutral-base-100,#fff)));border-width:var(--slds-c-card-sizing-border,var(--sds-c-card-sizing-border,1px));border-style:solid;border-color:var(--slds-c-card-color-border,var(--sds-c-card-color-border,var(--slds-g-color-border-base-1,#c9c9c9)));border-radius:var(--slds-c-card-radius-border,var(--sds-c-card-radius-border,.25rem));-webkit-box-shadow:var(--slds-c-card-shadow,var(--sds-c-card-shadow,0 2px 2px 0 rgba(0,0,0,.1)));box-shadow:var(--slds-c-card-shadow,var(--sds-c-card-shadow,0 2px 2px 0 rgba(0,0,0,.1)))}.slds-tabs_card .slds-card,.slds-tabs_card .slds-card-wrapper,.slds-tabs_card.slds-tabs_card .slds-card,.slds-tabs_card.slds-tabs_card .slds-card-wrapper{padding-left:0;padding-right:0}.slds-tabs_card .slds-card__body,.slds-tabs_card .slds-card__footer,.slds-tabs_card .slds-card__header,.slds-tabs_card.slds-tabs_card .slds-card__body,.slds-tabs_card.slds-tabs_card .slds-card__footer,.slds-tabs_card.slds-tabs_card .slds-card__header{padding-left:0;padding-right:0;margin-left:0;margin-right:0}.slds-tabs_card .slds-card__header,.slds-tabs_card.slds-tabs_card .slds-card__header{padding-top:0}.slds-card-wrapper .slds-card_boundary,.slds-tabs_card .slds-card_boundary,.slds-tabs_card.slds-tabs_card .slds-card_boundary{border-width:var(--slds-c-card-sizing-border,var(--sds-c-card-sizing-border,1px));border-style:solid;border-color:var(--slds-c-card-color-border,var(--sds-c-card-color-border,var(--slds-g-color-border-base-1,#c9c9c9)));border-radius:var(--slds-c-card-radius-border,var(--sds-c-card-radius-border,.25rem))}.slds-card-wrapper .slds-card_boundary .slds-card__header,.slds-tabs_card .slds-card_boundary .slds-card__header,.slds-tabs_card.slds-tabs_card .slds-card_boundary .slds-card__header{padding-top:var(--slds-c-card-header-spacing-block-start,var(--sds-c-card-header-spacing-block-start,var(--slds-c-card-header-spacing-block,var(--sds-c-card-header-spacing-block,.75rem))));padding-right:var(--slds-c-card-header-spacing-inline-end,var(--sds-c-card-header-spacing-inline-end,var(--slds-c-card-header-spacing-inline,var(--sds-c-card-header-spacing-inline,1rem))));padding-bottom:var(--slds-c-card-header-spacing-block-end,var(--sds-c-card-header-spacing-block-end,var(--slds-c-card-header-spacing-block,var(--sds-c-card-header-spacing-block,0))));padding-left:var(--slds-c-card-header-spacing-inline-start,var(--sds-c-card-header-spacing-inline-start,var(--slds-c-card-header-spacing-inline,var(--sds-c-card-header-spacing-inline,1rem))))}.slds-card-wrapper .slds-card_boundary .slds-card__body--inner,.slds-card-wrapper .slds-card_boundary .slds-card__body_inner,.slds-tabs_card .slds-card_boundary .slds-card__body--inner,.slds-tabs_card .slds-card_boundary .slds-card__body_inner,.slds-tabs_card.slds-tabs_card .slds-card_boundary .slds-card__body--inner,.slds-tabs_card.slds-tabs_card .slds-card_boundary .slds-card__body_inner{padding:0;padding-right:var(--slds-c-card-body-spacing-inline-end,var(--sds-c-card-body-spacing-inline-end,var(--slds-c-card-body-spacing-inline,var(--sds-c-card-body-spacing-inline,1rem))));padding-left:var(--slds-c-card-body-spacing-inline-start,var(--sds-c-card-body-spacing-inline-start,var(--slds-c-card-body-spacing-inline,var(--sds-c-card-body-spacing-inline,1rem))))}.slds-card-wrapper .slds-card_boundary .slds-card__footer,.slds-tabs_card .slds-card_boundary .slds-card__footer,.slds-tabs_card.slds-tabs_card .slds-card_boundary .slds-card__footer{padding-top:var(--slds-c-card-footer-spacing-block-start,var(--sds-c-card-footer-spacing-block-start,var(--slds-c-card-footer-spacing-block,var(--sds-c-card-footer-spacing-block,.75rem))));padding-right:var(--slds-c-card-footer-spacing-inline-end,var(--sds-c-card-footer-spacing-inline-end,var(--slds-c-card-footer-spacing-inline,var(--sds-c-card-footer-spacing-inline,1rem))));padding-bottom:var(--slds-c-card-footer-spacing-block-end,var(--sds-c-card-footer-spacing-block-end,var(--slds-c-card-footer-spacing-block,var(--sds-c-card-footer-spacing-block,.75rem))));padding-left:var(--slds-c-card-footer-spacing-inline-start,var(--sds-c-card-footer-spacing-inline-start,var(--slds-c-card-footer-spacing-inline,var(--sds-c-card-footer-spacing-inline,1rem))))}.slds-chat{margin-bottom:.75rem}.slds-chat-list{padding:0 .75rem}.slds-chat-listitem{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:.75rem}.slds-chat-listitem_outbound{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.slds-chat-listitem_inbound+.slds-chat-listitem_inbound,.slds-chat-listitem_outbound+.slds-chat-listitem_outbound{margin-top:.25rem}.slds-chat-listitem_bookend{margin:1rem 0;margin-left:-.75rem;margin-right:-.75rem}.slds-chat-listitem_bookend+.slds-chat-listitem_bookend{margin-top:3rem}.slds-chat-listitem_event{margin:1.5rem 0}.slds-chat-icon{margin-right:.5rem}.slds-chat-message{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-chat-message_faux-avatar{padding-left:2.5rem}.slds-chat-avatar{margin-right:.5rem;min-width:2rem}.slds-chat-avatar__intials{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);color:var(--slds-g-color-neutral-base-30,#444)}.slds-chat-avatar__intials.slds-chat-avatar__intials:hover{color:var(--slds-g-color-neutral-base-30,#444)}.slds-chat-message__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.slds-chat-message__image_loading{width:15rem;height:11.25rem}.slds-chat-message__text{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;display:inline-block;font-size:.8125rem;max-width:26.25rem;white-space:pre-line}.slds-chat-message__text a{color:var(--slds-g-link-color-focus,#014486);text-decoration:underline}.slds-chat-message__text a:hover{text-decoration:none}.slds-chat-message__file{width:15rem}.slds-chat-message__file,.slds-chat-message__image{overflow:hidden}.slds-chat-message__file .slds-file:hover,.slds-chat-message__image .slds-file:hover{-webkit-box-shadow:none;box-shadow:none;-webkit-transition:none;transition:none}.slds-chat-message__file_inbound,.slds-chat-message__file_outbound,.slds-chat-message__image_inbound,.slds-chat-message__image_outbound,.slds-chat-message__text_delivery-failure,.slds-chat-message__text_inbound,.slds-chat-message__text_outbound,.slds-chat-message__text_outbound-agent,.slds-chat-message__text_unsupported-type{border-radius:.5rem .5rem 0;color:var(--slds-g-color-neutral-base-100,#fff);min-height:2rem}.slds-chat-message__text_delivery-failure,.slds-chat-message__text_inbound,.slds-chat-message__text_outbound,.slds-chat-message__text_outbound-agent,.slds-chat-message__text_unsupported-type{padding:.5rem}.slds-chat-message__file_inbound,.slds-chat-message__file_outbound,.slds-chat-message__image_inbound,.slds-chat-message__image_outbound{padding:0;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-chat-message__file_inbound,.slds-chat-message__file_outbound,.slds-chat-message__image_inbound,.slds-chat-message__image_outbound{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-chat-message__text_inbound{margin-right:auto;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-radius:.5rem .5rem .5rem 0;color:var(--slds-g-color-neutral-base-10,#181818)}.slds-chat-message__image_inbound{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-radius:.5rem .5rem .5rem 0}.slds-chat-message__file_inbound{border-radius:.5rem .5rem .5rem 0;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-chat-message__text_outbound{margin-left:auto;background-color:var(--slds-g-color-brand-base-30,#014486)}.slds-chat-message__text_outbound-agent{background-color:var(--slds-g-color-neutral-base-50,#747474);margin-left:auto}.slds-chat-message__text_outbound a,.slds-chat-message__text_outbound-agent a{color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-chat-message__text_unsupported-type{background-color:var(--slds-g-color-neutral-base-100,#fff);border-radius:.5rem .5rem .5rem 0;border:var(--slds-g-color-warning-base-60,#fe9339) 1px solid;color:var(--slds-g-color-neutral-base-10,#181818);margin-right:auto}.slds-chat-message__text_unsupported-type .slds-chat-icon.slds-icon-utility-warning .slds-icon{fill:var(--slds-g-color-warning-base-50,#fe9339)}.slds-chat-message__text_delivery-failure{background-color:var(--slds-g-color-neutral-base-100,#fff);border:var(--slds-g-color-error-base-40,#ea001e) 1px solid;color:var(--slds-g-color-neutral-base-10,#181818);margin-left:auto}.slds-chat-message__text_delivery-failure .slds-chat-message__text_delivery-failure-reason{display:-webkit-box;display:-ms-flexbox;display:flex;padding:.5rem .5rem 0;margin:.5rem -.5rem 0;color:var(--slds-g-color-error-base-40,#ea001e);border-top:var(--slds-g-color-error-base-40,#ea001e) 1px solid}.slds-chat-message__text_delivery-failure .slds-chat-icon.slds-icon-utility-error .slds-icon{fill:var(--slds-g-color-error-base-40,#ea001e)}.slds-chat-message__text_sneak-peak,.slds-chat-message__text_sneak-peek{font-style:italic}.slds-chat-message__text_sneak-peak .slds-icon-typing,.slds-chat-message__text_sneak-peek .slds-icon-typing{margin-right:.5rem}.slds-chat-message__meta{color:var(--slds-g-color-neutral-base-30,#444);font-size:.625rem;margin:.125rem 0 0 .5rem}.slds-chat-message__action{font-size:.75rem;margin-left:.5rem;line-height:1.25}.slds-chat-message__action .slds-chat-icon.slds-icon-utility-redo .slds-icon{width:.75rem;height:.75rem;fill:var(--slds-g-link-color,#0176d3)}.slds-chat-event{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--slds-g-color-neutral-base-30,#444);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8125rem;text-align:center;width:100%}.slds-chat-event.slds-has-error{color:var(--slds-g-color-error-base-40,#ea001e)}.slds-chat-event.slds-has-error svg{fill:var(--slds-g-color-error-base-40,#ea001e)}.slds-chat-event__rule{border-top:1px var(--slds-g-color-border-base-1,#e5e5e5) solid;height:.0625rem;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.slds-chat-event__body{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 .5rem}.slds-chat-event__agent-message{-webkit-box-flex:3;-ms-flex-positive:3;flex-grow:3;font-size:.75rem;font-style:italic;margin-top:.5rem;width:100%}.slds-chat-bookend{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:var(--slds-g-color-border-base-1,#e5e5e5) 0 solid;border-bottom-width:1px;color:var(--slds-g-color-neutral-base-30,#444);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.8125rem;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:.5rem .75rem;width:100%}.slds-chat-bookend_stop{border-width:1px 0 0}.slds-chat_past .slds-chat-listitem_event{margin:1rem 0}.slds-chat_past .slds-chat-message__meta{margin:.25rem 0 0}.slds-chat_past .slds-chat-message__meta b{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-form-element{position:relative;min-width:0}.slds-form-element__label{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;display:inline-block;color:var(--slds-g-color-neutral-base-30,#444);font-size:.75rem;padding-right:.5rem;padding-top:.25rem;margin-bottom:.125rem}[dir=rtl] .slds-form-element__label{/*! @noflip */padding-right:0;/*! @noflip */padding-left:.5rem}.slds-form-element__label:empty{margin:0}.slds-form-element__control{clear:left;position:relative}[dir=rtl] .slds-form-element__control{/*! @noflip */clear:right}.slds-form-element__control .slds-checkbox,.slds-form-element__control .slds-radio{display:block}.slds-form-element__icon{display:inline-block;position:relative;padding-top:.25rem;vertical-align:top;line-height:1;z-index:1}.slds-form-element__icon .slds-button_icon{position:relative}.slds-form-element__help,.slds-form-element__helper{font-size:.75rem;margin-top:.125rem;display:block}.slds-form-element--edit .slds-form-element__static,.slds-form-element_edit .slds-form-element__static{width:calc(100% - 1.5rem)}.slds-form-element_readonly{-ms-flex-preferred-size:0;flex-basis:0%;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);margin-bottom:0}.slds-form-element_readonly .slds-form-element__control{padding-top:.125rem;padding-bottom:.125rem}.slds-form-element_readonly .slds-form-element__label{margin-bottom:0}.slds-form-element__legend{font-weight:700;float:left}[dir=rtl] .slds-form-element__legend{/*! @noflip */float:right;/*! @noflip */padding-right:0}.slds-form-element__addon{display:inline-block;margin:0 .5rem;-ms-flex-item-align:center;align-self:center}.slds-form-element__static{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;display:inline-block;font-size:.875rem;font-weight:400;color:var(--slds-g-color-neutral-base-10,#181818);width:100%}.slds-form-element__static.slds-text-longform :last-child{margin-bottom:0}.slds-form-element__static:empty{min-height:calc(1.25rem + 1px);vertical-align:bottom}.slds-form-element__static--edit{width:calc(100% - 1.5rem)}.slds-required{color:var(--slds-g-color-error-base-40,#ea001e);margin:0 .125rem}.slds-has-error .slds-form-element__help{color:var(--slds-g-color-error-base-40,#ea001e)}.slds-input-has-icon .slds-input__icon{fill:var(--slds-g-color-neutral-base-50,#aeaeae)}.slds-input{padding-top:0;padding-right:var(--slds-c-input-spacing-horizontal-end,var(--sds-c-input-spacing-horizontal-end,1rem));padding-bottom:0;padding-left:var(--slds-c-input-spacing-horizontal-start,var(--sds-c-input-spacing-horizontal-start,.75rem));width:100%;min-height:calc(1.875rem + (1px * 2));line-height:1.875rem;border:1px solid var(--slds-c-input-color-border,var(--sds-c-input-color-border,var(--slds-g-color-border-base-4,#c9c9c9)));border-radius:var(--slds-c-input-radius-border,var(--sds-c-input-radius-border,.25rem));background-color:var(--slds-c-input-color-background,var(--sds-c-input-color-background,var(--slds-g-color-neutral-base-100,#fff)));color:var(--slds-c-input-text-color,var(--sds-c-input-text-color));-webkit-box-shadow:var(--slds-c-input-shadow,var(--sds-c-input-shadow));box-shadow:var(--slds-c-input-shadow,var(--sds-c-input-shadow));-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block}.slds-input:active,.slds-input:focus{/*! @css-var-fallback border-color */--slds-c-input-color-border:var(--slds-c-input-color-border-focus, var(--sds-c-input-color-border-focus, var(--slds-g-color-brand-base-60, #1b96ff)));/*! @css-var-fallback background-color */--slds-c-input-background-color:var(--slds-c-input-color-background-focus, var(--sds-c-input-color-background-focus, var(--slds-g-color-neutral-base-100, white)));/*! @css-var-fallback color */--slds-c-input-text-color:var(--slds-c-input-text-color-focus, var(--sds-c-input-text-color-focus));/*! @css-var-fallback box-shadow */--slds-c-input-shadow:var(--slds-c-input-shadow-focus, var(--sds-c-input-shadow-focus, 0 0 3px #0176d3));outline:0}.slds-input.slds-is-disabled,.slds-input[disabled]{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9);color:var(--slds-g-color-neutral-base-50,#444);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-input.slds-is-disabled:active,.slds-input.slds-is-disabled:focus,.slds-input[disabled]:active,.slds-input[disabled]:focus{-webkit-box-shadow:none;box-shadow:none}.slds-input[readonly]{/*! @css-var-fallback padding-left */--slds-c-input-spacing-horizontal-start:0;/*! @css-var-fallback border-color */--slds-c-input-color-border:transparent;/*! @css-var-fallback background-color */--slds-c-input-color-background:transparent;font-size:.875rem;font-weight:400}.slds-input[type=search]::-ms-clear{display:none;width:0;height:0}.slds-input[type=search]::-webkit-search-cancel-button,.slds-input[type=search]::-webkit-search-decoration,.slds-input[type=search]::-webkit-search-results-button,.slds-input[type=search]::-webkit-search-results-decoration{display:none}.slds-input[type=email],.slds-input[type=tel],.slds-input[type=url]{direction:ltr;text-align:left}.slds-input--bare,.slds-input_bare{/*! @css-var-fallback background-color */--slds-c-input-color-background:transparent;/*! @css-var-fallback padding-right */--slds-c-input-spacing-horizontal-end:0;/*! @css-var-fallback padding-left */--slds-c-input-spacing-horizontal-start:0.75rem;/*! @css-var-fallback color */--slds-c-input-text-color:var(--slds-g-color-neutral-base-10, #181818);border:0}.slds-input--bare:active,.slds-input--bare:focus,.slds-input_bare:active,.slds-input_bare:focus{/*! @css-var-fallback box-shadow */--slds-c-input-shadow-focus:none}.slds-input--height,.slds-input_height{min-height:calc(1.875rem + (1px * 2))}.slds-input_faux{padding-top:0;padding-right:var(--slds-c-input-spacing-horizontal-end,var(--sds-c-input-spacing-horizontal-end,1rem));padding-bottom:0;padding-left:var(--slds-c-input-spacing-horizontal-start,var(--sds-c-input-spacing-horizontal-start,.75rem));width:100%;min-height:calc(1.875rem + (1px * 2));line-height:1.875rem;border:1px solid var(--slds-c-input-color-border,var(--sds-c-input-color-border,var(--slds-g-color-border-base-4,#c9c9c9)));border-radius:var(--slds-c-input-radius-border,var(--sds-c-input-radius-border,.25rem));background-color:var(--slds-c-input-color-background,var(--sds-c-input-color-background,var(--slds-g-color-neutral-base-100,#fff)));color:var(--slds-c-input-text-color,var(--sds-c-input-text-color));-webkit-box-shadow:var(--slds-c-input-shadow,var(--sds-c-input-shadow));box-shadow:var(--slds-c-input-shadow,var(--sds-c-input-shadow));-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:left}.slds-input_faux.slds-is-disabled{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9);color:var(--slds-g-color-neutral-base-50,#444);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-input_faux.slds-is-disabled:active,.slds-input_faux.slds-is-disabled:focus{-webkit-box-shadow:none;box-shadow:none}.slds-input_faux>span:before{content:"";display:inline-block}.slds-input_borders[readonly]{/*! @css-var-fallback padding-right */--slds-c-input-spacing-horizontal-start:0.75rem;/*! @css-var-fallback border-color */--slds-c-input-color-border:var(--slds-g-color-border-base-4, #c9c9c9)}.slds-input-has-icon{position:relative}.slds-input-has-icon .slds-input__icon{width:.875rem;height:.875rem;position:absolute;top:50%;margin-top:-.4375rem;line-height:1;border:0;z-index:2}.slds-input-has-icon .slds-input__icon:not(button){pointer-events:none}.slds-input-has-icon--left .slds-input__icon,.slds-input-has-icon_left .slds-input__icon{left:.75rem}.slds-input-has-icon--left .slds-input,.slds-input-has-icon--left .slds-input--bare,.slds-input-has-icon--left .slds-input_bare,.slds-input-has-icon--left .slds-input_faux,.slds-input-has-icon_left .slds-input,.slds-input-has-icon_left .slds-input--bare,.slds-input-has-icon_left .slds-input_bare,.slds-input-has-icon_left .slds-input_faux{/*! @css-var-fallback padding-left */--slds-c-input-spacing-horizontal-start:2rem}.slds-input-has-icon--right .slds-input__icon,.slds-input-has-icon_right .slds-input__icon{right:.75rem}.slds-input-has-icon--right .slds-input,.slds-input-has-icon--right .slds-input--bare,.slds-input-has-icon--right .slds-input_bare,.slds-input-has-icon--right .slds-input_faux,.slds-input-has-icon_right .slds-input,.slds-input-has-icon_right .slds-input--bare,.slds-input-has-icon_right .slds-input_bare,.slds-input-has-icon_right .slds-input_faux{/*! @css-var-fallback padding-right */--slds-c-input-spacing-horizontal-end:2rem}.slds-input-has-icon--left-right .slds-input__icon--left,.slds-input-has-icon--left-right .slds-input__icon_left,.slds-input-has-icon_left-right .slds-input__icon--left,.slds-input-has-icon_left-right .slds-input__icon_left{left:.75rem}.slds-input-has-icon--left-right .slds-input__icon--right,.slds-input-has-icon--left-right .slds-input__icon_right,.slds-input-has-icon_left-right .slds-input__icon--right,.slds-input-has-icon_left-right .slds-input__icon_right{right:.75rem}.slds-input-has-icon--left-right .slds-input,.slds-input-has-icon--left-right .slds-input--bare,.slds-input-has-icon--left-right .slds-input_bare,.slds-input-has-icon--left-right .slds-input_faux,.slds-input-has-icon_left-right .slds-input,.slds-input-has-icon_left-right .slds-input--bare,.slds-input-has-icon_left-right .slds-input_bare,.slds-input-has-icon_left-right .slds-input_faux{/*! @css-var-fallback padding-left */--slds-c-input-spacing-horizontal-start:2rem;/*! @css-var-fallback padding-right */--slds-c-input-spacing-horizontal-end:2rem}.slds-input-has-icon_group-right .slds-input,.slds-input-has-icon_group-right .slds-input--bare,.slds-input-has-icon_group-right .slds-input_bare,.slds-input-has-icon_group-right .slds-input_faux{/*! @css-var-fallback padding-right */--slds-c-input-spacing-horizontal-end:calc(3rem + 0.5rem)}.slds-input__icon-group{position:absolute;height:1rem;margin-top:-.5rem}.slds-input__icon-group_right{right:0;top:50%}.slds-input__icon-group_right .slds-input__icon--right,.slds-input__icon-group_right .slds-input__icon_right{right:.5rem}.slds-input__icon-group_right .slds-input__spinner{right:1.5rem;left:auto}.slds-input-has-fixed-addon{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-has-error .slds-input{/*! @css-var-fallback border-color */--slds-c-input-color-border:var(--slds-g-color-error-base-40, #ea001e);/*! @css-var-fallback box-shadow */--slds-c-input-shadow:var(--slds-g-color-error-base-40, #ea001e) 0 0 0 1px inset;/*! @css-var-fallback background-color */--slds-c-input-color-background:var(--sds-c-input-color-background, var(--sds-c-input-color-background, var(--slds-g-color-neutral-base-100, white)));/*! @css-var-fallback color */--slds-c-input-text-color:var(--slds-c-input-text-color, var(--sds-c-input-text-color));background-clip:padding-box}.slds-has-error .slds-input:active,.slds-has-error .slds-input:focus{/*! @css-var-fallback border-color */--slds-c-input-color-border-focus:var(--slds-g-color-error-base-40, #ea001e);/*! @css-var-fallback box-shadow */--slds-c-input-shadow:var(--slds-g-color-error-base-40, #ea001e) 0 0 0 1px inset,0 0 3px #0176d3}.slds-has-error .slds-input__icon{fill:var(--slds-g-color-error-base-40,#ea001e);color:var(--slds-g-color-error-base-40,#ea001e)}.slds-input_counter{text-align:center;padding:0 3rem}.slds-input_counter[type=number]{-moz-appearance:textfield}.slds-input_counter::-webkit-inner-spin-button{-moz-appearance:none;-webkit-appearance:none;appearance:none;margin:0}.slds-input__button_decrement{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:.75rem}.slds-input__button_increment{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:.75rem}.slds-textarea{-webkit-appearance:none;min-height:var(--slds-c-textarea-sizing-min-height,var(--sds-c-textarea-sizing-min-height));width:100%;padding-top:var(--slds-c-textarea-spacing-block-start,var(--sds-c-textarea-spacing-block-start,.5rem));padding-right:var(--slds-c-textarea-spacing-inline-end,var(--sds-c-textarea-spacing-inline-end,.75rem));padding-bottom:var(--slds-c-textarea-spacing-block-end,var(--sds-c-textarea-spacing-block-end,.5rem));padding-left:var(--slds-c-textarea-spacing-inline-start,var(--sds-c-textarea-spacing-inline-start,.75rem));background-color:var(--slds-c-textarea-color-background,var(--sds-c-textarea-color-background,var(--slds-g-color-neutral-base-100,#fff)));color:var(--slds-c-textarea-text-color,var(--sds-c-textarea-text-color));border:1px solid var(--slds-c-textarea-color-border,var(--sds-c-textarea-color-border,var(--slds-g-color-border-base-4,#c9c9c9)));border-radius:var(--slds-c-textarea-radius-border,var(--sds-c-textarea-radius-border,.25rem));-webkit-box-shadow:var(--slds-c-textarea-shadow,var(--sds-c-textarea-shadow));box-shadow:var(--slds-c-textarea-shadow,var(--sds-c-textarea-shadow));resize:vertical;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear}.slds-textarea:required{/*! @css-var-fallback box-shadow */--slds-c-textarea-shadow:none}.slds-textarea:active,.slds-textarea:focus{outline:0;color:var(--slds-c-textarea-text-color-focus,var(--sds-c-textarea-text-color-focus));background-color:var(--slds-c-textarea-color-background-focus,var(--sds-c-textarea-color-background-focus,var(--slds-g-color-neutral-base-100,#fff)));border-color:var(--slds-c-textarea-color-border-focus,var(--sds-c-textarea-color-border-focus,var(--slds-g-color-brand-base-60,#1b96ff)));-webkit-box-shadow:var(--slds-c-textarea-shadow-focus,var(--sds-c-textarea-shadow-focus,0 0 3px #0176d3));box-shadow:var(--slds-c-textarea-shadow-focus,var(--sds-c-textarea-shadow-focus,0 0 3px #0176d3))}.slds-textarea.slds-is-disabled,.slds-textarea[disabled]{background-color:var(--slds-g-color-neutral-base-80,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9);color:inherit;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-textarea.slds-is-disabled:active,.slds-textarea.slds-is-disabled:focus,.slds-textarea[disabled]:active,.slds-textarea[disabled]:focus{-webkit-box-shadow:none;box-shadow:none}.slds-has-error .slds-textarea{/*! @css-var-fallback background-color */--slds-c-textarea-color-background:var(--slds-g-color-neutral-base-100, white);/*! @css-var-fallback border-color */--slds-c-textarea-color-border:var(--slds-g-color-error-base-40, #ea001e);/*! @css-var-fallback box-shadow */--slds-c-textarea-shadow:var(--slds-g-color-error-base-40, #ea001e) 0 0 0 1px inset;background-clip:padding-box}.slds-has-error .slds-textarea:active,.slds-has-error .slds-textarea:focus{--slds-c-textarea-text-color-focus:var(--slds-c-textarea-text-color-error-focus);/*! @css-var-fallback background-color */--slds-c-textarea-color-background-focus:var(--slds-c-textarea-color-background-error-focus, var(--slds-g-color-neutral-base-100, white));/*! @css-var-fallback box-shadow */--slds-c-textarea-shadow-focus:var(--slds-g-color-error-base-40, #ea001e) 0 0 0 1px inset,0 0 3px #0176d3}.slds-radio{display:inline-block}.slds-radio .slds-radio--faux,.slds-radio .slds-radio_faux{width:1rem;height:1rem;display:inline-block;position:relative;-ms-flex-negative:0;flex-shrink:0;vertical-align:middle;border:1px solid var(--slds-c-radio-color-border,var(--sds-c-radio-color-border,var(--slds-g-color-border-base-4,#c9c9c9)));border-radius:50%;background:0 0;background-color:var(--slds-c-radio-color-background,var(--sds-c-radio-color-background,var(--slds-g-color-neutral-base-100,#fff)));-webkit-box-shadow:var(--slds-c-radio-shadow,var(--sds-c-radio-shadow));box-shadow:var(--slds-c-radio-shadow,var(--sds-c-radio-shadow));-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear}.slds-radio .slds-form-element__label{display:inline;vertical-align:middle;font-size:.8125rem}.slds-radio [type=radio]{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute}.slds-radio [type=radio]:checked+.slds-radio--faux,.slds-radio [type=radio]:checked+.slds-radio__label .slds-radio--faux,.slds-radio [type=radio]:checked+.slds-radio__label .slds-radio_faux,.slds-radio [type=radio]:checked+.slds-radio_faux,.slds-radio [type=radio]:checked~.slds-radio--faux,.slds-radio [type=radio]:checked~.slds-radio_faux{border-color:var(--slds-c-radio-color-border-checked,var(--sds-c-radio-color-border-checked,var(--sds-c-radio-color-border,var(--slds-g-color-border-base-4,#c9c9c9))));background:0 0;background-color:var(--slds-c-radio-color-background-checked,var(--sds-c-radio-color-background-checked,var(--sds-c-radio-color-background,var(--slds-g-color-neutral-base-100,#fff))))}.slds-radio [type=radio]:checked+.slds-radio--faux:after,.slds-radio [type=radio]:checked+.slds-radio__label .slds-radio--faux:after,.slds-radio [type=radio]:checked+.slds-radio__label .slds-radio_faux:after,.slds-radio [type=radio]:checked+.slds-radio_faux:after,.slds-radio [type=radio]:checked~.slds-radio--faux:after,.slds-radio [type=radio]:checked~.slds-radio_faux:after{width:.5rem;height:.5rem;content:"";position:absolute;top:50%;/*! @noflip */left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);border-radius:50%;background:0 0;background-color:var(--slds-c-radio-mark-color-foreground,var(--sds-c-radio-mark-color-foreground,#0176d3))}.slds-radio [type=radio]:focus+.slds-radio--faux,.slds-radio [type=radio]:focus+.slds-radio__label .slds-radio--faux,.slds-radio [type=radio]:focus+.slds-radio__label .slds-radio_faux,.slds-radio [type=radio]:focus+.slds-radio_faux,.slds-radio [type=radio]:focus~.slds-radio--faux,.slds-radio [type=radio]:focus~.slds-radio_faux{border-color:var(--slds-c-radio-color-border-focus,var(--sds-c-radio-color-border-focus,var(--slds-g-color-brand-base-60,#1b96ff)));-webkit-box-shadow:var(--slds-c-radio-shadow-focus,var(--sds-c-radio-shadow-focus,0 0 3px #0176d3));box-shadow:var(--slds-c-radio-shadow-focus,var(--sds-c-radio-shadow-focus,0 0 3px #0176d3))}.slds-radio [type=radio][disabled]{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-radio [type=radio][disabled]+.slds-radio__label .slds-radio--faux,.slds-radio [type=radio][disabled]+.slds-radio__label .slds-radio_faux,.slds-radio [type=radio][disabled]~.slds-radio--faux,.slds-radio [type=radio][disabled]~.slds-radio_faux{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9)}.slds-radio [type=radio][disabled]+.slds-radio__label .slds-radio--faux:after,.slds-radio [type=radio][disabled]+.slds-radio__label .slds-radio_faux:after,.slds-radio [type=radio][disabled]~.slds-radio--faux:after,.slds-radio [type=radio][disabled]~.slds-radio_faux:after{background:var(--slds-g-color-neutral-base-60,#969492)}.slds-has-error .slds-radio [type=radio]+.slds-radio--faux,.slds-has-error .slds-radio [type=radio]+.slds-radio__label .slds-radio--faux,.slds-has-error .slds-radio [type=radio]+.slds-radio__label .slds-radio_faux,.slds-has-error .slds-radio [type=radio]+.slds-radio_faux,.slds-has-error .slds-radio [type=radio]~.slds-radio--faux,.slds-has-error .slds-radio [type=radio]~.slds-radio_faux{border-color:var(--slds-g-color-error-base-40,#ea001e);border-width:2px}.slds-has-error .slds-radio [type=radio]:checked+.slds-radio--faux,.slds-has-error .slds-radio [type=radio]:checked+.slds-radio__label .slds-radio--faux,.slds-has-error .slds-radio [type=radio]:checked+.slds-radio__label .slds-radio_faux,.slds-has-error .slds-radio [type=radio]:checked+.slds-radio_faux,.slds-has-error .slds-radio [type=radio]:checked~.slds-radio--faux,.slds-has-error .slds-radio [type=radio]:checked~.slds-radio_faux{--slds-c-radio-color-background:var(--slds-c-radio-color-background-checked, + var(--sds-c-radio-color-background-checked, + var(--sds-c-radio-color-background, + var(--sds-c-radio-color-background, + var(--slds-g-color-neutral-base-100, white)))));background:0 0}.slds-has-error .slds-radio [type=radio]:checked+.slds-radio--faux:after,.slds-has-error .slds-radio [type=radio]:checked+.slds-radio__label .slds-radio--faux:after,.slds-has-error .slds-radio [type=radio]:checked+.slds-radio__label .slds-radio_faux:after,.slds-has-error .slds-radio [type=radio]:checked+.slds-radio_faux:after,.slds-has-error .slds-radio [type=radio]:checked~.slds-radio--faux:after,.slds-has-error .slds-radio [type=radio]:checked~.slds-radio_faux:after{background:var(--slds-g-color-error-base-40,#fe5c4c)}.slds-form-element .slds-radio [type=radio]+.slds-radio--faux,.slds-form-element .slds-radio [type=radio]+.slds-radio_faux,.slds-form-element .slds-radio [type=radio]~.slds-radio--faux,.slds-form-element .slds-radio [type=radio]~.slds-radio_faux,.slds-radio [type=radio]+.slds-radio__label .slds-radio--faux,.slds-radio [type=radio]+.slds-radio__label .slds-radio_faux{margin-right:.5rem}[dir=rtl] .slds-form-element .slds-radio [type=radio]+.slds-radio--faux,[dir=rtl] .slds-form-element .slds-radio [type=radio]+.slds-radio_faux,[dir=rtl] .slds-form-element .slds-radio [type=radio]~.slds-radio--faux,[dir=rtl] .slds-form-element .slds-radio [type=radio]~.slds-radio_faux,[dir=rtl] .slds-radio [type=radio]+.slds-radio__label .slds-radio--faux,[dir=rtl] .slds-radio [type=radio]+.slds-radio__label .slds-radio_faux{/*! @noflip */margin-right:0;margin-left:.5rem}.slds-radio--button-group,.slds-radio_button-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;border:1px solid var(--slds-g-color-border-base-4,#e5e5e5);border-radius:.25rem}.slds-radio--button,.slds-radio_button{display:-webkit-box;display:-ms-flexbox;display:flex;border:0;border-radius:0;background-clip:padding-box}.slds-radio--button .slds-radio--faux,.slds-radio--button .slds-radio_faux,.slds-radio_button .slds-radio--faux,.slds-radio_button .slds-radio_faux{padding-left:1rem;padding-right:1rem;text-align:center;vertical-align:middle}.slds-radio--button+.slds-radio--button,.slds-radio--button+.slds-radio_button,.slds-radio_button+.slds-radio--button,.slds-radio_button+.slds-radio_button{border-left:1px solid var(--slds-g-color-border-base-4,#e5e5e5);margin:0}.slds-radio--button:first-child>.slds-radio--button__label,.slds-radio--button:first-child>.slds-radio--faux,.slds-radio--button:first-child>.slds-radio_button__label,.slds-radio--button:first-child>.slds-radio_faux,.slds-radio_button:first-child>.slds-radio--button__label,.slds-radio_button:first-child>.slds-radio--faux,.slds-radio_button:first-child>.slds-radio_button__label,.slds-radio_button:first-child>.slds-radio_faux{border-radius:.25rem 0 0 .25rem}.slds-radio--button .slds-button--last>.slds-radio--faux,.slds-radio--button .slds-button_last>.slds-radio_faux,.slds-radio--button:last-child>.slds-radio--button__label,.slds-radio--button:last-child>.slds-radio--faux,.slds-radio--button:last-child>.slds-radio_button__label,.slds-radio--button:last-child>.slds-radio_faux,.slds-radio_button .slds-button--last>.slds-radio--faux,.slds-radio_button .slds-button_last>.slds-radio_faux,.slds-radio_button:last-child>.slds-radio--button__label,.slds-radio_button:last-child>.slds-radio--faux,.slds-radio_button:last-child>.slds-radio_button__label,.slds-radio_button:last-child>.slds-radio_faux{border-radius:0 .25rem .25rem 0}.slds-radio--button [type=radio],.slds-radio_button [type=radio]{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute}.slds-radio--button [type=radio]:checked+.slds-radio--button__label,.slds-radio--button [type=radio]:checked+.slds-radio--faux,.slds-radio--button [type=radio]:checked+.slds-radio_button__label,.slds-radio--button [type=radio]:checked+.slds-radio_faux,.slds-radio--button [type=radio]:checked~.slds-radio--faux,.slds-radio--button [type=radio]:checked~.slds-radio_faux,.slds-radio_button [type=radio]:checked+.slds-radio--button__label,.slds-radio_button [type=radio]:checked+.slds-radio--faux,.slds-radio_button [type=radio]:checked+.slds-radio_button__label,.slds-radio_button [type=radio]:checked+.slds-radio_faux,.slds-radio_button [type=radio]:checked~.slds-radio--faux,.slds-radio_button [type=radio]:checked~.slds-radio_faux{background-color:#0176d3;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-radio--button [type=radio]:checked+.slds-radio--button__label:focus,.slds-radio--button [type=radio]:checked+.slds-radio--button__label:hover,.slds-radio--button [type=radio]:checked+.slds-radio--faux:focus,.slds-radio--button [type=radio]:checked+.slds-radio--faux:hover,.slds-radio--button [type=radio]:checked+.slds-radio_button__label:focus,.slds-radio--button [type=radio]:checked+.slds-radio_button__label:hover,.slds-radio--button [type=radio]:checked+.slds-radio_faux:focus,.slds-radio--button [type=radio]:checked+.slds-radio_faux:hover,.slds-radio--button [type=radio]:checked~.slds-radio--faux:focus,.slds-radio--button [type=radio]:checked~.slds-radio--faux:hover,.slds-radio--button [type=radio]:checked~.slds-radio_faux:focus,.slds-radio--button [type=radio]:checked~.slds-radio_faux:hover,.slds-radio_button [type=radio]:checked+.slds-radio--button__label:focus,.slds-radio_button [type=radio]:checked+.slds-radio--button__label:hover,.slds-radio_button [type=radio]:checked+.slds-radio--faux:focus,.slds-radio_button [type=radio]:checked+.slds-radio--faux:hover,.slds-radio_button [type=radio]:checked+.slds-radio_button__label:focus,.slds-radio_button [type=radio]:checked+.slds-radio_button__label:hover,.slds-radio_button [type=radio]:checked+.slds-radio_faux:focus,.slds-radio_button [type=radio]:checked+.slds-radio_faux:hover,.slds-radio_button [type=radio]:checked~.slds-radio--faux:focus,.slds-radio_button [type=radio]:checked~.slds-radio--faux:hover,.slds-radio_button [type=radio]:checked~.slds-radio_faux:focus,.slds-radio_button [type=radio]:checked~.slds-radio_faux:hover{background-color:#014486}.slds-radio--button [type=radio]:focus+.slds-radio--button__label,.slds-radio--button [type=radio]:focus+.slds-radio--faux,.slds-radio--button [type=radio]:focus+.slds-radio_button__label,.slds-radio--button [type=radio]:focus+.slds-radio_faux,.slds-radio--button [type=radio]:focus~.slds-radio--faux,.slds-radio--button [type=radio]:focus~.slds-radio_faux,.slds-radio_button [type=radio]:focus+.slds-radio--button__label,.slds-radio_button [type=radio]:focus+.slds-radio--faux,.slds-radio_button [type=radio]:focus+.slds-radio_button__label,.slds-radio_button [type=radio]:focus+.slds-radio_faux,.slds-radio_button [type=radio]:focus~.slds-radio--faux,.slds-radio_button [type=radio]:focus~.slds-radio_faux{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;z-index:1}.slds-radio--button [type=radio][disabled]+.slds-radio--button__label,.slds-radio--button [type=radio][disabled]+.slds-radio--faux,.slds-radio--button [type=radio][disabled]+.slds-radio_button__label,.slds-radio--button [type=radio][disabled]+.slds-radio_faux,.slds-radio--button [type=radio][disabled]~.slds-radio--faux,.slds-radio--button [type=radio][disabled]~.slds-radio_faux,.slds-radio_button [type=radio][disabled]+.slds-radio--button__label,.slds-radio_button [type=radio][disabled]+.slds-radio--faux,.slds-radio_button [type=radio][disabled]+.slds-radio_button__label,.slds-radio_button [type=radio][disabled]+.slds-radio_faux,.slds-radio_button [type=radio][disabled]~.slds-radio--faux,.slds-radio_button [type=radio][disabled]~.slds-radio_faux{background-color:var(--slds-g-color-neutral-base-100,#fff);color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-radio--button [type=radio][disabled]+.slds-radio--button__label:focus,.slds-radio--button [type=radio][disabled]+.slds-radio--button__label:hover,.slds-radio--button [type=radio][disabled]+.slds-radio--faux:focus,.slds-radio--button [type=radio][disabled]+.slds-radio--faux:hover,.slds-radio--button [type=radio][disabled]+.slds-radio_button__label:focus,.slds-radio--button [type=radio][disabled]+.slds-radio_button__label:hover,.slds-radio--button [type=radio][disabled]+.slds-radio_faux:focus,.slds-radio--button [type=radio][disabled]+.slds-radio_faux:hover,.slds-radio--button [type=radio][disabled]~.slds-radio--faux:focus,.slds-radio--button [type=radio][disabled]~.slds-radio--faux:hover,.slds-radio--button [type=radio][disabled]~.slds-radio_faux:focus,.slds-radio--button [type=radio][disabled]~.slds-radio_faux:hover,.slds-radio_button [type=radio][disabled]+.slds-radio--button__label:focus,.slds-radio_button [type=radio][disabled]+.slds-radio--button__label:hover,.slds-radio_button [type=radio][disabled]+.slds-radio--faux:focus,.slds-radio_button [type=radio][disabled]+.slds-radio--faux:hover,.slds-radio_button [type=radio][disabled]+.slds-radio_button__label:focus,.slds-radio_button [type=radio][disabled]+.slds-radio_button__label:hover,.slds-radio_button [type=radio][disabled]+.slds-radio_faux:focus,.slds-radio_button [type=radio][disabled]+.slds-radio_faux:hover,.slds-radio_button [type=radio][disabled]~.slds-radio--faux:focus,.slds-radio_button [type=radio][disabled]~.slds-radio--faux:hover,.slds-radio_button [type=radio][disabled]~.slds-radio_faux:focus,.slds-radio_button [type=radio][disabled]~.slds-radio_faux:hover{cursor:default}.slds-radio--button [type=radio][disabled]:checked+.slds-radio--button__label,.slds-radio--button [type=radio][disabled]:checked+.slds-radio--faux,.slds-radio--button [type=radio][disabled]:checked+.slds-radio_button__label,.slds-radio--button [type=radio][disabled]:checked+.slds-radio_faux,.slds-radio--button [type=radio][disabled]:checked~.slds-radio--faux,.slds-radio--button [type=radio][disabled]:checked~.slds-radio_faux,.slds-radio_button [type=radio][disabled]:checked+.slds-radio--button__label,.slds-radio_button [type=radio][disabled]:checked+.slds-radio--faux,.slds-radio_button [type=radio][disabled]:checked+.slds-radio_button__label,.slds-radio_button [type=radio][disabled]:checked+.slds-radio_faux,.slds-radio_button [type=radio][disabled]:checked~.slds-radio--faux,.slds-radio_button [type=radio][disabled]:checked~.slds-radio_faux{background-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-radio--button [type=radio][disabled]:checked+.slds-radio--button__label:focus,.slds-radio--button [type=radio][disabled]:checked+.slds-radio--button__label:hover,.slds-radio--button [type=radio][disabled]:checked+.slds-radio--faux:focus,.slds-radio--button [type=radio][disabled]:checked+.slds-radio--faux:hover,.slds-radio--button [type=radio][disabled]:checked+.slds-radio_button__label:focus,.slds-radio--button [type=radio][disabled]:checked+.slds-radio_button__label:hover,.slds-radio--button [type=radio][disabled]:checked+.slds-radio_faux:focus,.slds-radio--button [type=radio][disabled]:checked+.slds-radio_faux:hover,.slds-radio--button [type=radio][disabled]:checked~.slds-radio--faux:focus,.slds-radio--button [type=radio][disabled]:checked~.slds-radio--faux:hover,.slds-radio--button [type=radio][disabled]:checked~.slds-radio_faux:focus,.slds-radio--button [type=radio][disabled]:checked~.slds-radio_faux:hover,.slds-radio_button [type=radio][disabled]:checked+.slds-radio--button__label:focus,.slds-radio_button [type=radio][disabled]:checked+.slds-radio--button__label:hover,.slds-radio_button [type=radio][disabled]:checked+.slds-radio--faux:focus,.slds-radio_button [type=radio][disabled]:checked+.slds-radio--faux:hover,.slds-radio_button [type=radio][disabled]:checked+.slds-radio_button__label:focus,.slds-radio_button [type=radio][disabled]:checked+.slds-radio_button__label:hover,.slds-radio_button [type=radio][disabled]:checked+.slds-radio_faux:focus,.slds-radio_button [type=radio][disabled]:checked+.slds-radio_faux:hover,.slds-radio_button [type=radio][disabled]:checked~.slds-radio--faux:focus,.slds-radio_button [type=radio][disabled]:checked~.slds-radio--faux:hover,.slds-radio_button [type=radio][disabled]:checked~.slds-radio_faux:focus,.slds-radio_button [type=radio][disabled]:checked~.slds-radio_faux:hover{cursor:default}.slds-radio--button__label,.slds-radio_button__label{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-radio--button__label:focus,.slds-radio--button__label:hover,.slds-radio_button__label:focus,.slds-radio_button__label:hover{cursor:pointer}.slds-checkbox.slds-checkbox_stacked .slds-checkbox__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-checkbox.slds-checkbox_stacked .slds-form-element__label{font-size:.75rem}.slds-checkbox.slds-checkbox_stacked .slds-checkbox_faux{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;margin-bottom:1px}.slds-checkbox.slds-checkbox_stacked .slds-required{float:left}.slds-checkbox{display:inline-block;position:relative}.slds-checkbox .slds-checkbox--faux,.slds-checkbox .slds-checkbox_faux{width:1rem;height:1rem;display:inline-block;position:relative;-ms-flex-negative:0;flex-shrink:0;vertical-align:middle;border-radius:var(--slds-c-checkbox-radius-border,var(--sds-c-checkbox-radius-border,.125rem));border-width:1px;border-style:solid;border-color:var(--slds-c-checkbox-color-border,var(--sds-c-checkbox-color-border,var(--slds-g-color-border-base-4,#c9c9c9)));background-color:var(--slds-c-checkbox-color-background,var(--sds-c-checkbox-color-background,var(--slds-g-color-neutral-base-100,#fff)));-webkit-box-shadow:var(--slds-c-checkbox-shadow,var(--sds-c-checkbox-shadow));box-shadow:var(--slds-c-checkbox-shadow,var(--sds-c-checkbox-shadow));-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear}.slds-checkbox .slds-checkbox__label .slds-form-element__label{display:inline;vertical-align:middle;font-size:.8125rem}.slds-checkbox [type=checkbox]{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute;pointer-events:auto}.slds-checkbox [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox--faux,.slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox_faux,.slds-checkbox [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox [type=checkbox]:checked~.slds-checkbox_faux{--slds-c-checkbox-color-border:var(--slds-c-checkbox-color-border-checked, var(--sds-c-checkbox-color-border-checked));--slds-c-checkbox-color-background:var(--slds-c-checkbox-color-background-checked, var(--sds-c-checkbox-color-background-checked))}.slds-checkbox [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox--faux:after,.slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox_faux:after,.slds-checkbox [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox [type=checkbox]:checked~.slds-checkbox_faux:after{display:block;content:"";height:.25rem;width:.5rem;position:absolute;top:50%;/*! @noflip */left:50%;-webkit-transform:translate3d(-50%,-50%,0) rotate(-45deg);transform:translate3d(-50%,-50%,0) rotate(-45deg);border-bottom:2px solid var(--slds-c-checkbox-mark-color-foreground,var(--sds-c-checkbox-mark-color-foreground,#0176d3));/*! @noflip */border-left:2px solid var(--slds-c-checkbox-mark-color-foreground,var(--sds-c-checkbox-mark-color-foreground,#0176d3))}.slds-checkbox [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox [type=checkbox]:focus+.slds-checkbox__label .slds-checkbox--faux,.slds-checkbox [type=checkbox]:focus+.slds-checkbox__label .slds-checkbox_faux,.slds-checkbox [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox [type=checkbox]:focus~.slds-checkbox_faux{/*! @css-var-fallback border-color */--slds-c-checkbox-color-border:var(--slds-c-checkbox-color-border-focus, var(--sds-c-checkbox-color-border-focus, var(--slds-g-color-brand-base-60, #1b96ff)));/*! @css-var-fallback box-shadow */--slds-c-checkbox-shadow:var(--slds-c-checkbox-shadow-focus, var(--sds-c-checkbox-shadow-focus, 0 0 3px #0176d3))}.slds-checkbox [type=checkbox]:focus:checked+.slds-checkbox__label .slds-checkbox--faux,.slds-checkbox [type=checkbox]:focus:checked+.slds-checkbox__label .slds-checkbox_faux,.slds-checkbox [type=checkbox]:focus:checked>.slds-checkbox--faux,.slds-checkbox [type=checkbox]:focus:checked>.slds-checkbox_faux,.slds-checkbox [type=checkbox]:focus:checked~.slds-checkbox--faux,.slds-checkbox [type=checkbox]:focus:checked~.slds-checkbox_faux{/*! @css-var-fallback border-color */--slds-c-checkbox-color-border:var(--slds-c-checkbox-color-border-focus, var(--sds-c-checkbox-color-border-focus, var(--slds-g-color-brand-base-60, #1b96ff)))}.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox--faux,.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox__label .slds-checkbox--faux,.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox__label .slds-checkbox_faux,.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox_faux,.slds-checkbox [type=checkbox]:indeterminate~.slds-checkbox--faux,.slds-checkbox [type=checkbox]:indeterminate~.slds-checkbox_faux{--slds-c-checkbox-color-border:var(--slds-c-checkbox-color-border-checked, var(--sds-c-checkbox-color-border-checked));--slds-c-checkbox-color-background:var(--slds-c-checkbox-color-background-checked, var(--sds-c-checkbox-color-background-checked))}.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox--faux:after,.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox__label .slds-checkbox--faux:after,.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox__label .slds-checkbox_faux:after,.slds-checkbox [type=checkbox]:indeterminate+.slds-checkbox_faux:after,.slds-checkbox [type=checkbox]:indeterminate~.slds-checkbox--faux:after,.slds-checkbox [type=checkbox]:indeterminate~.slds-checkbox_faux:after{content:"";display:block;position:absolute;top:50%;/*! @noflip */left:50%;width:.5rem;height:2px;border:0;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);background:var(--slds-c-checkbox-mark-color-foreground,var(--sds-c-checkbox-mark-color-foreground,#0176d3))}.slds-checkbox [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox [type=checkbox][disabled]+.slds-checkbox__label .slds-checkbox--faux,.slds-checkbox [type=checkbox][disabled]+.slds-checkbox__label .slds-checkbox_faux,.slds-checkbox [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox [type=checkbox][disabled]~.slds-checkbox_faux{border-color:var(--slds-g-color-border-base-1,#c9c9c9);background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-checkbox [type=checkbox][disabled]+.slds-checkbox--faux:after,.slds-checkbox [type=checkbox][disabled]+.slds-checkbox__label .slds-checkbox--faux:after,.slds-checkbox [type=checkbox][disabled]+.slds-checkbox__label .slds-checkbox_faux:after,.slds-checkbox [type=checkbox][disabled]+.slds-checkbox_faux:after,.slds-checkbox [type=checkbox][disabled]~.slds-checkbox--faux:after,.slds-checkbox [type=checkbox][disabled]~.slds-checkbox_faux:after{border-color:var(--slds-g-color-neutral-base-60,#969492)}.slds-has-error .slds-checkbox [type=checkbox]+.slds-checkbox--faux,.slds-has-error .slds-checkbox [type=checkbox]+.slds-checkbox__label .slds-checkbox--faux,.slds-has-error .slds-checkbox [type=checkbox]+.slds-checkbox__label .slds-checkbox_faux,.slds-has-error .slds-checkbox [type=checkbox]+.slds-checkbox_faux,.slds-has-error .slds-checkbox [type=checkbox]~.slds-checkbox--faux,.slds-has-error .slds-checkbox [type=checkbox]~.slds-checkbox_faux{border-color:var(--slds-g-color-error-base-40,#ea001e);border-width:2px}.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox--faux,.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox--faux,.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox_faux,.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox_faux,.slds-has-error .slds-checkbox [type=checkbox]:checked~.slds-checkbox--faux,.slds-has-error .slds-checkbox [type=checkbox]:checked~.slds-checkbox_faux{border-color:var(--slds-g-color-error-base-40,#ea001e)}.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox--faux:after,.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox__label .slds-checkbox_faux:after,.slds-has-error .slds-checkbox [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-has-error .slds-checkbox [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-has-error .slds-checkbox [type=checkbox]:checked~.slds-checkbox_faux:after{border-color:var(--slds-g-color-error-base-40,#fe5c4c)}.slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox--faux,.slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox__label .slds-checkbox--faux,.slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox__label .slds-checkbox_faux,.slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox_faux,.slds-form-element .slds-checkbox [type=checkbox]~.slds-checkbox--faux,.slds-form-element .slds-checkbox [type=checkbox]~.slds-checkbox_faux{margin-right:.5rem}[dir=rtl] .slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox--faux,[dir=rtl] .slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox__label .slds-checkbox--faux,[dir=rtl] .slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox__label .slds-checkbox_faux,[dir=rtl] .slds-form-element .slds-checkbox [type=checkbox]+.slds-checkbox_faux,[dir=rtl] .slds-form-element .slds-checkbox [type=checkbox]~.slds-checkbox--faux,[dir=rtl] .slds-form-element .slds-checkbox [type=checkbox]~.slds-checkbox_faux{/*! @noflip */margin-right:0;/*! @noflip */margin-left:.5rem}.slds-checkbox_standalone{pointer-events:none}.slds-checkbox_standalone [type=checkbox]{width:1rem;height:1rem;margin:0;clip:auto;opacity:0}.slds-checkbox_standalone .slds-checkbox_faux{display:block}.slds-checkbox--toggle,.slds-checkbox_toggle{width:100%}.slds-checkbox--toggle .slds-checkbox--faux,.slds-checkbox--toggle .slds-checkbox_faux,.slds-checkbox_toggle .slds-checkbox--faux,.slds-checkbox_toggle .slds-checkbox_faux{display:block;position:relative;width:3rem;height:1.5rem;border-width:1px;border-style:solid;border-color:var(--slds-c-checkbox-toggle-color-border,var(--sds-c-checkbox-toggle-color-border,var(--slds-g-color-neutral-base-60,#aeaeae)));padding:.125rem;background-color:var(--slds-c-checkbox-toggle-color-background,var(--sds-c-checkbox-toggle-color-background,var(--slds-g-color-neutral-base-60,#aeaeae)));border-radius:var(--slds-c-checkbox-toggle-radius-border,var(--sds-c-checkbox-toggle-radius-border,15rem));-webkit-box-shadow:var(--slds-c-checkbox-toggle-shadow,var(--sds-c-checkbox-toggle-shadow));box-shadow:var(--slds-c-checkbox-toggle-shadow,var(--sds-c-checkbox-toggle-shadow));-webkit-transition:background-color .2s cubic-bezier(.75,0,.08,1);transition:background-color .2s cubic-bezier(.75,0,.08,1)}.slds-checkbox--toggle .slds-checkbox--faux:focus,.slds-checkbox--toggle .slds-checkbox--faux:hover,.slds-checkbox--toggle .slds-checkbox_faux:focus,.slds-checkbox--toggle .slds-checkbox_faux:hover,.slds-checkbox_toggle .slds-checkbox--faux:focus,.slds-checkbox_toggle .slds-checkbox--faux:hover,.slds-checkbox_toggle .slds-checkbox_faux:focus,.slds-checkbox_toggle .slds-checkbox_faux:hover{/*! @css-var-fallback background-color */--slds-c-checkbox-toggle-color-background:var(--slds-c-checkbox-toggle-color-background-hover, var(--sds-c-checkbox-toggle-color-background-hover, var(--slds-g-color-neutral-base-50, #939393)));--slds-c-checkbox-toggle-color-border:var(--slds-c-checkbox-toggle-color-border-hover);cursor:pointer}.slds-checkbox--toggle .slds-checkbox--faux:after,.slds-checkbox--toggle .slds-checkbox_faux:after,.slds-checkbox_toggle .slds-checkbox--faux:after,.slds-checkbox_toggle .slds-checkbox_faux:after{content:"";position:absolute;top:1px;left:1px;width:1.25rem;height:1.25rem;background-color:var(--slds-c-checkbox-toggle-switch-color-background,var(--sds-c-checkbox-toggle-switch-color-background,var(--slds-g-color-neutral-base-100,#fff)));border-radius:var(--slds-c-checkbox-toggle-radius-border,var(--sds-c-checkbox-toggle-radius-border,15rem))}.slds-checkbox--toggle [type=checkbox],.slds-checkbox_toggle [type=checkbox]{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute}.slds-checkbox--toggle [type=checkbox]+.slds-checkbox--faux_container,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox_faux_container,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox--faux_container,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox_faux_container{font-size:.625rem;color:var(--slds-g-color-neutral-base-30,#444)}.slds-checkbox--toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox--off,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox_off,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox--off,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox_off,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox--off,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox_off,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox--off,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox_off{display:block}.slds-checkbox--toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox--on,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox_on,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox--on,.slds-checkbox--toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox_on,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox--on,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox--faux_container .slds-checkbox_on,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox--on,.slds-checkbox_toggle [type=checkbox]+.slds-checkbox_faux_container .slds-checkbox_on{display:none}.slds-checkbox--toggle [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:focus+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox]:focus+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:focus~.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:focus+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:focus+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:focus~.slds-checkbox_faux{/*! @css-var-fallback background-color */--slds-c-checkbox-toggle-color-background:var(--sds-c-checkbox-toggle-color-background-focus, var(--slds-g-color-neutral-base-50, #939393));/*! @css-var-fallback border-color */--slds-c-checkbox-toggle-color-border:var(--sds-c-checkbox-toggle-color-border-focus, var(--slds-g-color-brand-base-60, #1b96ff));/*! @css-var-fallback box-shadow */--slds-c-checkbox-toggle-shadow:var(--sds-c-checkbox-toggle-shadow-focus, 0 0 3px #0176d3)}.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--off,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_off,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--off,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_off{display:none}.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--on,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_on,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--on,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_on{display:block}.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox_faux{/*! @css-var-fallback border-color */--slds-c-checkbox-toggle-color-border:var(--sds-c-checkbox-toggle-color-border-checked, #0176d3);/*! @css-var-fallback background-color */--slds-c-checkbox-toggle-color-background:var(--sds-c-checkbox-toggle-color-background-checked, #0176d3)}.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux:focus,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux:hover,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:focus,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:hover,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux:focus,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux:hover,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:focus,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:hover,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox--faux:focus,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox--faux:hover,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox_faux:focus,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox_faux:hover,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux:focus,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux:hover,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:focus,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:hover,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux:focus,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux:hover,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:focus,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:hover,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox--faux:focus,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox--faux:hover,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox_faux:focus,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox_faux:hover{/*! @css-var-fallback background-color */--slds-c-checkbox-toggle-color-background:var(--sds-c-checkbox-toggle-color-background-checked-hover, #014486)}.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux:before,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:before,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux:before,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:before,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox--faux:before,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox_faux:before,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux:before,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:before,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux:before,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:before,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox--faux:before,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox_faux:before{content:"";position:absolute;top:1px;right:1px;width:1.25rem;height:1.25rem;background-color:var(--slds-c-checkbox-toggle-switch-color-background-checked,var(--sds-c-checkbox-toggle-switch-color-background-checked,var(--slds-c-checkbox-toggle-switch-color-background,var(--sds-c-checkbox-toggle-switch-color-background,#fff))));border-radius:var(--slds-c-checkbox-toggle-radius-border,var(--sds-c-checkbox-toggle-radius-border,15rem));-webkit-transition:-webkit-transform .2s cubic-bezier(.75,0,.08,1);transition:-webkit-transform .2s cubic-bezier(.75,0,.08,1);transition:transform .2s cubic-bezier(.75,0,.08,1);transition:transform .2s cubic-bezier(.75,0,.08,1),-webkit-transform .2s cubic-bezier(.75,0,.08,1)}.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox--toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:after,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox]:checked~.slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox]:checked~.slds-checkbox_faux:after{/*! @css-var-fallback background-color */--slds-c-checkbox-toggle-switch-color-background:transparent;/*! @css-var-fallback border-radius */--slds-c-checkbox-toggle-radius-border:0;content:" ";position:absolute;top:.25rem;left:.6rem;height:.7rem;width:.45rem;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:var(--slds-c-checkbox-toggle-mark-color-foreground,var(--sds-c-checkbox-toggle-mark-color-foreground,var(--slds-g-color-neutral-base-100,#fff)));/*! @noflip */border-right-width:2px;border-right-style:solid;border-right-color:var(--slds-c-checkbox-toggle-mark-color-foreground,var(--sds-c-checkbox-toggle-mark-color-foreground,var(--slds-g-color-neutral-base-100,#fff)));-webkit-transform:rotate(45deg);transform:rotate(45deg)}.slds-checkbox--toggle [type=checkbox]:checked:focus+.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:checked:focus+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:checked:focus+.slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox]:checked:focus+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox]:checked:focus~.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox]:checked:focus~.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:checked:focus+.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:checked:focus+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:checked:focus+.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:checked:focus+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox]:checked:focus~.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox]:checked:focus~.slds-checkbox_faux{/*! @css-var-fallback background-color */--slds-c-checkbox-toggle-color-background:var(--slds-c-checkbox-toggle-color-background-checked-focus, var(--sds-c-checkbox-toggle-color-background-checked-focus, #014486))}.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox_faux{background-color:var(--slds-g-color-neutral-base-80,#aeaeae);border-color:var(--slds-g-color-neutral-base-80,#aeaeae);pointer-events:none}.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux:after,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux:after,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox_faux:after{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux:focus,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux:hover,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux:focus,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux:hover,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux:focus,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux:hover,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux:focus,.slds-checkbox--toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux:hover,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox--faux:focus,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox--faux:hover,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox_faux:focus,.slds-checkbox--toggle [type=checkbox][disabled]~.slds-checkbox_faux:hover,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux:focus,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux:hover,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux:focus,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox--faux_container .slds-checkbox--faux:hover,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux:focus,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux:hover,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux:focus,.slds-checkbox_toggle [type=checkbox][disabled]+.slds-checkbox_faux_container .slds-checkbox_faux:hover,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox--faux:focus,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox--faux:hover,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox_faux:focus,.slds-checkbox_toggle [type=checkbox][disabled]~.slds-checkbox_faux:hover{background-color:var(--slds-g-color-neutral-base-80,#aeaeae);cursor:default}.slds-checkbox--toggle [type=checkbox][disabled]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:before,.slds-checkbox--toggle [type=checkbox][disabled]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:before,.slds-checkbox_toggle [type=checkbox][disabled]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:before,.slds-checkbox_toggle [type=checkbox][disabled]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:before{background-color:var(--slds-g-color-neutral-base-90,#c9c9c9)}.slds-checkbox--toggle [type=checkbox][disabled]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:after,.slds-checkbox--toggle [type=checkbox][disabled]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:after,.slds-checkbox_toggle [type=checkbox][disabled]:checked+.slds-checkbox--faux_container .slds-checkbox--faux:after,.slds-checkbox_toggle [type=checkbox][disabled]:checked+.slds-checkbox_faux_container .slds-checkbox_faux:after{background-color:transparent}.slds-checkbox--add-button .slds-checkbox--faux,.slds-checkbox--add-button .slds-checkbox_faux,.slds-checkbox_add-button .slds-checkbox--faux,.slds-checkbox_add-button .slds-checkbox_faux{width:2rem;height:2rem;position:relative;display:inline-block;border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-radius:.25rem;background-color:var(--slds-g-color-neutral-base-100,#fff);cursor:pointer}.slds-checkbox--add-button .slds-checkbox--faux:after,.slds-checkbox--add-button .slds-checkbox--faux:before,.slds-checkbox--add-button .slds-checkbox_faux:after,.slds-checkbox--add-button .slds-checkbox_faux:before,.slds-checkbox_add-button .slds-checkbox--faux:after,.slds-checkbox_add-button .slds-checkbox--faux:before,.slds-checkbox_add-button .slds-checkbox_faux:after,.slds-checkbox_add-button .slds-checkbox_faux:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;height:.875rem;width:.125rem;margin:auto;background:#0176d3}.slds-checkbox--add-button .slds-checkbox--faux:after,.slds-checkbox--add-button .slds-checkbox_faux:after,.slds-checkbox_add-button .slds-checkbox--faux:after,.slds-checkbox_add-button .slds-checkbox_faux:after{width:.875rem;height:.125rem}.slds-checkbox--add-button .slds-checkbox--faux:focus:not([disabled]),.slds-checkbox--add-button .slds-checkbox--faux:hover:not([disabled]),.slds-checkbox--add-button .slds-checkbox_faux:focus:not([disabled]),.slds-checkbox--add-button .slds-checkbox_faux:hover:not([disabled]),.slds-checkbox_add-button .slds-checkbox--faux:focus:not([disabled]),.slds-checkbox_add-button .slds-checkbox--faux:hover:not([disabled]),.slds-checkbox_add-button .slds-checkbox_faux:focus:not([disabled]),.slds-checkbox_add-button .slds-checkbox_faux:hover:not([disabled]){border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-checkbox--add-button .slds-checkbox--faux:active,.slds-checkbox--add-button .slds-checkbox_faux:active,.slds-checkbox_add-button .slds-checkbox--faux:active,.slds-checkbox_add-button .slds-checkbox_faux:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox_faux{border-color:transparent;background:var(--slds-g-color-brand-base-30,#014486)}.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox--faux:before,.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox_faux:before,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox--faux:before,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox_faux:after,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox_faux:before,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox--faux:before,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox_faux:before,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox--faux:before,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox_faux:after,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox_faux:before{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox--faux:before,.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox_faux:before,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox--faux:before,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox_faux:before,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox--faux:before,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox_faux:before,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox--faux:before,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox_faux:before{left:.3125rem;width:.125rem;height:1rem;-webkit-transform:rotate(40deg);transform:rotate(40deg)}.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox--add-button [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox--add-button [type=checkbox]:checked~.slds-checkbox_faux:after,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox--faux:after,.slds-checkbox_add-button [type=checkbox]:checked+.slds-checkbox_faux:after,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox--faux:after,.slds-checkbox_add-button [type=checkbox]:checked~.slds-checkbox_faux:after{top:.3125rem;left:-.625rem;width:.5625rem;height:.125rem;-webkit-transform:rotate(40deg);transform:rotate(40deg)}.slds-checkbox--add-button [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox--add-button [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox--add-button [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox--add-button [type=checkbox]:focus~.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox_add-button [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox_add-button [type=checkbox]:focus~.slds-checkbox_faux{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;border-color:var(--slds-g-color-brand-base-60,#1b96ff)}.slds-checkbox--add-button [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox--add-button [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox--add-button [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox--add-button [type=checkbox][disabled]~.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox_add-button [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox_add-button [type=checkbox][disabled]~.slds-checkbox_faux{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-neutral-base-80,transparent);color:var(--slds-g-color-neutral-base-100,#fff);cursor:default}.slds-checkbox--add-button [type=checkbox][disabled]+.slds-checkbox--faux:after,.slds-checkbox--add-button [type=checkbox][disabled]+.slds-checkbox--faux:before,.slds-checkbox--add-button [type=checkbox][disabled]+.slds-checkbox_faux:after,.slds-checkbox--add-button [type=checkbox][disabled]+.slds-checkbox_faux:before,.slds-checkbox--add-button [type=checkbox][disabled]~.slds-checkbox--faux:after,.slds-checkbox--add-button [type=checkbox][disabled]~.slds-checkbox--faux:before,.slds-checkbox--add-button [type=checkbox][disabled]~.slds-checkbox_faux:after,.slds-checkbox--add-button [type=checkbox][disabled]~.slds-checkbox_faux:before,.slds-checkbox_add-button [type=checkbox][disabled]+.slds-checkbox--faux:after,.slds-checkbox_add-button [type=checkbox][disabled]+.slds-checkbox--faux:before,.slds-checkbox_add-button [type=checkbox][disabled]+.slds-checkbox_faux:after,.slds-checkbox_add-button [type=checkbox][disabled]+.slds-checkbox_faux:before,.slds-checkbox_add-button [type=checkbox][disabled]~.slds-checkbox--faux:after,.slds-checkbox_add-button [type=checkbox][disabled]~.slds-checkbox--faux:before,.slds-checkbox_add-button [type=checkbox][disabled]~.slds-checkbox_faux:after,.slds-checkbox_add-button [type=checkbox][disabled]~.slds-checkbox_faux:before{background:var(--slds-g-color-neutral-base-60,#969492)}.slds-checkbox--add-button [type=checkbox][disabled]:checked+.slds-checkbox_faux,.slds-checkbox--add-button [type=checkbox][disabled]:checked~.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox][disabled]:checked+.slds-checkbox_faux,.slds-checkbox_add-button [type=checkbox][disabled]:checked~.slds-checkbox_faux{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-checkbox-button{width:2rem;height:2rem;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-radius:.25rem;color:var(--slds-g-color-brand-base-30,#014486);cursor:pointer}.slds-checkbox-button_is-checked{background-color:var(--slds-g-color-brand-base-30,#014486);border-color:transparent;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-checkbox-button_is-disabled{background-color:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-border-base-4,#c9c9c9);color:var(--slds-g-color-neutral-base-80,#c9c9c9);cursor:default}.slds-checkbox-button_is-disabled.slds-checkbox-button_is-checked{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-neutral-base-80,transparent);color:var(--slds-g-color-neutral-base-80,#fff)}.slds-checkbox-button_is-focused{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;border-color:var(--slds-g-color-brand-base-60,#1b96ff)}.slds-checkbox--button-group,.slds-checkbox_button-group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;background-color:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#e5e5e5);border-radius:.25rem}.slds-checkbox--button,.slds-checkbox_button{display:-webkit-box;display:-ms-flexbox;display:flex;border:0;border-radius:0;background-clip:padding-box}.slds-checkbox--button .slds-checkbox--faux,.slds-checkbox--button .slds-checkbox_faux,.slds-checkbox_button .slds-checkbox--faux,.slds-checkbox_button .slds-checkbox_faux{padding-left:1rem;padding-right:1rem;text-align:center;vertical-align:middle;position:relative;background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear}.slds-checkbox--button .slds-checkbox--faux:focus,.slds-checkbox--button .slds-checkbox--faux:hover,.slds-checkbox--button .slds-checkbox_faux:focus,.slds-checkbox--button .slds-checkbox_faux:hover,.slds-checkbox_button .slds-checkbox--faux:focus,.slds-checkbox_button .slds-checkbox--faux:hover,.slds-checkbox_button .slds-checkbox_faux:focus,.slds-checkbox_button .slds-checkbox_faux:hover{cursor:pointer;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-checkbox--button .slds-checkbox--button__label .slds-checkbox--faux,.slds-checkbox--button .slds-checkbox_button__label .slds-checkbox_faux,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--button__label .slds-checkbox--faux,.slds-checkbox_button .slds-checkbox--button__label .slds-checkbox--faux,.slds-checkbox_button .slds-checkbox_button__label .slds-checkbox_faux,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--button__label .slds-checkbox--faux{background-color:transparent}.slds-checkbox--button+.slds-checkbox--button,.slds-checkbox--button+.slds-checkbox_button,.slds-checkbox_button+.slds-checkbox--button,.slds-checkbox_button+.slds-checkbox_button{border-left:1px solid var(--slds-g-color-border-base-4,#e5e5e5);border-radius:0;margin:0}.slds-checkbox--button:first-child>.slds-checkbox--button__label,.slds-checkbox--button:first-child>.slds-checkbox--faux,.slds-checkbox--button:first-child>.slds-checkbox_button__label,.slds-checkbox--button:first-child>.slds-checkbox_faux,.slds-checkbox_button:first-child>.slds-checkbox--button__label,.slds-checkbox_button:first-child>.slds-checkbox--faux,.slds-checkbox_button:first-child>.slds-checkbox_button__label,.slds-checkbox_button:first-child>.slds-checkbox_faux{border-radius:.25rem 0 0 .25rem}.slds-checkbox--button .slds-button--last>.slds-checkbox--faux,.slds-checkbox--button .slds-button_last>.slds-checkbox_faux,.slds-checkbox--button:last-child>.slds-checkbox--button__label,.slds-checkbox--button:last-child>.slds-checkbox--faux,.slds-checkbox--button:last-child>.slds-checkbox_button__label,.slds-checkbox--button:last-child>.slds-checkbox_faux,.slds-checkbox_button .slds-button--last>.slds-checkbox--faux,.slds-checkbox_button .slds-button_last>.slds-checkbox_faux,.slds-checkbox_button:last-child>.slds-checkbox--button__label,.slds-checkbox_button:last-child>.slds-checkbox--faux,.slds-checkbox_button:last-child>.slds-checkbox_button__label,.slds-checkbox_button:last-child>.slds-checkbox_faux{border-radius:0 .25rem .25rem 0}.slds-checkbox--button [type=checkbox],.slds-checkbox_button [type=checkbox]{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute}.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--button__label,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox_button__label,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox--button [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox--button [type=checkbox]:checked~.slds-checkbox_faux,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--button__label,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--faux,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox_button__label,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox_faux,.slds-checkbox_button [type=checkbox]:checked~.slds-checkbox--faux,.slds-checkbox_button [type=checkbox]:checked~.slds-checkbox_faux{background-color:#0176d3;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--button__label:focus,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--button__label:hover,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--faux:focus,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox--faux:hover,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox_button__label:focus,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox_button__label:hover,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox_faux:focus,.slds-checkbox--button [type=checkbox]:checked+.slds-checkbox_faux:hover,.slds-checkbox--button [type=checkbox]:checked~.slds-checkbox--faux:focus,.slds-checkbox--button [type=checkbox]:checked~.slds-checkbox--faux:hover,.slds-checkbox--button [type=checkbox]:checked~.slds-checkbox_faux:focus,.slds-checkbox--button [type=checkbox]:checked~.slds-checkbox_faux:hover,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--button__label:focus,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--button__label:hover,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--faux:focus,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox--faux:hover,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox_button__label:focus,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox_button__label:hover,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox_faux:focus,.slds-checkbox_button [type=checkbox]:checked+.slds-checkbox_faux:hover,.slds-checkbox_button [type=checkbox]:checked~.slds-checkbox--faux:focus,.slds-checkbox_button [type=checkbox]:checked~.slds-checkbox--faux:hover,.slds-checkbox_button [type=checkbox]:checked~.slds-checkbox_faux:focus,.slds-checkbox_button [type=checkbox]:checked~.slds-checkbox_faux:hover{background-color:#014486}.slds-checkbox--button [type=checkbox]:focus+.slds-checkbox--button__label,.slds-checkbox--button [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox--button [type=checkbox]:focus+.slds-checkbox_button__label,.slds-checkbox--button [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox--button [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox--button [type=checkbox]:focus~.slds-checkbox_faux,.slds-checkbox_button [type=checkbox]:focus+.slds-checkbox--button__label,.slds-checkbox_button [type=checkbox]:focus+.slds-checkbox--faux,.slds-checkbox_button [type=checkbox]:focus+.slds-checkbox_button__label,.slds-checkbox_button [type=checkbox]:focus+.slds-checkbox_faux,.slds-checkbox_button [type=checkbox]:focus~.slds-checkbox--faux,.slds-checkbox_button [type=checkbox]:focus~.slds-checkbox_faux{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;z-index:1}.slds-checkbox--button [type=checkbox][disabled]+.slds-checkbox--button__label,.slds-checkbox--button [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox--button [type=checkbox][disabled]+.slds-checkbox_button__label,.slds-checkbox--button [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox--button [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox--button [type=checkbox][disabled]~.slds-checkbox_faux,.slds-checkbox_button [type=checkbox][disabled]+.slds-checkbox--button__label,.slds-checkbox_button [type=checkbox][disabled]+.slds-checkbox--faux,.slds-checkbox_button [type=checkbox][disabled]+.slds-checkbox_button__label,.slds-checkbox_button [type=checkbox][disabled]+.slds-checkbox_faux,.slds-checkbox_button [type=checkbox][disabled]~.slds-checkbox--faux,.slds-checkbox_button [type=checkbox][disabled]~.slds-checkbox_faux{background-color:var(--slds-g-color-neutral-base-100,#fff);color:var(--slds-g-color-neutral-base-80,#c9c9c9);cursor:default}.slds-checkbox--button [type=checkbox][disabled]:checked+.slds-checkbox--button__label,.slds-checkbox--button [type=checkbox][disabled]:checked+.slds-checkbox--faux,.slds-checkbox--button [type=checkbox][disabled]:checked+.slds-checkbox_button__label,.slds-checkbox--button [type=checkbox][disabled]:checked+.slds-checkbox_faux,.slds-checkbox--button [type=checkbox][disabled]:checked~.slds-checkbox--faux,.slds-checkbox--button [type=checkbox][disabled]:checked~.slds-checkbox_faux,.slds-checkbox_button [type=checkbox][disabled]:checked+.slds-checkbox--button__label,.slds-checkbox_button [type=checkbox][disabled]:checked+.slds-checkbox--faux,.slds-checkbox_button [type=checkbox][disabled]:checked+.slds-checkbox_button__label,.slds-checkbox_button [type=checkbox][disabled]:checked+.slds-checkbox_faux,.slds-checkbox_button [type=checkbox][disabled]:checked~.slds-checkbox--faux,.slds-checkbox_button [type=checkbox][disabled]:checked~.slds-checkbox_faux{background-color:var(--slds-g-color-neutral-base-80,#c9c7c5);color:var(--slds-g-color-neutral-base-100,#fff);cursor:default}.slds-select{height:calc(1.875rem + (1px * 2));width:100%;border:1px solid var(--slds-c-select-color-border,var(--sds-c-select-color-border,var(--slds-g-color-border-base-4,#c9c9c9)));border-radius:var(--slds-c-select-radius-border,var(--sds-c-select-radius-border,.25rem));background-color:var(--slds-c-select-color-background,var(--sds-c-select-color-background,var(--slds-g-color-neutral-base-100,#fff)));color:var(--slds-c-select-text-color,var(--sds-c-select-text-color));-webkit-box-shadow:var(--slds-c-select-shadow,var(--sds-c-select-shadow));box-shadow:var(--slds-c-select-shadow,var(--sds-c-select-shadow));-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear}.slds-select:required{-webkit-box-shadow:none;box-shadow:none}.slds-select:active,.slds-select:focus{outline:0;border-color:var(--slds-c-select-color-border-focus,var(--sds-c-select-color-border-focus,var(--slds-g-color-brand-base-60,#1b96ff)));background-color:var(--slds-c-select-color-background-focus,var(--sds-c-select-color-background-focus,var(--slds-g-color-neutral-base-100,#fff)));color:var(--slds-c-select-text-color-focus,var(--sds-c-select-text-color-focus));-webkit-box-shadow:var(--slds-c-select-shadow-focus,var(--sds-c-select-shadow-focus,0 0 3px #0176d3));box-shadow:var(--slds-c-select-shadow-focus,var(--sds-c-select-shadow-focus,0 0 3px #0176d3))}.slds-select.slds-is-disabled,.slds-select[disabled]{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9);color:var(--slds-g-color-neutral-base-50,#444);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:1}.slds-select.slds-is-disabled:active,.slds-select.slds-is-disabled:focus,.slds-select[disabled]:active,.slds-select[disabled]:focus{-webkit-box-shadow:none;box-shadow:none}.slds-select[multiple],.slds-select[size]{min-height:calc(1.875rem + (1px * 2));height:inherit}.slds-select[multiple] option,.slds-select[size] option{padding:.5rem}.slds-select_container{position:relative;color:var(--sds-c-select-text-color)}.slds-select_container .slds-select{-moz-appearance:none;-webkit-appearance:none;padding-left:.5rem;padding-right:1.5rem}.slds-select_container .slds-select::-ms-expand{display:none}.slds-select_container:after,.slds-select_container:before{position:absolute;content:"";display:block;right:.5rem;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;pointer-events:none}.slds-select_container:before{border-bottom:5px solid currentColor;top:calc((1.75rem / 2) - 6px)}.slds-select_container:after{border-top:5px solid currentColor;bottom:calc((1.75rem / 2) - 6px)}.slds-has-error .slds-select{border-color:var(--slds-g-color-error-base-40,#ea001e);-webkit-box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 1px inset;box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 1px inset;background-clip:padding-box}.slds-has-error .slds-select:active,.slds-has-error .slds-select:focus{-webkit-box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 1px inset,0 0 3px #0176d3;box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 1px inset,0 0 3px #0176d3}.slds-form--inline .slds-form-element,.slds-form--inline .slds-form-element__control,.slds-form--inline .slds-form-element__label,.slds-form_inline .slds-form-element,.slds-form_inline .slds-form-element__control,.slds-form_inline .slds-form-element__label{display:block}.slds-form--inline .slds-form-element+.slds-form-element,.slds-form_inline .slds-form-element+.slds-form-element{margin-top:.75rem}@media (min-width:30em){.slds-form--inline .slds-form-element,.slds-form_inline .slds-form-element{margin-right:.5rem}.slds-form--inline .slds-form-element+.slds-form-element,.slds-form_inline .slds-form-element+.slds-form-element{margin-top:0}.slds-form--inline .slds-form-element,.slds-form--inline .slds-form-element__control,.slds-form--inline .slds-form-element__label,.slds-form_inline .slds-form-element,.slds-form_inline .slds-form-element__control,.slds-form_inline .slds-form-element__label{display:inline-block;vertical-align:middle;margin-bottom:0}}.slds-form-element__legend_has-tooltip{float:left}.slds-form--compound .slds-form-element__control,.slds-form_compound .slds-form-element__control{position:relative}.slds-form--compound .slds-form-element__control+.slds-form-element__control,.slds-form_compound .slds-form-element__control+.slds-form-element__control{padding-left:.5rem}.slds-form--compound,.slds-form_compound{width:100%}.slds-form--compound>.slds-form-element,.slds-form_compound>.slds-form-element{margin-top:var(--slds-c-form-compound-spacing-block-start,var(--slds-c-form-compound-spacing-block,0));margin-bottom:var(--slds-c-form-compound-spacing-block-end,var(--slds-c-form-compound-spacing-block,0));margin-left:var(--slds-c-form-compound-spacing-inline-start,var(--slds-c-form-compound-spacing-inline,0));margin-right:var(--slds-c-form-compound-spacing-inline-end,var(--slds-c-form-compound-spacing-inline,0))}.slds-form--compound .slds-form-element__row,.slds-form_compound .slds-form-element__row{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:var(--slds-c-form-row-spacing-block-start,var(--slds-c-form-row-spacing-block,0));margin-bottom:var(--slds-c-form-row-spacing-block-end,var(--slds-c-form-row-spacing-block,.25rem));margin-left:var(--slds-c-form-row-spacing-inline-start,var(--slds-c-form-row-spacing-inline,0));margin-right:var(--slds-c-form-row-spacing-inline-end,var(--slds-c-form-row-spacing-inline,0))}.slds-form--compound .slds-form-element__row+.slds-form-element__row,.slds-form_compound .slds-form-element__row+.slds-form-element__row{clear:both}.slds-form--compound .slds-form-element__row .slds-form-element,.slds-form_compound .slds-form-element__row .slds-form-element{margin-bottom:0}.slds-form--compound .slds-form-element__row .slds-form-element+.slds-form-element,.slds-form_compound .slds-form-element__row .slds-form-element+.slds-form-element{padding-left:.5rem;margin-top:0}.slds-form--compound .slds-form-element__row .slds-form-element__label,.slds-form_compound .slds-form-element__row .slds-form-element__label{padding-top:0}.slds-form-element_address .slds-form-element__row{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.slds-form-element_stacked,.slds-form_horizontal .slds-form-element_stacked,.slds-form_stacked .slds-form-element{display:block}.slds-form-element_stacked:not(.slds-form-element_readonly),.slds-form_horizontal .slds-form-element_stacked:not(.slds-form-element_readonly),.slds-form_stacked .slds-form-element:not(.slds-form-element_readonly){margin-bottom:.5rem}.slds-form-element_stacked:not(.slds-is-editing),.slds-form_horizontal .slds-form-element_stacked:not(.slds-is-editing),.slds-form_stacked .slds-form-element:not(.slds-is-editing){padding:0 .25rem}.slds-form-element_stacked .slds-form-element,.slds-form_horizontal .slds-form-element_stacked .slds-form-element,.slds-form_stacked .slds-form-element .slds-form-element{padding:0;margin-bottom:0}.slds-form-element_stacked:not([class*=slds-size]),.slds-form_horizontal .slds-form-element_stacked:not([class*=slds-size]),.slds-form_stacked .slds-form-element:not([class*=slds-size]){width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.slds-form-element_stacked .slds-checkbox,.slds-form-element_stacked .slds-radio,.slds-form_horizontal .slds-form-element_stacked .slds-checkbox,.slds-form_horizontal .slds-form-element_stacked .slds-radio,.slds-form_stacked .slds-form-element .slds-checkbox,.slds-form_stacked .slds-form-element .slds-radio{display:block}.slds-form-element_stacked .slds-form-element__control,.slds-form-element_stacked .slds-form-element__label,.slds-form_horizontal .slds-form-element_stacked .slds-form-element__control,.slds-form_horizontal .slds-form-element_stacked .slds-form-element__label,.slds-form_stacked .slds-form-element .slds-form-element__control,.slds-form_stacked .slds-form-element .slds-form-element__label{border-bottom:0;padding-left:0}.slds-form-element_stacked .slds-form-element__control,.slds-form_horizontal .slds-form-element_stacked .slds-form-element__control,.slds-form_stacked .slds-form-element .slds-form-element__control{width:100%;-ms-flex-preferred-size:100%;flex-basis:100%;clear:left}[dir=rtl] .slds-form-element_stacked .slds-form-element__control,[dir=rtl] .slds-form_horizontal .slds-form-element_stacked .slds-form-element__control,[dir=rtl] .slds-form_stacked .slds-form-element .slds-form-element__control{/*! @noflip */clear:right}.slds-form-element_stacked .slds-form-element__icon,.slds-form_horizontal .slds-form-element_stacked .slds-form-element__icon,.slds-form_stacked .slds-form-element .slds-form-element__icon{float:none;padding-top:.25rem}.slds-form-element_horizontal,.slds-form_horizontal .slds-form-element,.slds-form_stacked .slds-form-element_horizontal{display:block}.slds-form-element_horizontal:not(.slds-form-element_readonly),.slds-form_horizontal .slds-form-element:not(.slds-form-element_readonly),.slds-form_stacked .slds-form-element_horizontal:not(.slds-form-element_readonly){margin-bottom:.5rem}.slds-form-element_horizontal:not([class*=slds-size]),.slds-form_horizontal .slds-form-element:not([class*=slds-size]),.slds-form_stacked .slds-form-element_horizontal:not([class*=slds-size]){width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.slds-form-element_horizontal:not(.slds-is-editing),.slds-form_horizontal .slds-form-element:not(.slds-is-editing),.slds-form_stacked .slds-form-element_horizontal:not(.slds-is-editing){padding:.25rem .25rem}.slds-form-element_horizontal .slds-form-element,.slds-form_horizontal .slds-form-element .slds-form-element,.slds-form_stacked .slds-form-element_horizontal .slds-form-element{padding:0;margin-bottom:0}.slds-form-element_horizontal.slds-is-edited,.slds-form_horizontal .slds-form-element.slds-is-edited,.slds-form_stacked .slds-form-element_horizontal.slds-is-edited{padding-top:1.25rem}@media (min-width:48em){.slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{max-width:calc((50% - 33.333%) - 1.25rem)}.slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:calc((50% - 33.333%) - (.25rem * 2))}}@media (min-width:48em){.slds-form-element_horizontal .slds-form-element__label,.slds-form_horizontal .slds-form-element .slds-form-element__label,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{float:left;max-width:calc(33% - 1.25rem);-ms-flex-preferred-size:calc(33% - 1.25rem);flex-basis:calc(33% - 1.25rem);margin-bottom:0;position:relative;z-index:1}.slds-form-element_horizontal .slds-form-element__control,.slds-form_horizontal .slds-form-element .slds-form-element__control,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:33%;clear:none}.slds-form-element_horizontal .slds-form-element__control .slds-form-element__control,.slds-form_horizontal .slds-form-element .slds-form-element__control .slds-form-element__control,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__control .slds-form-element__control{padding-left:0}.slds-form-element_horizontal .slds-form-element__icon,.slds-form_horizontal .slds-form-element .slds-form-element__icon,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__icon{float:left;padding-top:.25rem}.slds-form-element_horizontal .slds-checkbox_standalone,.slds-form_horizontal .slds-form-element .slds-checkbox_standalone,.slds-form_stacked .slds-form-element_horizontal .slds-checkbox_standalone{padding:.25rem 0}.slds-form-element_horizontal .slds-checkbox:not(.slds-checkbox_stacked) .slds-form-element__label,.slds-form-element_horizontal .slds-radio .slds-form-element__label,.slds-form_horizontal .slds-form-element .slds-checkbox:not(.slds-checkbox_stacked) .slds-form-element__label,.slds-form_horizontal .slds-form-element .slds-radio .slds-form-element__label,.slds-form_stacked .slds-form-element_horizontal .slds-checkbox:not(.slds-checkbox_stacked) .slds-form-element__label,.slds-form_stacked .slds-form-element_horizontal .slds-radio .slds-form-element__label{position:relative;float:none;max-width:100%;width:auto}.slds-form-element_horizontal .slds-dueling-list__column .slds-form-element__label,.slds-form-element_horizontal .slds-form-element__row .slds-form-element__control,.slds-form-element_horizontal .slds-form-element__row .slds-form-element__label,.slds-form_horizontal .slds-form-element .slds-dueling-list__column .slds-form-element__label,.slds-form_horizontal .slds-form-element .slds-form-element__row .slds-form-element__control,.slds-form_horizontal .slds-form-element .slds-form-element__row .slds-form-element__label,.slds-form_stacked .slds-form-element_horizontal .slds-dueling-list__column .slds-form-element__label,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__row .slds-form-element__control,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__row .slds-form-element__label{width:auto;max-width:100%;-ms-flex-preferred-size:auto;flex-basis:auto;float:none;position:relative;padding-left:0;margin-bottom:0}.slds-form-element_horizontal .slds-dueling-list,.slds-form_horizontal .slds-form-element .slds-dueling-list,.slds-form_stacked .slds-form-element_horizontal .slds-dueling-list{clear:none}.slds-form-element_horizontal .slds-input-has-icon_left .slds-input__icon,.slds-form_horizontal .slds-form-element .slds-input-has-icon_left .slds-input__icon,.slds-form_stacked .slds-form-element_horizontal .slds-input-has-icon_left .slds-input__icon{left:calc(33% + .75rem)}.slds-form-element_horizontal .slds-input-has-icon_left-right .slds-input__icon_left,.slds-form_horizontal .slds-form-element .slds-input-has-icon_left-right .slds-input__icon_left,.slds-form_stacked .slds-form-element_horizontal .slds-input-has-icon_left-right .slds-input__icon_left{left:calc(33% + .75rem)}}.slds-form-element_horizontal .slds-form-element__help,.slds-form_horizontal .slds-form-element .slds-form-element__help,.slds-form_stacked .slds-form-element_horizontal .slds-form-element__help{margin-left:33%}.slds-form-element_compound .slds-form-element__row{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.25rem;margin-left:-.25rem;margin-right:-.25rem}.slds-form-element_compound .slds-form-element__row .slds-form-element__label{padding-top:0}.slds-form-element_compound .slds-form-element{padding-left:.25rem;padding-right:.25rem}.slds-form-element_address .slds-form-element__row{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.slds-form__row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-.75rem;margin-right:-.75rem}.slds-form__item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;min-width:280px;padding-left:.75rem;padding-right:.75rem}.slds-is-edited{background:var(--slds-g-color-palette-yellow-90,#faffbd)}.slds-is-edited .slds-form-element__undo{top:-1.25rem;right:.25rem}.slds-form-element__undo{position:absolute;top:0;right:0}.slds-docked-form-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:.5rem 0;position:fixed;bottom:0;left:0;width:100%;background:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);z-index:8000}.slds-slider{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.slds-slider__range{-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;background:0 0;background-color:transparent;border-radius:.125rem}.slds-slider__range:focus{outline:0}.slds-slider__range::-webkit-slider-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none;width:1rem;height:1rem;border-radius:var(--slds-c-slider-thumb-radius-border,var(--sds-c-slider-thumb-radius-border,50%));background:0 0;background-color:var(--slds-c-slider-thumb-color-foreground,var(--sds-c-slider-thumb-color-foreground,#0176d3));border:0;-webkit-box-shadow:var(--slds-c-slider-thumb-shadow,var(--sds-c-slider-thumb-shadow,var(--slds-g-color-neutral-base-10,rgba(0,0,0,.16) 0 2px 3px)));box-shadow:var(--slds-c-slider-thumb-shadow,var(--sds-c-slider-thumb-shadow,var(--slds-g-color-neutral-base-10,rgba(0,0,0,.16) 0 2px 3px)));cursor:pointer;-webkit-transition:background .15s ease-in-out;transition:background .15s ease-in-out;margin-top:calc(((1rem / 2) - (4px / 2)) * -1)}.slds-slider__range::-webkit-slider-thumb:hover{background-color:var(--slds-c-slider-thumb-color-foreground-hover,var(--sds-c-slider-thumb-color-foreground-hover,#014486))}.slds-slider__range::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:0 0;background-color:var(--slds-c-slider-track-color-background,var(--sds-c-slider-track-color-background,var(--slds-g-color-neutral-base-95,#f3f3f3)));border-radius:var(--slds-c-slider-track-radius-border,var(--sds-c-slider-track-radius-border,.125rem))}.slds-slider__range::-moz-range-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none;width:1rem;height:1rem;border-radius:var(--slds-c-slider-thumb-radius-border,var(--sds-c-slider-thumb-radius-border,50%));background:0 0;background-color:var(--slds-c-slider-thumb-color-foreground,var(--sds-c-slider-thumb-color-foreground,#0176d3));border:0;box-shadow:var(--slds-c-slider-thumb-shadow,var(--sds-c-slider-thumb-shadow,var(--slds-g-color-neutral-base-10,rgba(0,0,0,.16) 0 2px 3px)));cursor:pointer;-moz-transition:background .15s ease-in-out;transition:background .15s ease-in-out}.slds-slider__range::-moz-range-thumb:hover{background-color:var(--slds-c-slider-thumb-color-foreground-hover,var(--sds-c-slider-thumb-color-foreground-hover,#014486))}.slds-slider__range::-moz-range-track{width:100%;height:4px;cursor:pointer;background:0 0;background-color:var(--slds-c-slider-track-color-background,var(--sds-c-slider-track-color-background,var(--slds-g-color-neutral-base-95,#f3f3f3)));border-radius:var(--slds-c-slider-track-radius-border,var(--sds-c-slider-track-radius-border,.125rem))}.slds-slider__range::-ms-track{width:100%;height:4px;cursor:pointer;background:0 0;background-color:var(--slds-c-slider-track-color-background,var(--sds-c-slider-track-color-background,var(--slds-g-color-neutral-base-95,#f3f3f3)));border-radius:var(--slds-c-slider-track-radius-border,var(--sds-c-slider-track-radius-border,.125rem));border-color:transparent;color:transparent;cursor:pointer}.slds-slider__range::-ms-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none;width:1rem;height:1rem;border-radius:var(--slds-c-slider-thumb-radius-border,var(--sds-c-slider-thumb-radius-border,50%));background:0 0;background-color:var(--slds-c-slider-thumb-color-foreground,var(--sds-c-slider-thumb-color-foreground,#0176d3));border:0;box-shadow:var(--slds-c-slider-thumb-shadow,var(--sds-c-slider-thumb-shadow,var(--slds-g-color-neutral-base-10,rgba(0,0,0,.16) 0 2px 3px)));cursor:pointer;-ms-transition:background .15s ease-in-out;transition:background .15s ease-in-out;margin-top:calc(4px / 4)}.slds-slider__range::-ms-thumb:hover{background-color:var(--slds-c-slider-thumb-color-foreground-hover,var(--sds-c-slider-thumb-color-foreground-hover,#014486))}.slds-slider__range:focus::-webkit-slider-thumb{background-color:var(--slds-c-slider-thumb-color-foreground-focus,var(--sds-c-slider-thumb-color-foreground-focus,#014486));-webkit-box-shadow:var(--slds-c-slider-thumb-shadow-focus,var(--sds-c-slider-thumb-shadow-focus,0 0 3px #0176d3));box-shadow:var(--slds-c-slider-thumb-shadow-focus,var(--sds-c-slider-thumb-shadow-focus,0 0 3px #0176d3))}.slds-slider__range:active::-webkit-slider-thumb{background-color:var(--slds-c-slider-thumb-color-foreground-active,var(--sds-c-slider-thumb-color-foreground-active,#014486))}.slds-slider__range:focus::-moz-range-thumb{background-color:var(--slds-c-slider-thumb-color-foreground-focus,var(--sds-c-slider-thumb-color-foreground-focus,#014486));box-shadow:var(--slds-c-slider-thumb-shadow-focus,var(--sds-c-slider-thumb-shadow-focus,0 0 3px #0176d3))}.slds-slider__range:active::-moz-range-thumb{background-color:var(--slds-c-slider-thumb-color-foreground-active,var(--sds-c-slider-thumb-color-foreground-active,#014486))}.slds-slider__range[disabled]::-webkit-slider-thumb{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:default}.slds-slider__range[disabled]::-webkit-slider-runnable-track{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:default}.slds-slider__range[disabled]::-moz-range-thumb{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:default}.slds-slider__range[disabled]::-moz-range-track{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-slider__range[disabled]::-ms-thumb{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:default}.slds-slider__range[disabled]::-ms-track{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:default}.slds-slider__value{padding:0 .5rem}.slds-slider-label__label{display:block}.slds-slider_vertical{height:13.875rem}.slds-slider_vertical .slds-slider__range{width:12rem;height:1rem;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:6rem 6rem;transform-origin:6rem 6rem}.slds-slider_vertical .slds-slider__value{position:absolute;left:0;bottom:0;padding:0}.slds-file-selector{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-file-selector__dropzone{padding:.125rem;border:1px dashed var(--slds-g-color-border-base-4,#e5e5e5);border-radius:.25rem}.slds-file-selector__dropzone.slds-has-drag-over{outline:0;border-color:var(--slds-g-color-brand-base-60,#1b96ff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3;border-style:solid}.slds-file-selector__input:focus~.slds-file-selector__body>.slds-file-selector__button{-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-file-selector__input[disabled]~.slds-file-selector__body{color:var(--slds-g-color-neutral-base-10,#c9c9c9)}.slds-file-selector__input[disabled]~.slds-file-selector__body>.slds-file-selector__button{background:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-neutral-base-80,transparent);color:var(--slds-g-color-neutral-base-30,#fff)}.slds-file-selector__input[disabled]~.slds-file-selector__body>.slds-file-selector__body-icon{fill:currentColor}.slds-file-selector__button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-file-selector--files .slds-file-selector__body,.slds-file-selector_files .slds-file-selector__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-file-selector--files .slds-file-selector__text,.slds-file-selector_files .slds-file-selector__text{margin-left:.5rem;margin-right:.75rem}.slds-file-selector--images,.slds-file-selector_images{display:block}.slds-file-selector--images .slds-file-selector__dropzone,.slds-file-selector_images .slds-file-selector__dropzone{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:auto;padding:1rem}.slds-file-selector--images .slds-file-selector__body,.slds-file-selector_images .slds-file-selector__body{text-align:center}.slds-file-selector--images .slds-file-selector__text,.slds-file-selector_images .slds-file-selector__text{margin-top:.75rem}.slds-file-selector--integrated,.slds-file-selector_integrated{width:100%;height:100%;position:relative;display:block}.slds-file-selector__dropzone--integrated,.slds-file-selector__dropzone_integrated{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;border:0;opacity:0;z-index:-1}.slds-file-selector__dropzone--integrated.slds-has-drag,.slds-file-selector__dropzone_integrated.slds-has-drag{background:rgba(255,255,255,.75);opacity:1;z-index:8000}.slds-file-selector__dropzone--integrated.slds-has-drag-over,.slds-file-selector__dropzone_integrated.slds-has-drag-over{background:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:0 0 0 4px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 4px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-file-selector__body--integrated,.slds-file-selector__body_integrated{width:12rem;height:12rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:auto;background:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.16);box-shadow:0 2px 3px 0 rgba(0,0,0,.16);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.slds-file-selector__text--integrated,.slds-file-selector__text_integrated{margin-top:.75rem}.slds-page-header{padding:1rem 1rem;border-bottom:1px solid var(--slds-g-color-border-base-1,#c9c9c9);border-radius:.25rem;background:var(--slds-g-color-neutral-base-95,#f3f3f3);background-clip:padding-box;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.1);box-shadow:0 2px 2px 0 rgba(0,0,0,.1);border:1px solid var(--slds-g-color-border-base-1,#c9c9c9)}.slds-page-header__row{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-page-header__row_gutters{margin-left:-1rem;margin-right:-1rem}.slds-page-header__col-title{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0}.slds-page-header__icon{width:2.25rem;height:2.25rem}.slds-page-header__col-actions{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:0;-ms-flex:none;flex:none;padding-bottom:.25rem;vertical-align:top}.slds-page-header__col-meta{-ms-flex-item-align:center;align-self:center;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;vertical-align:middle}.slds-page-header__col-controls{-ms-flex-item-align:end;align-self:flex-end;-webkit-box-flex:0;-ms-flex:none;flex:none;vertical-align:bottom}.slds-page-header__col-details{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding-left:1rem;padding-right:1rem;max-width:100%}.slds-page-header__name{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding-right:.5rem;max-width:100%}.slds-page-header__name h1{line-height:1}.slds-page-header__name-title{min-width:0}.slds-page-header__name-switcher{-ms-flex-item-align:end;align-self:flex-end;margin:0 0 .125rem .125rem}.slds-page-header__name-switcher .slds-button__icon{fill:var(--slds-g-color-neutral-base-10,#181818)}.slds-page-header__name-meta{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;padding-right:.5rem}.slds-page-header__meta-text{font-size:.875rem}.slds-page-header__title{font-size:1.125rem;font-weight:700;line-height:1.25;display:block}.slds-page-header__title .slds-icon{fill:currentColor}.slds-page-header__controls{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-page-header__control{margin-left:.25rem}.slds-page-header.slds-has-bottom-magnet,.slds-page-header_joined{border-bottom:1px solid var(--slds-g-color-border-base-1,#c9c9c9);border-radius:.25rem .25rem 0 0;-webkit-box-shadow:none;box-shadow:none}.slds-card .slds-page-header,.slds-tabs_card .slds-page-header{border:0;-webkit-box-shadow:none;box-shadow:none;border-radius:.25rem}.slds-page-header__detail-row{display:-webkit-box;display:-ms-flexbox;display:flex;margin:.75rem -1rem -1rem;padding:1rem;border-radius:0 0 .25rem .25rem;background-color:var(--slds-g-color-neutral-base-100,#fff);position:relative;z-index:2}.slds-page-header__detail-block{padding-right:2rem;padding-left:2rem;max-width:25%}.slds-page-header__detail-block:first-child{padding-left:0}.slds-page-header__detail-block:last-child{padding-right:0}.slds-page-header--vertical,.slds-page-header_vertical{padding:.75rem;background:var(--slds-g-color-neutral-base-100,#fff);border-bottom:0}.slds-page-header--vertical .slds-page-header__controls,.slds-page-header_vertical .slds-page-header__controls{padding-top:.5rem;margin-top:.5rem;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-page-header--vertical .slds-page-header__name-title,.slds-page-header_vertical .slds-page-header__name-title{margin-top:.25rem}.slds-page-header__detail-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.slds-page-header__detail-item{margin-top:.75rem;width:50%}.slds-page-header--object-home,.slds-page-header_object-home{padding-bottom:.75rem}.slds-brand-band{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.slds-brand-band:before{content:"";display:block;position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background-image:url(../images/themes/oneSalesforce/banner-brand-default.png),-webkit-gradient(linear,left bottom,left top,color-stop(0,rgba(1,68,134,0)),to(#014486));background-image:url(../images/themes/oneSalesforce/banner-brand-default.png),linear-gradient(to top,rgba(1,68,134,0) 0,#014486);background-repeat:repeat-x;background-position:top left}.slds-brand-band:after{content:none;display:block;position:absolute;z-index:-1;left:0;right:0;top:0;width:100%;height:3.125rem;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(60%,rgba(176,196,223,0)),to(#eef4ff));background-image:linear-gradient(to bottom,rgba(176,196,223,0) 60%,#eef4ff)}.slds-brand-band.slds-brand-band_cover:before{background-repeat:no-repeat;background-size:cover}.slds-brand-band.slds-brand-band_small:before{height:6rem}.slds-brand-band.slds-brand-band_small:after{content:"";top:2.875rem}.slds-brand-band.slds-brand-band_medium:before{height:12.5rem}.slds-brand-band.slds-brand-band_medium:after{content:"";top:9.375rem}.slds-brand-band.slds-brand-band_large:before{height:18.75rem}.slds-brand-band.slds-brand-band_large:after{content:"";top:15.625rem}.slds-brand-band.slds-brand-band_full:before{height:100%}.slds-brand-band.slds-brand-band_bottom:before{background-position:bottom;top:initial}.slds-brand-band.slds-brand-band_none:before{height:0}.slds-brand-band.slds-brand-band_group:before{background-image:url(../images/themes/oneSalesforce/banner-group-public-default.png)}.slds-brand-band.slds-brand-band_user:before{background-image:url(../images/themes/oneSalesforce/banner-user-default.png)}.slds-brand-band .slds-brand-band_blank{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-brand-band .slds-brand-band_blank:after,.slds-brand-band .slds-brand-band_blank:before{background:0 0}.slds-template__container{position:relative;height:100%;width:100%}.slds-template_default{padding:.75rem}.slds-template_default.slds-brand-band:before{position:fixed;top:5.625rem}.slds-template_default.slds-brand-band.slds-brand-band_medium:after{position:fixed;top:15rem}.slds-template_bottom-magnet{padding:.75rem .75rem 0 .75rem}.slds-template_profile{padding:8rem .75rem .75rem}.slds-template__content{padding:.75rem .75rem 0 .75rem}.slds-template_app{padding:.75rem 0 0 .75rem}.slds-template_iframe{width:calc(100% + (.75rem * 2));height:calc(100% + (.75rem * 2));margin:-.75rem;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-panel{background:var(--slds-g-color-neutral-base-100,#fff);border-radius:.25rem;overflow-y:auto}.slds-panel.slds-is-editing{-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.16);box-shadow:0 2px 3px 0 rgba(0,0,0,.16)}.slds-panel__section{padding:1rem}.slds-panel__actions{padding:.75rem}.slds-panel__header{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.75rem;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-panel__header_custom{padding:.75rem 1rem}.slds-panel__close:first-child{margin-right:.5rem}.slds-panel__close:last-child{margin-left:.5rem}.slds-panel__back:first-child{margin-right:.5rem}.slds-panel__back:last-child{margin-left:.5rem}.slds-panel__back,.slds-panel__close{-ms-flex-negative:0;flex-shrink:0}.slds-panel__header_align-center{padding:.75rem 3rem}.slds-panel__header_align-center .slds-panel__header-title{text-align:center}.slds-panel__header_align-center .slds-panel__close{position:absolute;right:.75rem;left:auto;top:50%;margin-top:-.75rem}.slds-panel__header_align-center .slds-panel__back{position:absolute;left:.75rem;right:auto;top:50%;margin-top:-.75rem}.slds-panel__header-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:.5rem}.slds-panel__header-actions .slds-panel__close{margin-left:0;margin-right:0}.slds-panel__body{padding:.75rem}.slds-panel__header-title{text-align:start;width:100%}.slds-panel_docked{position:relative;min-width:15rem;height:100%;border-radius:0;display:none}.slds-panel_docked.slds-is-open{display:block}.slds-panel_docked-left{-webkit-box-shadow:1px 0 3px rgba(0,0,0,.25);box-shadow:1px 0 3px rgba(0,0,0,.25)}.slds-panel_docked-right{margin-left:auto;-webkit-box-shadow:-1px 0 3px 0 rgba(0,0,0,.25);box-shadow:-1px 0 3px 0 rgba(0,0,0,.25)}.slds-panel_animated{display:block;position:absolute;top:0;left:0;bottom:0;right:0;-webkit-transform:translate3d(120%,0,0);transform:translate3d(120%,0,0);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;z-index:9000}.slds-tabs-mobile__container .slds-panel_animated{position:fixed}.slds-panel_animated.slds-is-open{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slds-panel--filters,.slds-panel_filters{margin-left:1rem;-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.16);box-shadow:0 2px 3px 0 rgba(0,0,0,.16);border-radius:0}.slds-popover{position:relative;border-radius:.25rem;width:20rem;min-height:2rem;z-index:var(--slds-c-popover-position-zindex,6000);background-color:var(--slds-g-color-neutral-base-100,#fff);display:inline-block;-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.16);box-shadow:0 2px 3px 0 rgba(0,0,0,.16);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-popover__meta{margin-bottom:.75rem}.slds-popover__body{padding:.5rem .75rem}.slds-popover__body .slds-popover__header{padding:0 0 .5rem 0}.slds-popover__body,.slds-popover__footer,.slds-popover__header{position:relative;padding:.5rem .75rem;word-wrap:break-word}.slds-popover__header{border-bottom:0}.slds-popover__footer{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;padding:.5rem .75rem}.slds-popover__footer_form{text-align:center;background:var(--slds-g-color-neutral-base-95,#f3f3f3);border-radius:0 0 .25rem .25rem}.slds-popover__body_small{max-height:15rem;overflow-y:auto}.slds-popover__close{position:relative;margin:.25rem;z-index:6001}.slds-popover--small,.slds-popover_small{max-width:15rem}.slds-popover--medium,.slds-popover_medium{min-width:20rem}.slds-popover--large,.slds-popover_large{min-width:25rem;max-width:512px}.slds-popover[class*=theme--],.slds-popover[class*=theme_]{border:0}.slds-popover :last-child{margin-bottom:0}.slds-popover_full-width{width:100%}.slds-popover_hide{display:none}.slds-popover_dark{background-color:#014486;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-popover_dark .slds-badge{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-popover_dark .slds-popover__close{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-popover_dark .slds-icon-text-default{fill:var(--slds-g-color-neutral-base-100,#fff)}.slds-popover_dark .slds-popover__footer{border-top-color:var(--slds-g-color-brand-base-10,#001639);background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-popover_brand .slds-popover__footer{background-color:transparent;border-color:transparent}.slds-popover_brand .slds-popover__icon{fill:#0176d3}.slds-popover_brand.slds-popover_brand-dark .slds-popover__icon{fill:var(--slds-g-color-brand-base-10,#001639)}.slds-popover_brand-top{border-top-width:.25rem;border-top-color:#0176d3}.slds-popover_brand-top.slds-nubbin_top-left-corner:before,.slds-popover_brand-top.slds-nubbin_top-left:before,.slds-popover_brand-top.slds-nubbin_top-right-corner:before,.slds-popover_brand-top.slds-nubbin_top-right:before,.slds-popover_brand-top.slds-nubbin_top:before{margin-top:-.1875rem;background:linear-gradient(-45deg,transparent 50%,#0176d3 50%,#0176d3)}.slds-popover_brand-top.slds-nubbin_top-left-corner:after,.slds-popover_brand-top.slds-nubbin_top-left:after,.slds-popover_brand-top.slds-nubbin_top-right-corner:after,.slds-popover_brand-top.slds-nubbin_top-right:after,.slds-popover_brand-top.slds-nubbin_top:after{margin-top:-.1875rem;background:linear-gradient(-45deg,transparent 50%,transparent 50%,transparent)}.slds-popover_brand-top.slds-popover_brand-dark{border-top-color:var(--slds-g-color-brand-base-10,#001639)}.slds-popover_brand-top.slds-popover_brand-dark.slds-nubbin_top-left-corner:before,.slds-popover_brand-top.slds-popover_brand-dark.slds-nubbin_top-left:before,.slds-popover_brand-top.slds-popover_brand-dark.slds-nubbin_top-right-corner:before,.slds-popover_brand-top.slds-popover_brand-dark.slds-nubbin_top-right:before,.slds-popover_brand-top.slds-popover_brand-dark.slds-nubbin_top:before{margin-top:-.1875rem;background:linear-gradient(-45deg,transparent 50%,#001639 50%,#001639)}.slds-popover_brand-left{border-left-width:.25rem;border-left-color:#0176d3}.slds-popover_brand-left.slds-nubbin_left-bottom-corner:before,.slds-popover_brand-left.slds-nubbin_left-bottom:before,.slds-popover_brand-left.slds-nubbin_left-top-corner:before,.slds-popover_brand-left.slds-nubbin_left-top:before,.slds-popover_brand-left.slds-nubbin_left:before{margin-left:-.1875rem;background:linear-gradient(-135deg,transparent 50%,#0176d3 50%,#0176d3)}.slds-popover_brand-left.slds-nubbin_left-bottom-corner:after,.slds-popover_brand-left.slds-nubbin_left-bottom:after,.slds-popover_brand-left.slds-nubbin_left-top-corner:after,.slds-popover_brand-left.slds-nubbin_left-top:after,.slds-popover_brand-left.slds-nubbin_left:after{margin-left:-.1875rem;background:linear-gradient(-135deg,transparent 50%,transparent 50%,transparent)}.slds-popover_brand-left.slds-popover_brand-dark{border-left-color:var(--slds-g-color-brand-base-10,#001639)}.slds-popover_brand-left.slds-popover_brand-dark.slds-nubbin_left-bottom-corner:before,.slds-popover_brand-left.slds-popover_brand-dark.slds-nubbin_left-bottom:before,.slds-popover_brand-left.slds-popover_brand-dark.slds-nubbin_left-top-corner:before,.slds-popover_brand-left.slds-popover_brand-dark.slds-nubbin_left-top:before,.slds-popover_brand-left.slds-popover_brand-dark.slds-nubbin_left:before{margin-left:-.1875rem;background:linear-gradient(-135deg,transparent 50%,#001639 50%,#001639)}.slds-popover_brand-bottom{border-bottom-width:.25rem;border-bottom-color:#0176d3}.slds-popover_brand-bottom.slds-nubbin_bottom-left-corner:before,.slds-popover_brand-bottom.slds-nubbin_bottom-left:before,.slds-popover_brand-bottom.slds-nubbin_bottom-right-corner:before,.slds-popover_brand-bottom.slds-nubbin_bottom-right:before,.slds-popover_brand-bottom.slds-nubbin_bottom:before{margin-bottom:-.1875rem;background:linear-gradient(135deg,transparent 50%,#0176d3 50%,#0176d3)}.slds-popover_brand-bottom.slds-nubbin_bottom-left-corner:after,.slds-popover_brand-bottom.slds-nubbin_bottom-left:after,.slds-popover_brand-bottom.slds-nubbin_bottom-right-corner:after,.slds-popover_brand-bottom.slds-nubbin_bottom-right:after,.slds-popover_brand-bottom.slds-nubbin_bottom:after{margin-bottom:-.1875rem;background:linear-gradient(135deg,transparent 50%,transparent 50%,transparent)}.slds-popover_brand-bottom.slds-popover_brand-dark{border-bottom-color:var(--slds-g-color-brand-base-10,#001639)}.slds-popover_brand-bottom.slds-popover_brand-dark.slds-nubbin_bottom-left-corner:before,.slds-popover_brand-bottom.slds-popover_brand-dark.slds-nubbin_bottom-left:before,.slds-popover_brand-bottom.slds-popover_brand-dark.slds-nubbin_bottom-right-corner:before,.slds-popover_brand-bottom.slds-popover_brand-dark.slds-nubbin_bottom-right:before,.slds-popover_brand-bottom.slds-popover_brand-dark.slds-nubbin_bottom:before{margin-bottom:-.1875rem;background:linear-gradient(135deg,transparent 50%,#001639 50%,#001639)}.slds-popover_brand-right{border-right-width:.25rem;border-right-color:#0176d3}.slds-popover_brand-right.slds-nubbin_right-bottom-corner:before,.slds-popover_brand-right.slds-nubbin_right-bottom:before,.slds-popover_brand-right.slds-nubbin_right-top-corner:before,.slds-popover_brand-right.slds-nubbin_right-top:before,.slds-popover_brand-right.slds-nubbin_right:before{margin-right:-.1875rem;background:linear-gradient(45deg,transparent 50%,#0176d3 50%,#0176d3)}.slds-popover_brand-right.slds-nubbin_right-bottom-corner:after,.slds-popover_brand-right.slds-nubbin_right-bottom:after,.slds-popover_brand-right.slds-nubbin_right-top-corner:after,.slds-popover_brand-right.slds-nubbin_right-top:after,.slds-popover_brand-right.slds-nubbin_right:after{margin-right:-.1875rem;background:linear-gradient(45deg,transparent 50%,transparent 50%,transparent)}.slds-popover_brand-right.slds-popover_brand-dark{border-right-color:var(--slds-g-color-brand-base-10,#001639)}.slds-popover_brand-right.slds-popover_brand-dark.slds-nubbin_right-bottom-corner:before,.slds-popover_brand-right.slds-popover_brand-dark.slds-nubbin_right-bottom:before,.slds-popover_brand-right.slds-popover_brand-dark.slds-nubbin_right-top-corner:before,.slds-popover_brand-right.slds-popover_brand-dark.slds-nubbin_right-top:before,.slds-popover_brand-right.slds-popover_brand-dark.slds-nubbin_right:before{margin-right:-.1875rem;background:linear-gradient(45deg,transparent 50%,#001639 50%,#001639)}.slds-popover--panel .slds-popover__header,.slds-popover_panel .slds-popover__header{background:var(--slds-g-color-neutral-base-95,#f3f3f3);padding:1.5rem 1.5rem .75rem;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px);border-bottom:0}.slds-popover--panel .slds-popover__body,.slds-popover_panel .slds-popover__body{padding:0}.slds-popover--panel .slds-popover__body-list,.slds-popover_panel .slds-popover__body-list{padding:1rem 1.5rem;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-popover--panel.slds-nubbin--left-top:after,.slds-popover--panel.slds-nubbin--left-top:before,.slds-popover--panel.slds-nubbin--right-top:after,.slds-popover--panel.slds-nubbin--right-top:before,.slds-popover--panel.slds-nubbin--top-left:after,.slds-popover--panel.slds-nubbin--top-left:before,.slds-popover--panel.slds-nubbin--top-right:after,.slds-popover--panel.slds-nubbin--top-right:before,.slds-popover--panel.slds-nubbin_left-top:after,.slds-popover--panel.slds-nubbin_left-top:before,.slds-popover--panel.slds-nubbin_right-top:after,.slds-popover--panel.slds-nubbin_right-top:before,.slds-popover--panel.slds-nubbin_top-left:after,.slds-popover--panel.slds-nubbin_top-left:before,.slds-popover--panel.slds-nubbin_top-right:after,.slds-popover--panel.slds-nubbin_top-right:before,.slds-popover_panel.slds-nubbin--left-top:after,.slds-popover_panel.slds-nubbin--left-top:before,.slds-popover_panel.slds-nubbin--right-top:after,.slds-popover_panel.slds-nubbin--right-top:before,.slds-popover_panel.slds-nubbin--top-left:after,.slds-popover_panel.slds-nubbin--top-left:before,.slds-popover_panel.slds-nubbin--top-right:after,.slds-popover_panel.slds-nubbin--top-right:before,.slds-popover_panel.slds-nubbin_left-top:after,.slds-popover_panel.slds-nubbin_left-top:before,.slds-popover_panel.slds-nubbin_right-top:after,.slds-popover_panel.slds-nubbin_right-top:before,.slds-popover_panel.slds-nubbin_top-left:after,.slds-popover_panel.slds-nubbin_top-left:before,.slds-popover_panel.slds-nubbin_top-right:after,.slds-popover_panel.slds-nubbin_top-right:before{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-popover--panel.slds-nubbin--left-top:after,.slds-popover--panel.slds-nubbin--left-top:before,.slds-popover--panel.slds-nubbin--right-top:after,.slds-popover--panel.slds-nubbin--right-top:before,.slds-popover--panel.slds-nubbin_left-top:after,.slds-popover--panel.slds-nubbin_left-top:before,.slds-popover--panel.slds-nubbin_right-top:after,.slds-popover--panel.slds-nubbin_right-top:before,.slds-popover_panel.slds-nubbin--left-top:after,.slds-popover_panel.slds-nubbin--left-top:before,.slds-popover_panel.slds-nubbin--right-top:after,.slds-popover_panel.slds-nubbin--right-top:before,.slds-popover_panel.slds-nubbin_left-top:after,.slds-popover_panel.slds-nubbin_left-top:before,.slds-popover_panel.slds-nubbin_right-top:after,.slds-popover_panel.slds-nubbin_right-top:before{top:2.25rem}.slds-popover_panel__label{font-size:.875rem;font-weight:700}.slds-nubbin--top:before,.slds-nubbin_top:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;top:-.5rem;margin-left:-.5rem}.slds-nubbin--top:after,.slds-nubbin_top:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;top:-.5rem;margin-left:-.5rem}.slds-nubbin--top:after,.slds-nubbin_top:after{-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--top-left:before,.slds-nubbin_top-left-corner:before,.slds-nubbin_top-left:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;top:-.5rem;margin-left:-.5rem}.slds-nubbin--top-left:after,.slds-nubbin_top-left-corner:after,.slds-nubbin_top-left:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;top:-.5rem;margin-left:-.5rem}.slds-nubbin--top-left:after,.slds-nubbin_top-left-corner:after,.slds-nubbin_top-left:after{-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--top-left:after,.slds-nubbin--top-left:before,.slds-nubbin_top-left-corner:after,.slds-nubbin_top-left-corner:before,.slds-nubbin_top-left:after,.slds-nubbin_top-left:before{left:1.5rem;top:-.5rem}.slds-nubbin--top-right:before,.slds-nubbin_top-right-corner:before,.slds-nubbin_top-right:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;top:-.5rem;margin-left:-.5rem}.slds-nubbin--top-right:after,.slds-nubbin_top-right-corner:after,.slds-nubbin_top-right:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;top:-.5rem;margin-left:-.5rem}.slds-nubbin--top-right:after,.slds-nubbin_top-right-corner:after,.slds-nubbin_top-right:after{-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--top-right:after,.slds-nubbin--top-right:before,.slds-nubbin_top-right-corner:after,.slds-nubbin_top-right-corner:before,.slds-nubbin_top-right:after,.slds-nubbin_top-right:before{left:auto;right:1.5rem;top:-.5rem;margin-right:-.5rem}.slds-nubbin--bottom:before,.slds-nubbin_bottom:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;bottom:-.5rem;margin-left:-.5rem}.slds-nubbin--bottom:after,.slds-nubbin_bottom:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;bottom:-.5rem;margin-left:-.5rem}.slds-nubbin--bottom:after,.slds-nubbin_bottom:after{-webkit-box-shadow:2px 2px 4px 0 rgba(0,0,0,.16);box-shadow:2px 2px 4px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--bottom-left:before,.slds-nubbin_bottom-left-corner:before,.slds-nubbin_bottom-left:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;bottom:-.5rem;margin-left:-.5rem}.slds-nubbin--bottom-left:after,.slds-nubbin_bottom-left-corner:after,.slds-nubbin_bottom-left:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;bottom:-.5rem;margin-left:-.5rem}.slds-nubbin--bottom-left:after,.slds-nubbin_bottom-left-corner:after,.slds-nubbin_bottom-left:after{-webkit-box-shadow:2px 2px 4px 0 rgba(0,0,0,.16);box-shadow:2px 2px 4px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--bottom-left:after,.slds-nubbin--bottom-left:before,.slds-nubbin_bottom-left-corner:after,.slds-nubbin_bottom-left-corner:before,.slds-nubbin_bottom-left:after,.slds-nubbin_bottom-left:before{left:1.5rem;top:100%;margin-top:-.5rem}.slds-nubbin--bottom-right:before,.slds-nubbin_bottom-right-corner:before,.slds-nubbin_bottom-right:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;bottom:-.5rem;margin-left:-.5rem}.slds-nubbin--bottom-right:after,.slds-nubbin_bottom-right-corner:after,.slds-nubbin_bottom-right:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;left:50%;bottom:-.5rem;margin-left:-.5rem}.slds-nubbin--bottom-right:after,.slds-nubbin_bottom-right-corner:after,.slds-nubbin_bottom-right:after{-webkit-box-shadow:2px 2px 4px 0 rgba(0,0,0,.16);box-shadow:2px 2px 4px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--bottom-right:after,.slds-nubbin--bottom-right:before,.slds-nubbin_bottom-right-corner:after,.slds-nubbin_bottom-right-corner:before,.slds-nubbin_bottom-right:after,.slds-nubbin_bottom-right:before{left:auto;right:1.5rem;top:100%;margin-top:-.5rem;margin-right:-.5rem}.slds-nubbin--left:before,.slds-nubbin_left:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;left:-.5rem;margin-top:-.5rem}.slds-nubbin--left:after,.slds-nubbin_left:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;left:-.5rem;margin-top:-.5rem}.slds-nubbin--left:after,.slds-nubbin_left:after{-webkit-box-shadow:-1px 1px 2px 0 rgba(0,0,0,.16);box-shadow:-1px 1px 2px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--left-top:before,.slds-nubbin_left-top-corner:before,.slds-nubbin_left-top:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;left:-.5rem;margin-top:-.5rem}.slds-nubbin--left-top:after,.slds-nubbin_left-top-corner:after,.slds-nubbin_left-top:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;left:-.5rem;margin-top:-.5rem}.slds-nubbin--left-top:after,.slds-nubbin_left-top-corner:after,.slds-nubbin_left-top:after{-webkit-box-shadow:-1px 1px 2px 0 rgba(0,0,0,.16);box-shadow:-1px 1px 2px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--left-top:after,.slds-nubbin--left-top:before,.slds-nubbin_left-top-corner:after,.slds-nubbin_left-top-corner:before,.slds-nubbin_left-top:after,.slds-nubbin_left-top:before{top:1.5rem}.slds-nubbin--left-bottom:before,.slds-nubbin_left-bottom-corner:before,.slds-nubbin_left-bottom:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;left:-.5rem;margin-top:-.5rem}.slds-nubbin--left-bottom:after,.slds-nubbin_left-bottom-corner:after,.slds-nubbin_left-bottom:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;left:-.5rem;margin-top:-.5rem}.slds-nubbin--left-bottom:before,.slds-nubbin_left-bottom-corner:before,.slds-nubbin_left-bottom:before{margin-bottom:-1px}.slds-nubbin--left-bottom:after,.slds-nubbin_left-bottom-corner:after,.slds-nubbin_left-bottom:after{-webkit-box-shadow:-1px 2px 3px 0 rgba(0,0,0,.16);box-shadow:-1px 2px 3px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--left-bottom:after,.slds-nubbin--left-bottom:before,.slds-nubbin_left-bottom-corner:after,.slds-nubbin_left-bottom-corner:before,.slds-nubbin_left-bottom:after,.slds-nubbin_left-bottom:before{top:auto;bottom:1rem}.slds-nubbin--right:before,.slds-nubbin_right:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;right:-.5rem;margin-top:-.5rem}.slds-nubbin--right:after,.slds-nubbin_right:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;right:-.5rem;margin-top:-.5rem}.slds-nubbin--right:after,.slds-nubbin_right:after{-webkit-box-shadow:1px -1px 2px 0 rgba(0,0,0,.16);box-shadow:1px -1px 2px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--right-top:before,.slds-nubbin_right-top-corner:before,.slds-nubbin_right-top:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;right:-.5rem;margin-top:-.5rem}.slds-nubbin--right-top:after,.slds-nubbin_right-top-corner:after,.slds-nubbin_right-top:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;right:-.5rem;margin-top:-.5rem}.slds-nubbin--right-top:after,.slds-nubbin_right-top-corner:after,.slds-nubbin_right-top:after{-webkit-box-shadow:1px -1px 2px 0 rgba(0,0,0,.16);box-shadow:1px -1px 2px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--right-top:after,.slds-nubbin--right-top:before,.slds-nubbin_right-top-corner:after,.slds-nubbin_right-top-corner:before,.slds-nubbin_right-top:after,.slds-nubbin_right-top:before{top:1.5rem}.slds-nubbin--right-bottom:before,.slds-nubbin_right-bottom-corner:before,.slds-nubbin_right-bottom:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;right:-.5rem;margin-top:-.5rem}.slds-nubbin--right-bottom:after,.slds-nubbin_right-bottom-corner:after,.slds-nubbin_right-bottom:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:inherit;top:50%;right:-.5rem;margin-top:-.5rem}.slds-nubbin--right-bottom:before,.slds-nubbin_right-bottom-corner:before,.slds-nubbin_right-bottom:before{margin-bottom:-1px}.slds-nubbin--right-bottom:after,.slds-nubbin_right-bottom-corner:after,.slds-nubbin_right-bottom:after{-webkit-box-shadow:2px -1px 3px 0 rgba(0,0,0,.16);box-shadow:2px -1px 3px 0 rgba(0,0,0,.16);z-index:-1}.slds-nubbin--right-bottom:after,.slds-nubbin--right-bottom:before,.slds-nubbin_right-bottom-corner:after,.slds-nubbin_right-bottom-corner:before,.slds-nubbin_right-bottom:after,.slds-nubbin_right-bottom:before{top:auto;bottom:1rem}.slds-nubbin_top-left-corner{border-radius:.125rem .25rem .25rem .25rem}.slds-nubbin_top-left-corner:after,.slds-nubbin_top-left-corner:before{left:.75rem}.slds-nubbin_bottom-left-corner{border-radius:.25rem .25rem .25rem .125rem}.slds-nubbin_bottom-left-corner:after,.slds-nubbin_bottom-left-corner:before{left:.75rem}.slds-nubbin_top-right-corner{border-radius:.25rem .125rem .25rem .25rem}.slds-nubbin_top-right-corner:after,.slds-nubbin_top-right-corner:before{right:.75rem}.slds-nubbin_bottom-right-corner{border-radius:.25rem .25rem .125rem .25rem}.slds-nubbin_bottom-right-corner:after,.slds-nubbin_bottom-right-corner:before{right:.75rem}.slds-nubbin_left-top-corner{border-radius:.125rem .25rem .25rem .25rem}.slds-nubbin_left-top-corner:after,.slds-nubbin_left-top-corner:before{top:.75rem}.slds-nubbin_right-top-corner{border-radius:.25rem .125rem .25rem .25rem}.slds-nubbin_right-top-corner:after,.slds-nubbin_right-top-corner:before{top:.75rem}.slds-nubbin_left-bottom-corner{border-radius:.25rem .25rem .25rem .125rem}.slds-nubbin_left-bottom-corner:after,.slds-nubbin_left-bottom-corner:before{bottom:.25rem}.slds-nubbin_right-bottom-corner{border-radius:.25rem .25rem .125rem .25rem}.slds-nubbin_right-bottom-corner:after,.slds-nubbin_right-bottom-corner:before{bottom:.25rem}.slds-popover--walkthrough,.slds-popover_walkthrough{border-color:var(--slds-g-color-brand-base-10,#001639);color:var(--slds-g-color-neutral-base-100,#fff);background:var(--slds-g-color-brand-base-10,#001639);border-color:var(--slds-g-color-brand-base-10,#001639)}.slds-popover--walkthrough .slds-text-title,.slds-popover--walkthrough .slds-text-title--caps,.slds-popover--walkthrough .slds-text-title_caps,.slds-popover_walkthrough .slds-text-title,.slds-popover_walkthrough .slds-text-title--caps,.slds-popover_walkthrough .slds-text-title_caps{color:var(--slds-g-color-neutral-base-70,#aeaeae)}.slds-popover--walkthrough .slds-icon,.slds-popover_walkthrough .slds-icon{fill:currentColor}.slds-popover--walkthrough a,.slds-popover_walkthrough a{color:currentColor;border:1px solid transparent;border-radius:.25rem}.slds-popover--walkthrough a:focus,.slds-popover--walkthrough a:hover,.slds-popover_walkthrough a:focus,.slds-popover_walkthrough a:hover{text-decoration:none;outline:0}.slds-popover--walkthrough a:focus,.slds-popover_walkthrough a:focus{-webkit-box-shadow:0 0 3px #f3f3f3;box-shadow:0 0 3px #f3f3f3;border:1px solid var(--slds-g-color-neutral-base-100,#f3f3f3)}.slds-popover--walkthrough a:active,.slds-popover_walkthrough a:active{color:rgba(255,255,255,.5)}.slds-popover--walkthrough a[disabled],.slds-popover_walkthrough a[disabled]{color:rgba(255,255,255,.15)}.slds-popover--walkthrough a,.slds-popover_walkthrough a{text-decoration:underline}.slds-popover--walkthrough .slds-popover__header,.slds-popover_walkthrough .slds-popover__header{background-color:var(--slds-g-color-brand-base-20,#032d60);background-image:url(../images/popovers/popover-header.png);background-repeat:no-repeat;background-position:bottom;background-size:contain;border-color:inherit;padding:.75rem 1rem;text-shadow:0 0 4px var(--slds-g-color-brand-base-10,#001639)}.slds-popover--walkthrough .slds-popover__body,.slds-popover--walkthrough .slds-popover__footer,.slds-popover_walkthrough .slds-popover__body,.slds-popover_walkthrough .slds-popover__footer{padding:1rem}.slds-popover--walkthrough .slds-popover__footer,.slds-popover_walkthrough .slds-popover__footer{background-color:transparent;border:0}.slds-popover--walkthrough .slds-text-title,.slds-popover_walkthrough .slds-text-title{color:var(--slds-g-color-neutral-base-100,#c9c9c9)}.slds-popover--walkthrough .slds-input,.slds-popover--walkthrough .slds-select,.slds-popover--walkthrough .slds-textarea,.slds-popover_walkthrough .slds-input,.slds-popover_walkthrough .slds-select,.slds-popover_walkthrough .slds-textarea{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-popover--walkthrough.slds-nubbin--left-top:before,.slds-popover--walkthrough.slds-nubbin--right-top:before,.slds-popover--walkthrough.slds-nubbin--top-left:before,.slds-popover--walkthrough.slds-nubbin--top-right:before,.slds-popover--walkthrough.slds-nubbin--top:before,.slds-popover--walkthrough.slds-nubbin_left-top:before,.slds-popover--walkthrough.slds-nubbin_right-top:before,.slds-popover--walkthrough.slds-nubbin_top-left:before,.slds-popover--walkthrough.slds-nubbin_top-right:before,.slds-popover--walkthrough.slds-nubbin_top:before,.slds-popover_walkthrough.slds-nubbin--left-top:before,.slds-popover_walkthrough.slds-nubbin--right-top:before,.slds-popover_walkthrough.slds-nubbin--top-left:before,.slds-popover_walkthrough.slds-nubbin--top-right:before,.slds-popover_walkthrough.slds-nubbin--top:before,.slds-popover_walkthrough.slds-nubbin_left-top:before,.slds-popover_walkthrough.slds-nubbin_right-top:before,.slds-popover_walkthrough.slds-nubbin_top-left:before,.slds-popover_walkthrough.slds-nubbin_top-right:before,.slds-popover_walkthrough.slds-nubbin_top:before{background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-popover_feature,.slds-popover_walkthrough-alt{border-color:var(--slds-g-color-brand-base-50,#0176d3);background-color:var(--slds-g-color-brand-base-50,#0176d3);background-image:url(../images/popovers/popover-action.png);background-repeat:no-repeat;background-size:100% 2.25rem;background-position:bottom;padding-bottom:1.5rem;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-popover_feature .slds-text-heading_small,.slds-popover_walkthrough-alt .slds-text-heading_small{margin-bottom:.5rem}.slds-popover_feature.slds-nubbin--bottom-left:before,.slds-popover_feature.slds-nubbin--bottom-right:before,.slds-popover_feature.slds-nubbin--bottom:before,.slds-popover_feature.slds-nubbin_bottom-left:before,.slds-popover_feature.slds-nubbin_bottom-right:before,.slds-popover_feature.slds-nubbin_bottom:before,.slds-popover_walkthrough-alt.slds-nubbin--bottom-left:before,.slds-popover_walkthrough-alt.slds-nubbin--bottom-right:before,.slds-popover_walkthrough-alt.slds-nubbin--bottom:before,.slds-popover_walkthrough-alt.slds-nubbin_bottom-left:before,.slds-popover_walkthrough-alt.slds-nubbin_bottom-right:before,.slds-popover_walkthrough-alt.slds-nubbin_bottom:before{background-color:var(--slds-g-color-brand-base-50,#0176d3)}.slds-popover_error .slds-popover__header{background-color:var(--slds-g-color-error-base-30,#ba0517);color:var(--slds-g-color-neutral-base-100,#fff);padding-left:.75rem}.slds-popover_error .slds-popover__footer{background-color:transparent}.slds-popover_error .slds-popover__footer .slds-button{text-decoration:none}.slds-popover_error .slds-popover__footer .slds-button.slds-button_neutral{color:#0176d3}.slds-popover_error.slds-nubbin--left-top:before,.slds-popover_error.slds-nubbin--right-top:before,.slds-popover_error.slds-nubbin--top-left:before,.slds-popover_error.slds-nubbin--top-right:before,.slds-popover_error.slds-nubbin--top:before,.slds-popover_error.slds-nubbin_left-top:before,.slds-popover_error.slds-nubbin_right-top:before,.slds-popover_error.slds-nubbin_top-left:before,.slds-popover_error.slds-nubbin_top-right:before,.slds-popover_error.slds-nubbin_top:before{background-color:var(--slds-g-color-error-base-30,#ba0517)}.slds-popover_error .slds-popover__body{padding-left:2.5rem}.slds-popover_error .slds-popover__header,.slds-popover_warning .slds-popover__header{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.slds-popover_error .slds-popover__body_scrollable,.slds-popover_warning .slds-popover__body_scrollable{max-height:150px;overflow-y:auto;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-popover_error .slds-popover__body_scrollable+.slds-popover__footer,.slds-popover_warning .slds-popover__body_scrollable+.slds-popover__footer{border-top:0}.slds-popover_warning button{color:var(--slds-g-color-neutral-base-30,#514f4d);text-decoration:underline}.slds-popover_warning button:hover{color:var(--slds-g-color-neutral-base-50,#706e6b)}.slds-popover_warning button:focus{color:var(--slds-g-color-neutral-base-30,#514f4d);-webkit-box-shadow:0 0 3px var(--slds-g-color-neutral-base-30,#514f4d);box-shadow:0 0 3px var(--slds-g-color-neutral-base-30,#514f4d);border:1px solid var(--slds-g-color-neutral-base-30,#514f4d)}.slds-popover_warning button:active{color:var(--slds-g-color-neutral-base-50,#706e6b)}.slds-popover_warning .slds-popover__header{background-color:var(--slds-g-color-warning-base-60,#fe9339);color:var(--slds-g-color-neutral-base-10,#2b2826)}.slds-popover_warning .slds-popover__header .slds-icon{fill:currentColor}.slds-popover_warning .slds-popover__close{color:currentColor}.slds-popover_warning.slds-nubbin--left-top:before,.slds-popover_warning.slds-nubbin--right-top:before,.slds-popover_warning.slds-nubbin--top-left:before,.slds-popover_warning.slds-nubbin--top-right:before,.slds-popover_warning.slds-nubbin--top:before,.slds-popover_warning.slds-nubbin_left-top:before,.slds-popover_warning.slds-nubbin_right-top:before,.slds-popover_warning.slds-nubbin_top-left:before,.slds-popover_warning.slds-nubbin_top-right:before,.slds-popover_warning.slds-nubbin_top:before{background-color:var(--slds-g-color-warning-base-60,#fe9339)}.slds-popover_warning .slds-popover__body{padding-left:2.5rem}.slds-popover_warning .slds-popover__footer{background-color:transparent}.slds-popover_warning .slds-popover__footer .slds-button{text-decoration:none}.slds-popover_warning .slds-popover__footer .slds-button.slds-button_neutral{color:#0176d3}.slds-popover_prompt{width:25rem}.slds-popover_prompt .slds-popover__body{padding:1rem}.slds-popover_prompt .slds-popover__footer{border-top:inherit}.slds-popover_prompt__heading{font-size:1rem;line-height:1.25;font-weight:700}.slds-popover_prompt__action-link{margin-right:1rem}.slds-popover_prompt_bottom,.slds-popover_prompt_bottom-left,.slds-popover_prompt_bottom-right,.slds-popover_prompt_top,.slds-popover_prompt_top-left,.slds-popover_prompt_top-right{position:absolute}.slds-popover_prompt_top,.slds-popover_prompt_top-left,.slds-popover_prompt_top-right{top:.5rem}.slds-popover_prompt_bottom,.slds-popover_prompt_bottom-left,.slds-popover_prompt_bottom-right{bottom:.5rem}.slds-popover_prompt_bottom,.slds-popover_prompt_top{left:50%;margin-left:-12.5rem}.slds-popover_prompt_bottom-right,.slds-popover_prompt_top-right{right:.5rem}.slds-popover_prompt_bottom-left,.slds-popover_prompt_top-left{left:.5rem}.slds-tooltip{position:relative;border-radius:.25rem;width:20rem;min-height:2rem;z-index:var(--slds-c-popover-position-zindex,6000);background-color:var(--slds-g-color-brand-base-10,#001639);display:inline-block}.slds-tooltip__body{padding:.5rem .75rem;font-size:.75rem;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-popover--tooltip,.slds-popover_tooltip{width:auto;max-width:var(--slds-c-tooltip-sizing-max-width,var(--sds-c-tooltip-sizing-max-width,20rem));background-color:var(--slds-c-tooltip-color-background,var(--sds-c-tooltip-color-background,var(--slds-g-color-brand-base-20,#032d60)));border:0}.slds-popover--tooltip .slds-popover__body,.slds-popover_tooltip .slds-popover__body{font-size:var(--slds-c-tooltip-font-size,var(--sds-c-tooltip-font-size,.75rem));color:var(--slds-c-tooltip-text-color,var(--sds-c-tooltip-text-color,var(--slds-g-color-neutral-base-100,#fff)))}.slds-rise-from-ground{visibility:visible;opacity:1;-webkit-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .1s linear,visibility .1s linear,-webkit-transform .1s linear;transition:opacity .1s linear,visibility .1s linear,-webkit-transform .1s linear;transition:opacity .1s linear,visibility .1s linear,transform .1s linear;transition:opacity .1s linear,visibility .1s linear,transform .1s linear,-webkit-transform .1s linear;will-change:transform}.slds-fall-into-ground{visibility:hidden;opacity:0;-webkit-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .1s linear,visibility .1s linear,-webkit-transform .1s linear;transition:opacity .1s linear,visibility .1s linear,-webkit-transform .1s linear;transition:opacity .1s linear,visibility .1s linear,transform .1s linear;transition:opacity .1s linear,visibility .1s linear,transform .1s linear,-webkit-transform .1s linear;will-change:transform}.slds-slide-from-bottom-to-top{-webkit-transform:translateY(10%);transform:translateY(10%);will-change:transform}.slds-slide-from-top-to-bottom{-webkit-transform:translateY(-10%);transform:translateY(-10%);will-change:transform}.slds-slide-from-right-to-left{-webkit-transform:translateX(5%);transform:translateX(5%);will-change:transform}.slds-slide-from-left-to-right{-webkit-transform:translateX(-5%);transform:translateX(-5%);will-change:transform}.slds-dropdown-trigger .slds-dropdown{visibility:hidden;opacity:0;-webkit-transition:opacity .1s linear,visibility .1s linear;transition:opacity .1s linear,visibility .1s linear}.slds-dropdown-trigger:focus,.slds-dropdown-trigger:hover{outline:0}.slds-dropdown-trigger:focus .slds-dropdown,.slds-dropdown-trigger:hover .slds-dropdown{visibility:visible;opacity:1;-webkit-transition:opacity .1s linear,visibility .1s linear;transition:opacity .1s linear,visibility .1s linear}.slds-dropdown--nubbin-top,.slds-dropdown_nubbin-top{margin-top:.5rem}.slds-dropdown--nubbin-top:before,.slds-dropdown_nubbin-top:before{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:var(--slds-g-color-neutral-base-100,#fff);left:50%;top:-.5rem;margin-left:-.5rem}.slds-dropdown--nubbin-top:after,.slds-dropdown_nubbin-top:after{width:1rem;height:1rem;position:absolute;-webkit-transform:rotate(45deg);transform:rotate(45deg);content:"";background-color:var(--slds-g-color-neutral-base-100,#fff);left:50%;top:-.5rem;margin-left:-.5rem}.slds-dropdown--nubbin-top:before,.slds-dropdown_nubbin-top:before{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-dropdown--nubbin-top:after,.slds-dropdown_nubbin-top:after{background:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);box-shadow:-1px -1px 0 0 rgba(0,0,0,.16);z-index:-1}.slds-dropdown--nubbin-top.slds-dropdown--left,.slds-dropdown--nubbin-top.slds-dropdown_left,.slds-dropdown_nubbin-top.slds-dropdown--left,.slds-dropdown_nubbin-top.slds-dropdown_left{left:-1rem}.slds-dropdown--nubbin-top.slds-dropdown--left:after,.slds-dropdown--nubbin-top.slds-dropdown--left:before,.slds-dropdown--nubbin-top.slds-dropdown_left:after,.slds-dropdown--nubbin-top.slds-dropdown_left:before,.slds-dropdown_nubbin-top.slds-dropdown--left:after,.slds-dropdown_nubbin-top.slds-dropdown--left:before,.slds-dropdown_nubbin-top.slds-dropdown_left:after,.slds-dropdown_nubbin-top.slds-dropdown_left:before{left:1.5rem;margin-left:0}.slds-dropdown--nubbin-top.slds-dropdown--right,.slds-dropdown--nubbin-top.slds-dropdown_right,.slds-dropdown_nubbin-top.slds-dropdown--right,.slds-dropdown_nubbin-top.slds-dropdown_right{right:-1rem}.slds-dropdown--nubbin-top.slds-dropdown--right:after,.slds-dropdown--nubbin-top.slds-dropdown--right:before,.slds-dropdown--nubbin-top.slds-dropdown_right:after,.slds-dropdown--nubbin-top.slds-dropdown_right:before,.slds-dropdown_nubbin-top.slds-dropdown--right:after,.slds-dropdown_nubbin-top.slds-dropdown--right:before,.slds-dropdown_nubbin-top.slds-dropdown_right:after,.slds-dropdown_nubbin-top.slds-dropdown_right:before{left:auto;right:1.5rem;margin-left:0}.slds-dropdown__item .slds-has-icon{position:relative}.slds-dropdown__item .slds-has-icon .slds-icon{width:1rem;height:1rem;position:absolute;top:50%;margin-top:-.5rem;fill:var(--slds-g-color-neutral-base-50,#747474)}.slds-dropdown__item .slds-has-icon .slds-icon--left,.slds-dropdown__item .slds-has-icon .slds-icon_left{left:.75rem}.slds-dropdown__item .slds-has-icon .slds-icon--right,.slds-dropdown__item .slds-has-icon .slds-icon_right{right:.75rem}.slds-dropdown__item .slds-has-icon--left>a,.slds-dropdown__item .slds-has-icon--left>span,.slds-dropdown__item .slds-has-icon_left>a,.slds-dropdown__item .slds-has-icon_left>span{padding-left:2rem}.slds-dropdown__item .slds-has-icon--right>a,.slds-dropdown__item .slds-has-icon--right>span,.slds-dropdown__item .slds-has-icon_right>a,.slds-dropdown__item .slds-has-icon_right>span{padding-right:2rem}.slds-dropdown__item .slds-has-icon--left-right>a,.slds-dropdown__item .slds-has-icon--left-right>span,.slds-dropdown__item .slds-has-icon_left-right>a,.slds-dropdown__item .slds-has-icon_left-right>span{padding-left:2rem;padding-right:2rem}.slds-dropdown-trigger{position:relative;display:inline-block}.slds-dropdown-trigger .slds-dropdown{top:100%}.slds-dropdown-trigger .slds-dropdown--bottom,.slds-dropdown-trigger .slds-dropdown_bottom{top:auto}.slds-dropdown-trigger>[class*=slds-button--icon]~.slds-dropdown--left[class*=slds-nubbin],.slds-dropdown-trigger>[class*=slds-button--icon]~.slds-dropdown_left[class*=slds-nubbin],.slds-dropdown-trigger>[class*=slds-button_icon]~.slds-dropdown--left[class*=slds-nubbin],.slds-dropdown-trigger>[class*=slds-button_icon]~.slds-dropdown_left[class*=slds-nubbin]{left:-.5rem}.slds-dropdown-trigger>[class*=slds-button--icon]~.slds-dropdown--right[class*=slds-nubbin],.slds-dropdown-trigger>[class*=slds-button--icon]~.slds-dropdown_right[class*=slds-nubbin],.slds-dropdown-trigger>[class*=slds-button_icon]~.slds-dropdown--right[class*=slds-nubbin],.slds-dropdown-trigger>[class*=slds-button_icon]~.slds-dropdown_right[class*=slds-nubbin]{right:-.5rem}.slds-dropdown-trigger--hover .slds-dropdown,.slds-dropdown-trigger_hover .slds-dropdown{visibility:hidden;opacity:0;-webkit-transition:opacity .1s linear,visibility .1s linear;transition:opacity .1s linear,visibility .1s linear}.slds-dropdown-trigger--hover:focus,.slds-dropdown-trigger--hover:hover,.slds-dropdown-trigger_hover:focus,.slds-dropdown-trigger_hover:hover{outline:0}.slds-dropdown-trigger--hover:focus .slds-dropdown,.slds-dropdown-trigger--hover:hover .slds-dropdown,.slds-dropdown-trigger_hover:focus .slds-dropdown,.slds-dropdown-trigger_hover:hover .slds-dropdown{visibility:visible;opacity:1;-webkit-transition:opacity .1s linear,visibility .1s linear;transition:opacity .1s linear,visibility .1s linear}.slds-dropdown-trigger--click .slds-dropdown,.slds-dropdown-trigger--click:hover .slds-dropdown,.slds-dropdown-trigger_click .slds-dropdown,.slds-dropdown-trigger_click:hover .slds-dropdown{display:none}.slds-dropdown-trigger--click.slds-is-open .slds-dropdown,.slds-dropdown-trigger_click.slds-is-open .slds-dropdown{display:block;visibility:visible;opacity:1}.slds-dropdown{position:absolute;z-index:7000;left:50%;float:left;min-width:6rem;max-width:20rem;margin-top:.125rem;margin-bottom:.125rem;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;padding:.25rem 0;font-size:.75rem;background:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.16);box-shadow:0 2px 3px 0 rgba(0,0,0,.16);-webkit-transform:translateX(-50%);transform:translateX(-50%);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-dropdown mark{font-weight:700;background-color:transparent;color:inherit}.slds-dropdown[class*=slds-nubbin--top],.slds-dropdown[class*=slds-nubbin_top]{margin-top:.5rem}.slds-dropdown[class*=slds-nubbin--bottom],.slds-dropdown[class*=slds-nubbin_bottom]{margin-bottom:.5rem}.slds-dropdown--inverse,.slds-dropdown_inverse{background:var(--slds-g-color-brand-base-10,#001639);border-color:var(--slds-g-color-brand-base-10,#001639);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-dropdown--inverse .slds-dropdown__item>a,.slds-dropdown_inverse .slds-dropdown__item>a{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-dropdown--inverse .slds-dropdown__item>a:focus,.slds-dropdown--inverse .slds-dropdown__item>a:hover,.slds-dropdown_inverse .slds-dropdown__item>a:focus,.slds-dropdown_inverse .slds-dropdown__item>a:hover{color:rgba(255,255,255,.75);background-color:transparent}.slds-dropdown--inverse .slds-dropdown__item>a:active,.slds-dropdown_inverse .slds-dropdown__item>a:active{color:rgba(255,255,255,.5);background-color:transparent}.slds-dropdown--inverse .slds-dropdown__item>a[aria-disabled=true],.slds-dropdown_inverse .slds-dropdown__item>a[aria-disabled=true]{color:rgba(255,255,255,.15);cursor:default}.slds-dropdown--inverse .slds-dropdown__item>a[aria-disabled=true]:hover,.slds-dropdown_inverse .slds-dropdown__item>a[aria-disabled=true]:hover{background-color:transparent}.slds-dropdown__header{font-size:.875rem;font-weight:700;padding:.5rem .75rem}.slds-dropdown__item{line-height:1.5;font-weight:400}.slds-dropdown__item>a{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:var(--slds-g-color-neutral-base-10,#181818);white-space:nowrap;cursor:pointer}.slds-dropdown__item>a:focus,.slds-dropdown__item>a:hover{outline:0;text-decoration:none;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-dropdown__item>a:active{text-decoration:none;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-dropdown__item>a[aria-disabled=true]{color:var(--slds-g-color-neutral-base-80,#c9c9c9);cursor:default}.slds-dropdown__item>a[aria-disabled=true]:hover{background-color:transparent}.slds-dropdown__item>a[aria-disabled=true] .slds-icon{fill:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-dropdown__item>a.slds-has-error{background:var(--slds-g-color-error-base-40,#ba0517)}.slds-dropdown__item>a.slds-has-success{background:var(--slds-g-color-success-base-50,#2e844a)}.slds-dropdown__item>a.slds-has-error,.slds-dropdown__item>a.slds-has-success{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-dropdown__item>a.slds-has-warning{background:var(--slds-g-color-warning-base-60,#fe9339)}.slds-dropdown__item>a.slds-has-warning .slds-indicator_unread{background-color:currentColor}.slds-dropdown__item>a.slds-has-warning .slds-indicator_unsaved{color:currentColor}.slds-dropdown__item>a.slds-has-error:focus,.slds-dropdown__item>a.slds-has-error:hover,.slds-dropdown__item>a.slds-has-success:focus,.slds-dropdown__item>a.slds-has-success:hover,.slds-dropdown__item>a.slds-has-warning:focus,.slds-dropdown__item>a.slds-has-warning:hover{text-decoration:underline}.slds-dropdown__item .slds-icon--selected,.slds-dropdown__item .slds-icon_selected{opacity:0;-webkit-transition:opacity 50ms ease;transition:opacity 50ms ease}.slds-dropdown__item.slds-is-selected .slds-icon--selected,.slds-dropdown__item.slds-is-selected .slds-icon_selected{opacity:1}.slds-dropdown__item.slds-has-notification .slds-indicator_unsaved{top:-.375rem}.slds-dropdown--left,.slds-dropdown_left{left:0;right:auto;-webkit-transform:translateX(0);transform:translateX(0)}.slds-dropdown--right,.slds-dropdown_right{left:auto;right:0;-webkit-transform:translateX(0);transform:translateX(0)}.slds-dropdown--bottom,.slds-dropdown_bottom{bottom:100%}.slds-dropdown--xx-small,.slds-dropdown_xx-small{min-width:6rem}.slds-dropdown--x-small,.slds-dropdown_x-small{min-width:12rem}.slds-dropdown--small,.slds-dropdown_small{min-width:15rem}.slds-dropdown--medium,.slds-dropdown_medium{min-width:20rem}.slds-dropdown--large,.slds-dropdown_large{min-width:25rem;max-width:512px}.slds-dropdown--fluid,.slds-dropdown_fluid{min-width:12rem;max-width:100%;width:100%}.slds-dropdown--length-5,.slds-dropdown_length-5{-webkit-overflow-scrolling:touch;max-height:calc(((1rem * 1.5) + 1rem) * 5);overflow-y:auto}.slds-dropdown--length-7,.slds-dropdown_length-7{-webkit-overflow-scrolling:touch;max-height:calc(((1rem * 1.5) + 1rem) * 7);overflow-y:auto}.slds-dropdown--length-10,.slds-dropdown_length-10{-webkit-overflow-scrolling:touch;max-height:calc(((1rem * 1.5) + 1rem) * 10);overflow-y:auto}.slds-dropdown--length-with-icon-5,.slds-dropdown_length-with-icon-5{-webkit-overflow-scrolling:touch;max-height:calc((1.5rem + 1rem) * 5);overflow-y:auto}.slds-dropdown--length-with-icon-7,.slds-dropdown_length-with-icon-7{-webkit-overflow-scrolling:touch;max-height:calc((1.5rem + 1rem) * 7);overflow-y:auto}.slds-dropdown--length-with-icon-10,.slds-dropdown_length-with-icon-10{-webkit-overflow-scrolling:touch;max-height:calc((1.5rem + 1rem) * 10);overflow-y:auto}[dir=rtl] .slds-dropdown--center,[dir=rtl] .slds-dropdown_center{left:auto;right:auto;-webkit-transform:translateX(calc(50% - (.875rem / 2)));transform:translateX(calc(50% - (.875rem / 2)))}.slds-dropdown--actions a,.slds-dropdown_actions a{color:#0176d3}.slds-has-submenu{position:relative}.slds-has-submenu .slds-dropdown_submenu{top:0;-webkit-transform:none;transform:none}.slds-has-submenu .slds-dropdown_submenu-left{left:auto;right:100%;margin-right:.25rem}.slds-has-submenu .slds-dropdown_submenu-right{left:100%;margin-left:.25rem}.slds-has-submenu .slds-dropdown_submenu-bottom{top:auto;bottom:0;margin-bottom:-.25rem}.slds-has-submenu.slds-dropdown__item .slds-dropdown_submenu{display:none}.slds-has-submenu [role=menuitem][aria-expanded=true]+.slds-dropdown_submenu{display:block}.slds-picklist{position:relative}.slds-picklist .slds-dropdown{width:15rem}.slds-picklist li .slds-icon--selected,.slds-picklist li .slds-icon_selected{opacity:0;-webkit-transition:opacity 50ms ease;transition:opacity 50ms ease}.slds-picklist li.slds-is-selected .slds-icon--selected,.slds-picklist li.slds-is-selected .slds-icon_selected{fill:var(--slds-g-color-brand-base-50,#0176d3);opacity:1}.slds-picklist input[readonly]{padding-left:.75rem;border-color:var(--slds-g-color-border-base-4,#c9c9c9);background-color:var(--slds-g-color-neutral-base-100,#fff);font-size:inherit;font-weight:400}.slds-picklist input[readonly].slds-has-focus,.slds-picklist input[readonly]:focus{border-color:var(--slds-g-color-brand-base-60,#1b96ff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-picklist input[readonly][disabled]{background-color:var(--slds-g-color-neutral-base-80,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9)}.slds-picklist--fluid .slds-dropdown,.slds-picklist--fluid .slds-lookup,.slds-picklist--fluid .slds-picklist__input,.slds-picklist--fluid .slds-picklist__label,.slds-picklist_fluid .slds-dropdown,.slds-picklist_fluid .slds-lookup,.slds-picklist_fluid .slds-picklist__input,.slds-picklist_fluid .slds-picklist__label{width:auto;min-width:0;max-width:15rem}.slds-picklist__input{width:15rem}.slds-picklist__input .slds-button{line-height:0}.slds-picklist__label{padding-right:2rem;width:15rem;color:var(--slds-g-color-neutral-base-10,#181818);text-align:left}.slds-picklist__label .slds-icon{width:.75rem;height:.75rem;position:absolute;right:1rem;top:50%;margin-top:-.375rem;fill:var(--slds-g-color-neutral-base-50,#747474)}.slds-picklist__label .slds-truncate{display:block}.slds-combobox_container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative}.slds-combobox_container.slds-is-open .slds-dropdown{display:block}.slds-combobox_container.slds-has-selection .slds-combobox__input-value,.slds-combobox_container.slds-has-selection .slds-combobox__input-value:focus{-webkit-box-shadow:0 0 0 2px var(--slds-g-color-neutral-base-100,#fff) inset,0 0 0 3px var(--slds-g-color-border-base-1,#e5e5e5) inset;box-shadow:0 0 0 2px var(--slds-g-color-neutral-base-100,#fff) inset,0 0 0 3px var(--slds-g-color-border-base-1,#e5e5e5) inset}.slds-combobox_container.slds-has-icon-only .slds-combobox__input,.slds-combobox_container.slds-has-icon-only .slds-combobox__input.slds-has-focus,.slds-combobox_container.slds-has-icon-only .slds-combobox__input:focus{width:0;pointer-events:auto}.slds-combobox_container.slds-has-icon-only .slds-input__icon{z-index:2;pointer-events:none}.slds-combobox{position:static;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-combobox__form-element{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}[role=combobox] input[readonly],input[readonly][role=combobox]{padding-left:.75rem;border-color:var(--slds-g-color-border-base-4,#c9c9c9);background-color:var(--slds-g-color-neutral-base-100,#fff);font-size:inherit;font-weight:400}[role=combobox] input[readonly].slds-has-focus,[role=combobox] input[readonly]:focus,input[readonly][role=combobox].slds-has-focus,input[readonly][role=combobox]:focus{border-color:var(--slds-g-color-brand-base-60,#1b96ff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}[role=combobox] input[readonly][disabled],input[readonly][role=combobox][disabled]{background-color:var(--slds-g-color-neutral-base-80,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9)}.slds-listbox--inline,.slds-listbox_inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:.125rem;margin-right:.125rem}.slds-listbox--inline li,.slds-listbox_inline li{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-listbox--inline li+li,.slds-listbox_inline li+li{padding-left:.125rem}.slds-listbox--horizontal,.slds-listbox_horizontal{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-listbox--horizontal li,.slds-listbox_horizontal li{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-listbox--horizontal li+li,.slds-listbox_horizontal li+li{padding-left:.125rem}.slds-listbox__option:hover{cursor:pointer}.slds-listbox__option:focus{outline:0}.slds-listbox__option .slds-truncate{display:inline-block;vertical-align:middle}.slds-listbox__option[aria-disabled=true]{color:var(--slds-g-color-neutral-base-50,#c9c9c9)}.slds-listbox__option-header{font-size:.875rem;font-weight:700}.slds-listbox__option-icon{width:1.5rem;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--slds-g-color-neutral-base-50,#747474)}.slds-listbox__option[aria-disabled=true] .slds-listbox__option-icon{color:currentColor}.slds-listbox--vertical .slds-listbox__option.slds-has-focus,.slds-listbox--vertical .slds-listbox__option:focus,.slds-listbox--vertical .slds-listbox__option:hover,.slds-listbox_vertical .slds-listbox__option.slds-has-focus,.slds-listbox_vertical .slds-listbox__option:focus,.slds-listbox_vertical .slds-listbox__option:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);text-decoration:none}.slds-listbox--vertical .slds-listbox__option[aria-disabled=true],.slds-listbox--vertical .slds-listbox__option[role=presentation]:hover,.slds-listbox_vertical .slds-listbox__option[aria-disabled=true],.slds-listbox_vertical .slds-listbox__option[role=presentation]:hover{background-color:transparent;cursor:default}.slds-listbox--vertical .slds-listbox__option--entity,.slds-listbox--vertical .slds-listbox__option_entity,.slds-listbox_vertical .slds-listbox__option--entity,.slds-listbox_vertical .slds-listbox__option_entity{padding:.25rem .75rem}.slds-listbox--vertical .slds-listbox__option--entity .slds-media__figure,.slds-listbox--vertical .slds-listbox__option_entity .slds-media__figure,.slds-listbox_vertical .slds-listbox__option--entity .slds-media__figure,.slds-listbox_vertical .slds-listbox__option_entity .slds-media__figure{margin-right:.5rem}.slds-listbox--vertical .slds-listbox__option--plain,.slds-listbox--vertical .slds-listbox__option_plain,.slds-listbox_vertical .slds-listbox__option--plain,.slds-listbox_vertical .slds-listbox__option_plain{padding:.5rem .75rem}.slds-listbox--vertical .slds-listbox__option_term,.slds-listbox_vertical .slds-listbox__option_term{padding:.5rem .75rem}.slds-listbox--vertical .slds-listbox__option--has-meta .slds-media__figure,.slds-listbox--vertical .slds-listbox__option_has-meta .slds-media__figure,.slds-listbox_vertical .slds-listbox__option--has-meta .slds-media__figure,.slds-listbox_vertical .slds-listbox__option_has-meta .slds-media__figure{margin-top:.25rem}[class*=slds-input-has-icon--left] .slds-combobox__input.slds-combobox__input-value,[class*=slds-input-has-icon--left] .slds-combobox__input[value],[class*=slds-input-has-icon_left] .slds-combobox__input.slds-combobox__input-value,[class*=slds-input-has-icon_left] .slds-combobox__input[value]{padding-left:2.25rem}.slds-input_faux:not(.slds-combobox__input-value){color:var(--slds-g-color-neutral-base-50,#747474)}.slds-combobox__input-entity-icon{width:1.25rem;height:1.25rem;position:absolute;top:50%;left:calc(.25rem + 1px);-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:2}.slds-combobox__input-entity-icon .slds-icon{width:1.25rem;height:1.25rem}.slds-combobox_container__icon{color:var(--slds-g-color-neutral-base-50,#aeaeae)}.slds-listbox__icon-selected{opacity:0;fill:#0176d3}.slds-listbox__option.slds-is-selected .slds-listbox__icon-selected{opacity:1}.slds-listbox__option.slds-is-selected .slds-listbox__option-icon{color:#0176d3}.slds-listbox__option-text--entity,.slds-listbox__option-text_entity{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-bottom:.125rem}.slds-listbox__option-meta{display:block;margin-top:-.25rem;color:var(--slds-g-color-neutral-base-30,#444)}.slds-listbox__option[aria-disabled=true] .slds-listbox__option-meta{color:currentColor}.slds-listbox--object-switcher,.slds-listbox_object-switcher{-ms-flex-negative:0;flex-shrink:0;padding:.125rem}.slds-combobox_object-switcher{-ms-flex-negative:0;flex-shrink:0}.slds-combobox_object-switcher .slds-combobox__input{width:7.5rem;-webkit-transition:width 80ms linear;transition:width 80ms linear;font-size:.75rem;color:var(--slds-g-color-neutral-base-50,#747474)}.slds-combobox_object-switcher .slds-combobox__input.slds-has-focus,.slds-combobox_object-switcher .slds-combobox__input:focus{width:10rem}.slds-combobox__input.slds-has-focus,.slds-combobox__input:focus{border-color:var(--slds-g-color-brand-base-60,#1b96ff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-combobox-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.slds-combobox-group .slds-combobox_container{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-combobox-group .slds-combobox__input,.slds-combobox-group .slds-combobox_object-switcher__button{border-radius:0;margin-left:-1px;margin-right:-1px;position:relative}.slds-combobox-group .slds-combobox__input.slds-has-focus,.slds-combobox-group .slds-combobox__input:focus,.slds-combobox-group .slds-combobox_object-switcher__button.slds-has-focus,.slds-combobox-group .slds-combobox_object-switcher__button:focus{z-index:1}.slds-combobox-group.slds-has-selection .slds-combobox-addon_start .slds-combobox__input{border-bottom-left-radius:0}.slds-combobox-group.slds-has-selection .slds-combobox-addon_end .slds-combobox__input{border-bottom-right-radius:0}.slds-combobox-group.slds-has-selection~.slds-listbox_selection-group{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;background:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-top:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;left:-1px}.slds-combobox-group .slds-listbox_horizontal li+li{padding:.125rem}.slds-listbox_selection-group{position:relative;padding:0;padding-right:3.75rem;height:1.875rem;overflow:hidden}.slds-listbox_selection-group.slds-is-expanded{height:auto;padding:0}.slds-listbox_selection-group .slds-listbox{padding:0 0 .125rem}.slds-listbox_selection-group .slds-listbox-item{padding:.125rem .125rem 0}.slds-listbox_selection-group .slds-listbox-toggle{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:.5rem}.slds-listbox_selection-group .slds-listbox-toggle .slds-button{line-height:1}.slds-combobox-addon_start .slds-combobox__input{border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.slds-combobox-addon_end .slds-combobox__input{border-top-right-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:0;border-bottom-left-radius:0}.slds-has-inline-listbox,.slds-has-object-switcher{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem}.slds-has-inline-listbox .slds-combobox,.slds-has-object-switcher .slds-combobox{-ms-flex-preferred-size:50%;flex-basis:50%;-ms-flex-negative:0;flex-shrink:0}.slds-has-inline-listbox .slds-combobox__input,.slds-has-object-switcher .slds-combobox__input{min-height:100%;line-height:calc(1.875rem - 2px);border:0;padding-top:.125rem;padding-bottom:.125rem}.slds-has-inline-listbox .slds-combobox__input:active,.slds-has-inline-listbox .slds-combobox__input:focus,.slds-has-object-switcher .slds-combobox__input:active,.slds-has-object-switcher .slds-combobox__input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.slds-has-inline-listbox .slds-combobox_container__icon~.slds-listbox--inline,.slds-has-inline-listbox .slds-combobox_container__icon~.slds-listbox_inline,.slds-has-inline-listbox .slds-listbox--object-switcher~.slds-listbox--inline,.slds-has-inline-listbox .slds-listbox_object-switcher~.slds-listbox_inline,.slds-has-object-switcher .slds-combobox_container__icon~.slds-listbox--inline,.slds-has-object-switcher .slds-combobox_container__icon~.slds-listbox_inline,.slds-has-object-switcher .slds-listbox--object-switcher~.slds-listbox--inline,.slds-has-object-switcher .slds-listbox_object-switcher~.slds-listbox_inline{margin-left:.5rem}.slds-has-inline-listbox.slds-has-icon_left,.slds-has-object-switcher.slds-has-icon_left{padding-left:2.25rem}.slds-has-inline-listbox.slds-has-icon_left .slds-combobox_container__icon,.slds-has-object-switcher.slds-has-icon_left .slds-combobox_container__icon{width:1rem;height:1rem;position:absolute;left:1.125rem;top:50%;margin-top:-.5rem}.slds-has-inline-listbox [role=listbox]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:0 .125rem}.slds-has-inline-listbox .slds-combobox__input-value{-webkit-box-shadow:0 0 0 2px var(--slds-g-color-neutral-base-100,#fff) inset,0 0 0 3px var(--slds-g-color-border-base-1,#e5e5e5) inset;box-shadow:0 0 0 2px var(--slds-g-color-neutral-base-100,#fff) inset,0 0 0 3px var(--slds-g-color-border-base-1,#e5e5e5) inset}.slds-picklist--draggable,.slds-picklist_draggable{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-picklist--draggable .slds-button,.slds-picklist_draggable .slds-button{margin:.25rem}.slds-picklist--draggable .slds-button:first-of-type,.slds-picklist_draggable .slds-button:first-of-type{margin-top:1.5rem}.slds-picklist__item{position:relative;line-height:1.5}.slds-picklist__item>a,.slds-picklist__item>span{display:block;padding:.5rem .75rem}.slds-picklist__item>a:hover,.slds-picklist__item>span:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:pointer}.slds-picklist__item>a:active,.slds-picklist__item>span:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-picklist__item[aria-selected=true]{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-dueling-list{display:-webkit-box;display:-ms-flexbox;display:flex;clear:left}.slds-dueling-list__column{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.slds-dueling-list__column .slds-button{margin:.25rem}.slds-dueling-list__column .slds-button:first-of-type{margin-top:1.5rem}.slds-dueling-list__column_responsive{-webkit-box-flex:1;-ms-flex:1 1 15rem;flex:1 1 15rem;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden;min-width:6rem}.slds-dueling-list__column_responsive .slds-dueling-list__options{width:auto;max-width:100%}.slds-dueling-list__options,.slds-picklist__options{border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-radius:.25rem;padding:.25rem 0;width:15rem;height:15rem;background-color:var(--slds-g-color-neutral-base-100,#fff);overflow:auto}.slds-dueling-list__options [aria-selected=true],.slds-picklist__options [aria-selected=true]{background-color:#0176d3;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-dueling-list__options [aria-selected=true]:focus,.slds-dueling-list__options [aria-selected=true]:hover,.slds-picklist__options [aria-selected=true]:focus,.slds-picklist__options [aria-selected=true]:hover{background:#014486;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-dueling-list__options .slds-is-grabbed,.slds-picklist__options .slds-is-grabbed{-webkit-transform:rotate(3deg);transform:rotate(3deg)}.slds-dueling-list__options.slds-is-disabled,.slds-picklist__options.slds-is-disabled{background-color:var(--slds-g-color-neutral-base-80,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#c9c9c9);color:var(--slds-g-color-neutral-base-50,#444)}.slds-dueling-list__options.slds-is-disabled:hover,.slds-picklist__options.slds-is-disabled:hover{cursor:not-allowed}.slds-dueling-list__options.slds-is-disabled .slds-listbox__option:hover,.slds-picklist__options.slds-is-disabled .slds-listbox__option:hover{cursor:not-allowed;background-color:transparent}.slds-dueling-list__options.slds-is-disabled .slds-listbox__option:focus,.slds-picklist__options.slds-is-disabled .slds-listbox__option:focus{background-color:transparent}.slds-disabled-text{color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-datepicker td.slds-is-today>.slds-day,.slds-datepicker td:focus:not(.slds-disabled-text)>.slds-day,.slds-datepicker td:hover:not(.slds-disabled-text)>.slds-day{cursor:pointer}.slds-datepicker{padding:0;font-size:.75rem}.slds-datepicker tbody>tr>td,.slds-datepicker thead>tr>th{text-align:center}.slds-datepicker thead>tr>th{padding:.5rem;font-weight:400;color:var(--slds-g-color-neutral-base-30,#444)}.slds-datepicker tbody>tr>td{padding:.25rem;font-size:.75rem}.slds-datepicker tbody>tr>td>.slds-day{width:2rem;height:2rem;display:block;position:relative;min-width:2rem;line-height:2rem;border-radius:50%;margin:auto}.slds-datepicker tbody>tr>td.slds-is-today>.slds-day,.slds-datepicker tbody>tr>td:focus>.slds-day,.slds-datepicker tbody>tr>td:hover>.slds-day{cursor:pointer}.slds-datepicker tbody>tr>td.slds-is-today>.slds-day{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-datepicker tbody>tr>td:focus{outline:0}.slds-datepicker tbody>tr>td:focus>.slds-day{-webkit-box-shadow:#0176d3 0 0 0 1px inset;box-shadow:#0176d3 0 0 0 1px inset}.slds-datepicker tbody>tr>td:hover>.slds-day{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-datepicker tbody>tr>td.slds-is-selected>.slds-day{background:#0176d3;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-datepicker tbody>tr>td.slds-is-selected:focus>.slds-day{background:#014486;-webkit-box-shadow:#014486 0 0 3px;box-shadow:#014486 0 0 3px;color:var(--slds-g-color-neutral-base-100,#fff)}.slds-datepicker__filter{padding:.25rem}.slds-datepicker__filter--month,.slds-datepicker__filter_month{padding:0 .25rem 0 0}.slds-datepicker__month{font-size:.75rem}.slds-has-error .slds-datepicker__filter .slds-select{border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);-webkit-box-shadow:none;box-shadow:none}.slds-day_adjacent-month{color:var(--slds-g-color-neutral-base-50,#747474)}.slds-table .slds-datepicker .slds-datepicker__month tbody>tr:hover>td{background-color:unset}.slds-datepicker .slds-has-multi-selection .slds-is-selected-multi:last-child>.slds-day:after{left:auto;right:0;-webkit-transform:translateX(.25rem);transform:translateX(.25rem)}.slds-datepicker .slds-has-multi-row-selection .slds-is-selected-multi:first-child>.slds-day:before,.slds-datepicker .slds-has-multi-row-selection .slds-is-selected-multi:last-child>.slds-day:after{content:"";position:absolute;background:#0176d3;top:0;left:-50%;height:100%;width:2.5rem;-webkit-transform:translateX(-.5rem);transform:translateX(-.5rem);z-index:-1}.slds-datepicker .slds-has-multi-row-selection .slds-is-selected-multi:first-child>.slds-day:before{left:0;-webkit-transform:translateX(-.25rem);transform:translateX(-.25rem)}.slds-datepicker .slds-has-multi-row-selection .slds-is-selected-multi:last-child>.slds-day:after{left:auto;right:0;-webkit-transform:translateX(.25rem);transform:translateX(.25rem)}.slds-datepicker td.slds-is-selected-multi>.slds-day{overflow:visible}.slds-datepicker td.slds-is-selected-multi.slds-is-today>.slds-day{-webkit-box-shadow:var(--slds-g-color-neutral-base-100,#fff) 0 0 0 1px inset;box-shadow:var(--slds-g-color-neutral-base-100,#fff) 0 0 0 1px inset}.slds-datepicker td.slds-is-selected-multi+.slds-is-selected-multi>.slds-day:before{content:"";position:absolute;background:#0176d3;top:0;left:-50%;height:100%;width:2.5rem;-webkit-transform:translateX(-.5rem);transform:translateX(-.5rem);z-index:-1}.slds-datepicker--time,.slds-datepicker_time{max-width:12rem;max-height:13.5rem;overflow-x:hidden;overflow-y:auto}.slds-datepicker--time__list>li,.slds-datepicker_time__list>li{white-space:nowrap;padding:.5rem;padding-left:2rem;padding-right:2rem}.slds-datepicker--time__list>li:focus,.slds-datepicker--time__list>li:hover,.slds-datepicker_time__list>li:focus,.slds-datepicker_time__list>li:hover{background:var(--slds-g-color-neutral-base-95,#f3f3f3);text-decoration:none;cursor:pointer}.slds-docked-composer--overflow__pill,.slds-docked-composer_overflow__pill{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 .75rem;height:inherit;white-space:nowrap;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.slds-docked-composer--overflow__pill:focus,.slds-docked-composer--overflow__pill:hover,.slds-docked-composer_overflow__pill:focus,.slds-docked-composer_overflow__pill:hover{color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:none}.slds-docked-composer--overflow__pill .slds-text-body--small,.slds-docked-composer--overflow__pill .slds-text-body_small,.slds-docked-composer_overflow__pill .slds-text-body--small,.slds-docked-composer_overflow__pill .slds-text-body_small{color:var(--slds-g-color-neutral-base-100,#fff);margin-left:.5rem}.slds-docked_container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;position:fixed;bottom:0;right:0;padding:0 1.5rem;height:2.5rem}.slds-docked-composer{position:relative;border-radius:.25rem .25rem 0 0;width:480px;height:2.5rem;float:left;-webkit-box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:none;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-docked-composer.slds-has-focus{-webkit-box-shadow:0 0 4px 2px #0176d3;box-shadow:0 0 4px 2px #0176d3}.slds-docked-composer.slds-is-open{height:480px}.slds-docked-composer.slds-is-closed{height:2.5rem}.slds-docked-composer.slds-is-closed .slds-docked-composer__body,.slds-docked-composer.slds-is-closed .slds-docked-composer__footer{display:none}.slds-docked-composer+.slds-docked-composer{margin-left:1.5rem}.slds-docked-composer__header{background:var(--slds-g-color-neutral-base-100,#fff);border-bottom:2px solid #1b96ff;border-radius:.25rem .25rem 0 0;padding:.5rem .75rem}.slds-docked-composer__actions .slds-button{margin-left:.75rem}.slds-docked-composer__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:auto}.slds-docked-composer__body--form,.slds-docked-composer__body_form{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;padding:1rem}.slds-docked-composer__lead{display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--slds-g-color-neutral-base-100,#fff);padding:1rem .5rem}.slds-docked-composer__toolbar{background:var(--slds-g-color-neutral-base-95,#f3f3f3);padding:.25rem .5rem;max-height:60px;overflow-y:auto;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-docked-composer__input{background:var(--slds-g-color-neutral-base-100,#fff);padding:1rem;min-height:6rem;resize:none;line-height:1.5;overflow:hidden;overflow-y:auto}.slds-docked-composer__footer{display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--slds-g-color-neutral-base-95,#f3f3f3);padding:.75rem .5rem;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-docked-composer--overflow,.slds-docked-composer_overflow{width:auto}.slds-docked-composer--overflow__button,.slds-docked-composer_overflow__button{display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--slds-g-color-neutral-base-100,#fff);padding:0 .75rem;height:inherit;white-space:nowrap;border-bottom-left-radius:0;border-bottom-right-radius:0}.slds-docked-composer-modal .slds-modal__content{border-radius:.25rem}.slds-docked-composer-modal .slds-docked-composer{width:100%;height:100%;border:0}.slds-email-composer{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-email-composer .slds-rich-text-editor{border:0;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:0}.slds-email-composer__combobox{padding-left:3rem;border:0;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:0}.slds-email-composer__combobox .slds-form-element__label{position:absolute;left:.75rem;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.slds-email-composer__combobox .slds-combobox_container,.slds-email-composer__combobox .slds-input[value]{border:0;-webkit-box-shadow:none;box-shadow:none}.slds-email-composer__recipient{position:absolute;top:0;right:.75rem}.slds-utility-bar_container{position:relative}.slds-utility-bar{display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed;bottom:0;left:0;width:100%;height:2.5rem;background:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);z-index:4}.slds-utility-bar .slds-indicator--unread,.slds-utility-bar .slds-indicator_unread{background:var(--slds-g-color-neutral-base-100,#fe5c4c);top:.5rem}.slds-utility-bar__item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:1px}.slds-utility-bar__item_pop-out{position:relative}.slds-utility-bar__item_pop-out:before{content:"";position:absolute;top:4px;right:4px;height:4px;width:4px;border-top:1px solid var(--slds-g-color-neutral-base-10,#181818);border-right:1px solid var(--slds-g-color-neutral-base-10,#181818)}[dir=rtl] .slds-utility-bar__item_pop-out:before{/*! @noflip */right:auto;/*! @noflip */left:4px;/*! @noflip */border-right-width:0;/*! @noflip */border-left:1px solid var(--slds-g-color-neutral-base-10,#181818)}.slds-utility-bar__item_pop-out:after{content:"";position:absolute;top:2px;right:6px;height:7px;width:7px;border-right:1px solid var(--slds-g-color-neutral-base-10,#181818);-webkit-transform:rotate(45deg);transform:rotate(45deg)}[dir=rtl] .slds-utility-bar__item_pop-out:after{/*! @noflip */right:auto;/*! @noflip */left:6px;/*! @noflip */border-right-width:0;/*! @noflip */border-left:1px solid var(--slds-g-color-neutral-base-10,#181818);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.slds-utility-bar__action{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 .75rem;border-radius:0;border:0;color:var(--slds-g-color-neutral-base-10,#181818)}.slds-utility-bar__action:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:0 0}.slds-utility-bar__action:focus,.slds-utility-bar__action:hover{-webkit-box-shadow:none;box-shadow:none}.slds-utility-bar__action:focus:after{height:3px;background:#1b96ff}.slds-utility-bar__action:focus,.slds-utility-bar__action:hover{background:rgba(21,137,238,.1);color:inherit}.slds-utility-bar__action.slds-is-active{background:rgba(21,137,238,.1);color:inherit}.slds-utility-bar__action.slds-is-active:after{background:#1b96ff}.slds-utility-bar__text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;line-height:1;text-align:left}.slds-has-notification .slds-utility-bar__action{background:var(--slds-g-color-neutral-base-50,#747474);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-has-notification .slds-utility-bar__action:focus,.slds-has-notification .slds-utility-bar__action:hover{background:var(--slds-g-color-brand-base-20,#032d60)}.slds-has-notification .slds-utility-bar__action:focus:after{background:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-utility-panel{position:fixed;bottom:1.875rem;width:21.25rem;height:30rem;border-radius:.25rem .25rem 0 0;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:none;background:var(--slds-g-color-neutral-base-100,#fff);-webkit-transform:translateY(100%);transform:translateY(100%)}.slds-utility-panel.slds-is-open{-webkit-box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);box-shadow:0 -2px 2px 0 rgba(0,0,0,.16);-webkit-transform:translateY(0);transform:translateY(0)}.slds-utility-panel__header{background:var(--slds-g-color-neutral-base-100,#fff);border-bottom:2px solid #1b96ff;border-radius:.25rem .25rem 0 0;padding:.5rem .75rem}.slds-utility-panel__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:auto}.slds-drop-zone{position:relative}.slds-drop-zone:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;border:1px dotted var(--slds-g-color-neutral-base-30,#3e3e3c);outline:1px dotted var(--slds-g-color-neutral-base-100,#fff)}.slds-drop-zone.slds-drop-zone_drag:after{border:1px solid var(--slds-g-color-success-base-50,#2e844a);outline:0}.slds-drop-zone__label{color:var(--slds-g-color-neutral-base-100,#fff);background:var(--slds-g-color-success-base-50,#2e844a);border-radius:.25rem .25rem 0 0;padding:.25rem .5rem;position:absolute;top:0;left:50%;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.slds-drop-zone__label.slds-drop-zone__label_container{opacity:0;background:var(--slds-g-color-brand-base-50,#0176d3)}.slds-drop-zone__label .slds-media__body{-ms-flex-preferred-size:auto;flex-basis:auto}.slds-drop-zone__label_button{border-radius:0}.slds-drop-zone__label_button:focus,.slds-drop-zone__label_button:hover{text-decoration:underline;outline:0}.slds-drop-zone_drag__slot{border:1px solid var(--slds-g-color-neutral-base-100,#fff);border-left-width:2px;border-right-width:2px;background:var(--slds-g-color-success-base-50,#2e844a);width:100%;height:.25rem}.slds-drop-zone__container{position:relative;z-index:8000}.slds-drop-zone__container:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0}.slds-drop-zone__container.slds-is-hovered .slds-drop-zone__actions,.slds-drop-zone__container.slds-is-hovered .slds-drop-zone__label_container,.slds-drop-zone__container:hover .slds-drop-zone__actions,.slds-drop-zone__container:hover .slds-drop-zone__label_container{opacity:1;z-index:8000}.slds-drop-zone__container.slds-is-hovered:after,.slds-drop-zone__container:hover:after{border:1px solid var(--slds-g-color-brand-base-60,#1b96ff)}.slds-drop-zone__container:active:after{border:2px solid var(--slds-g-color-brand-base-20,#032d60)}.slds-drop-zone__container:active .slds-drop-zone__label{background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-drop-zone__container:focus-within{outline:0}.slds-drop-zone__container:focus-within .slds-drop-zone__actions,.slds-drop-zone__container:focus-within .slds-drop-zone__label_container{opacity:1;z-index:8000}.slds-drop-zone__container:focus-within:after{border:2px solid var(--slds-g-color-brand-base-50,#0176d3)}.slds-drop-zone__container:focus-within .slds-drop-zone__label{background-color:var(--slds-g-color-brand-base-30,#014486)}.slds-drop-zone__actions{opacity:0;background:var(--slds-g-color-brand-base-50,#0176d3);position:absolute;right:0;top:0}.slds-global-header__button--icon-actions,.slds-global-header__button_icon-actions{background:#919191;border-radius:.25rem;color:#fff}.slds-global-header__button--icon-actions:focus,.slds-global-header__button--icon-actions:hover,.slds-global-header__button_icon-actions:focus,.slds-global-header__button_icon-actions:hover{background-color:#818181;color:#fff}.slds-global-header__button--icon-actions .slds-button__icon,.slds-global-header__button_icon-actions .slds-button__icon{width:1rem;height:1rem}.slds-global-header__icon,.slds-global-header__icon .slds-button__icon,.slds-global-header__icon .slds-icon{width:1.25rem;height:1.25rem}.slds-global-header__button--icon-favorites,.slds-global-header__button_icon-favorites{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-global-header__button--icon-favorites .slds-button__icon,.slds-global-header__button--icon-favorites .slds-icon,.slds-global-header__button_icon-favorites .slds-button__icon,.slds-global-header__button_icon-favorites .slds-icon{color:#fff;stroke:#919191;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.slds-global-header__button--icon-favorites:focus .slds-button__icon,.slds-global-header__button--icon-favorites:focus .slds-icon,.slds-global-header__button--icon-favorites:hover .slds-button__icon,.slds-global-header__button--icon-favorites:hover .slds-icon,.slds-global-header__button_icon-favorites:focus .slds-button__icon,.slds-global-header__button_icon-favorites:focus .slds-icon,.slds-global-header__button_icon-favorites:hover .slds-button__icon,.slds-global-header__button_icon-favorites:hover .slds-icon{color:#fff;stroke:#818181}.slds-global-header__button--icon-favorites.slds-is-selected .slds-button__icon,.slds-global-header__button--icon-favorites.slds-is-selected .slds-icon,.slds-global-header__button_icon-favorites.slds-is-selected .slds-button__icon,.slds-global-header__button_icon-favorites.slds-is-selected .slds-icon{color:#fff;stroke:#0176d3;stroke-width:1px;fill:#fff}.slds-global-header__button--icon-favorites.slds-is-selected:focus .slds-button__icon,.slds-global-header__button--icon-favorites.slds-is-selected:focus .slds-icon,.slds-global-header__button--icon-favorites.slds-is-selected:hover .slds-button__icon,.slds-global-header__button--icon-favorites.slds-is-selected:hover .slds-icon,.slds-global-header__button_icon-favorites.slds-is-selected:focus .slds-button__icon,.slds-global-header__button_icon-favorites.slds-is-selected:focus .slds-icon,.slds-global-header__button_icon-favorites.slds-is-selected:hover .slds-button__icon,.slds-global-header__button_icon-favorites.slds-is-selected:hover .slds-icon{color:#fff;stroke:#014486;fill:#fff}.slds-global-header__button--icon-favorites.slds-is-selected:active .slds-button__icon,.slds-global-header__button--icon-favorites.slds-is-selected:active .slds-icon,.slds-global-header__button_icon-favorites.slds-is-selected:active .slds-button__icon,.slds-global-header__button_icon-favorites.slds-is-selected:active .slds-icon{color:#fff;stroke:#014486;fill:#fff}.slds-global-header__button--icon-favorites.slds-is-disabled .slds-button__icon,.slds-global-header__button--icon-favorites.slds-is-disabled .slds-icon,.slds-global-header__button--icon-favorites:disabled .slds-button__icon,.slds-global-header__button--icon-favorites:disabled .slds-icon,.slds-global-header__button_icon-favorites.slds-is-disabled .slds-button__icon,.slds-global-header__button_icon-favorites.slds-is-disabled .slds-icon,.slds-global-header__button_icon-favorites:disabled .slds-button__icon,.slds-global-header__button_icon-favorites:disabled .slds-icon{stroke:rgba(166,166,166,.25)}.slds-global-header__button--icon,.slds-global-header__button_icon{margin:0 .25rem;color:#919191}.slds-global-header__button--icon .slds-icon,.slds-global-header__button_icon .slds-icon{fill:#919191}.slds-global-header__button--icon:focus,.slds-global-header__button--icon:hover:not(:disabled),.slds-global-header__button_icon:focus,.slds-global-header__button_icon:hover:not(:disabled){color:#818181}.slds-global-header__button--icon:focus .slds-icon,.slds-global-header__button--icon:hover:not(:disabled) .slds-icon,.slds-global-header__button_icon:focus .slds-icon,.slds-global-header__button_icon:hover:not(:disabled) .slds-icon{fill:#818181}.slds-global-header_container{position:fixed;width:100%;top:0;left:0;z-index:100}.slds-global-header_container .slds-assistive-text--focus,.slds-global-header_container .slds-assistive-text_focus{top:0;color:#5e5e5e;background:#fff}.slds-global-header{background:#fff;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.07);box-shadow:0 2px 4px rgba(0,0,0,.07);padding:.5rem 0;height:3.125rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-global-header .slds-global-search__form-element .slds-input{padding-left:3rem}.slds-global-header .slds-global-search__form-element .slds-input__icon--left,.slds-global-header .slds-global-search__form-element .slds-input__icon_left{left:1.25rem}.slds-global-header .slds-global-search__form-element .slds-icon{fill:var(--slds-g-color-neutral-base-50,#aeaeae)}.slds-global-header__item{padding:0 1rem}.slds-global-header__item--search,.slds-global-header__item_search{-webkit-box-flex:0;-ms-flex:0 1 33.5rem;flex:0 1 33.5rem;min-width:27.5rem;padding:0}.slds-global-header__logo{width:12.5rem;height:2.5rem;background-image:url(../images/logo-noname.svg);background-size:contain;background-repeat:no-repeat;background-position:left center}.slds-global-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-global-actions__item{margin-left:.25rem;margin-right:.25rem}.slds-global-actions__item .slds-button_icon{color:#919191}.slds-global-actions__item-action{-webkit-transition:color .2s linear;transition:color .2s linear}.slds-global-actions__item-action:focus,.slds-global-actions__item-action:hover:not(:disabled){color:#818181}.slds-global-actions__item-action:active{-webkit-animation:click-icon 120ms cubic-bezier(1,1.9,.94,.98);animation:click-icon 120ms cubic-bezier(1,1.9,.94,.98)}.slds-global-actions__item-action:active:not(:disabled){color:#5e5e5e}@-webkit-keyframes click-icon{25%{-webkit-transform:scale(.94,.94);transform:scale(.94,.94)}100%{-webkit-transform:scale(.98,.98);transform:scale(.98,.98)}}@keyframes click-icon{25%{-webkit-transform:scale(.94,.94);transform:scale(.94,.94)}100%{-webkit-transform:scale(.98,.98);transform:scale(.98,.98)}}.slds-global-actions__avatar{-webkit-box-shadow:#818181 0 0 0 0;box-shadow:#818181 0 0 0 0;border-radius:50%;border:0;margin-left:.5rem;-webkit-transition:-webkit-transform 80ms ease-out,-webkit-box-shadow .1s linear;transition:-webkit-transform 80ms ease-out,-webkit-box-shadow .1s linear;transition:transform 80ms ease-out,box-shadow .1s linear;transition:transform 80ms ease-out,box-shadow .1s linear,-webkit-transform 80ms ease-out,-webkit-box-shadow .1s linear}.slds-global-actions__avatar:focus,.slds-global-actions__avatar:hover{-webkit-box-shadow:#818181 0 0 0 2px;box-shadow:#818181 0 0 0 2px}.slds-global-actions__favorites{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:.5rem}.slds-global-actions__favorites-action{border-color:#919191}.slds-global-actions__favorites-action:hover{border-color:#5e5e5e}.slds-global-actions__favorites-action .slds-button__icon{width:1rem;height:1rem;-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.slds-global-actions__favorites-action:hover:not(:disabled) .slds-button__icon{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1);-webkit-transform-origin:60% 40%;transform-origin:60% 40%}.slds-global-actions__favorites-action.slds-is-selected{background-color:#014486;border-color:#014486}.slds-global-actions__favorites-action.slds-is-selected:focus,.slds-global-actions__favorites-action.slds-is-selected:hover{background-color:#014486;border-color:#014486}.slds-global-actions__favorites-action.slds-is-selected .slds-button__icon{-webkit-animation:click-favorites-icon .6s cubic-bezier(.46,.32,0,.98);animation:click-favorites-icon .6s cubic-bezier(.46,.32,0,.98)}.slds-global-actions__favorites-action.slds-is-disabled,.slds-global-actions__favorites-action:disabled{color:rgba(166,166,166,.25);border-color:rgba(166,166,166,.25)}.slds-global-actions__favorites-more{width:auto;padding-left:.125rem;padding-right:.125rem;border-color:#919191}.slds-global-actions__favorites-more:hover{border-color:#5e5e5e}@-webkit-keyframes click-favorites-icon{25%{-webkit-transform:scale(.85,.85) rotate(15deg);transform:scale(.85,.85) rotate(15deg)}75%{-webkit-transform:scale(1.2,1.2) rotate(0);transform:scale(1.2,1.2) rotate(0)}100%{-webkit-transform:scale(1,1) rotate(0);transform:scale(1,1) rotate(0)}}@keyframes click-favorites-icon{25%{-webkit-transform:scale(.85,.85) rotate(15deg);transform:scale(.85,.85) rotate(15deg)}75%{-webkit-transform:scale(1.2,1.2) rotate(0);transform:scale(1.2,1.2) rotate(0)}100%{-webkit-transform:scale(1,1) rotate(0);transform:scale(1,1) rotate(0)}}.slds-global-actions__task{width:1.25rem;height:1.25rem;background:#919191;position:relative;top:-1px}.slds-global-actions__task:hover{background:#818181}.slds-global-actions__task:active{background:#5e5e5e}.slds-global-actions__task.slds-global-actions__item-action,.slds-global-actions__task.slds-global-actions__item-action:active,.slds-global-actions__task.slds-global-actions__item-action:hover{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-global-actions__task .slds-button__icon{width:1rem;height:1rem}.slds-global-actions__notifications{position:relative}.slds-global-actions__notifications.slds-incoming-notification{-webkit-animation:bell .8s ease-in-out;animation:bell .8s ease-in-out}.slds-notification-badge{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:-.25rem;right:-.25rem;background:#ba0517;color:var(--slds-g-color-neutral-base-100,#fff);border-radius:15rem;min-width:1rem;min-height:1rem;text-align:center;font-size:.625rem;padding:0 .125rem;opacity:0;pointer-events:none}.slds-notification-badge.slds-show-notification{-webkit-animation:ding .8s ease-out;animation:ding .8s ease-out;opacity:1;-webkit-transition-delay:.5s;transition-delay:.5s;-webkit-transform-origin:1.1875rem 0;transform-origin:1.1875rem 0}@-webkit-keyframes ding{75%{-webkit-transform:scale(.5,.5);transform:scale(.5,.5)}85%{-webkit-transform:scale(1.5,1.5);transform:scale(1.5,1.5)}100%{-webkit-transform:scale(1,1);transform:scale(1,1)}}@keyframes ding{75%{-webkit-transform:scale(.5,.5);transform:scale(.5,.5)}85%{-webkit-transform:scale(1.5,1.5);transform:scale(1.5,1.5)}100%{-webkit-transform:scale(1,1);transform:scale(1,1)}}@-webkit-keyframes bell{45%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}57%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}70%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}77%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@keyframes bell{45%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}57%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}70%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}77%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}.slds-global-header__notification{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);padding:.25rem}.slds-global-header__notification:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-global-header__notification:last-child{border-bottom:0}.slds-global-header__notification--unread,.slds-global-header__notification_unread{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-context-bar{display:-webkit-box;display:-ms-flexbox;display:flex;height:2.5rem;background-color:var(--slds-g-color-neutral-base-100,#fff);border-bottom:3px solid #1b96ff;color:var(--slds-g-color-neutral-base-10,#181818);position:relative;padding:0 0 0 1.5rem}.slds-context-bar .slds-context-bar__button{color:inherit}.slds-context-bar .slds-context-bar__icon-action{margin-left:auto}.slds-context-bar .slds-is-unsaved .slds-context-bar__label-action{position:relative;font-style:italic;line-height:normal}.slds-context-bar .slds-is-unsaved .slds-indicator_unread{margin-left:-.35rem}.slds-context-bar .slds-has-notification .slds-indicator_unread{display:inline-block;-ms-flex-negative:0;flex-shrink:0;height:6px;width:6px;left:auto;position:relative;top:auto}.slds-context-bar .slds-has-notification .slds-indicator--unsaved,.slds-context-bar .slds-has-notification .slds-indicator_unsaved{top:-.25rem}.slds-context-bar__primary,.slds-context-bar__secondary,.slds-context-bar__tertiary{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.slds-context-bar__secondary{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0}.slds-context-bar__vertical-divider{width:0;overflow:hidden;border-left:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-context-bar__item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;white-space:nowrap;position:relative;max-width:15rem;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-context-bar__item.slds-is-active,.slds-context-bar__item:not(.slds-no-hover):hover{outline:0;border-radius:0;background-color:rgba(21,137,238,.1);text-decoration:none;cursor:pointer}.slds-context-bar__item:not(.slds-no-hover):hover:after{content:"";width:100%;height:3px;display:block;background:rgba(0,0,0,.25);position:absolute;bottom:-3px;left:0;right:0}@supports (mix-blend-mode:soft-light){.slds-context-bar__item:not(.slds-no-hover):hover:after{background:rgba(0,0,0,.75);mix-blend-mode:soft-light}}.slds-context-bar__item:before{bottom:0;content:"";height:auto;left:0;position:absolute;right:0;top:0;-webkit-transition-property:top,background-color;transition-property:top,background-color}.slds-context-bar__item.slds-is-active{-webkit-animation:bkAnim 135ms cubic-bezier(.39,.575,.565,1) both;animation:bkAnim 135ms cubic-bezier(.39,.575,.565,1) both}@-webkit-keyframes bkAnim{50%{background-color:var(--slds-g-color-neutral-base-100,#fff)}100%{background-color:rgba(21,137,238,.1)}}@keyframes bkAnim{50%{background-color:var(--slds-g-color-neutral-base-100,#fff)}100%{background-color:rgba(21,137,238,.1)}}.slds-context-bar__item.slds-is-active:before{content:"";height:3px;display:block;background:#1b96ff;position:absolute;top:0;left:-1px;right:-1px;-webkit-animation:navBounceIn .15s cubic-bezier(.39,.575,.565,1) both;animation:navBounceIn .15s cubic-bezier(.39,.575,.565,1) both}@-webkit-keyframes navBounceIn{0%{-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0);opacity:0}20%{opacity:0}90%{-webkit-transform:translate3d(0,1px,0);transform:translate3d(0,1px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes navBounceIn{0%{-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0);opacity:0}20%{opacity:0}90%{-webkit-transform:translate3d(0,1px,0);transform:translate3d(0,1px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slds-context-bar__item.slds-is-active:hover{border-bottom-color:rgba(21,137,238,.1)}.slds-context-bar__item.slds-has-focus:after,.slds-context-bar__item.slds-has-focus:before,.slds-context-bar__item.slds-has-focus:hover:after,.slds-context-bar__item.slds-has-focus:hover:before{height:4px}.slds-context-bar__item.slds-has-notification{background:rgba(21,137,238,.1)}@-webkit-keyframes error-pulse{0%{background-color:var(--slds-g-color-error-base-40,#ba0517)}40%{background-color:var(--slds-g-color-error-base-30,#8e030f)}100%{background-color:var(--slds-g-color-error-base-40,#ba0517)}}@keyframes error-pulse{0%{background-color:var(--slds-g-color-error-base-40,#ba0517)}40%{background-color:var(--slds-g-color-error-base-30,#8e030f)}100%{background-color:var(--slds-g-color-error-base-40,#ba0517)}}@-webkit-keyframes success-pulse{0%{background-color:var(--slds-g-color-success-base-50,#2e844a)}40%{background-color:var(--slds-g-color-success-base-40,#194e31)}100%{background-color:var(--slds-g-color-success-base-50,#2e844a)}}@keyframes success-pulse{0%{background-color:var(--slds-g-color-success-base-50,#2e844a)}40%{background-color:var(--slds-g-color-success-base-40,#194e31)}100%{background-color:var(--slds-g-color-success-base-50,#2e844a)}}@-webkit-keyframes warning-pulse{0%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}40%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}100%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}}@keyframes warning-pulse{0%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}40%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}100%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}}.slds-context-bar__item.slds-has-success:before{-webkit-animation:none;animation:none;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-delay:150ms;animation-delay:150ms;-webkit-animation-timing-function:cubic-bezier(.07,.49,.5,1);animation-timing-function:cubic-bezier(.07,.49,.5,1);background-color:var(--slds-g-color-success-base-50,#2e844a);bottom:0;content:"";height:auto;left:0;position:absolute;right:0;top:0;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-context-bar__item.slds-has-success:hover:before{background-color:var(--slds-g-color-success-base-40,#194e31);height:auto}.slds-context-bar__item.slds-has-success:before{-webkit-animation-name:success-pulse;animation-name:success-pulse}.slds-context-bar__item.slds-has-error:before{-webkit-animation:none;animation:none;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-delay:150ms;animation-delay:150ms;-webkit-animation-timing-function:cubic-bezier(.07,.49,.5,1);animation-timing-function:cubic-bezier(.07,.49,.5,1);background-color:var(--slds-g-color-error-base-40,#ba0517);bottom:0;content:"";height:auto;left:0;position:absolute;right:0;top:0;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-context-bar__item.slds-has-error:hover:before{background-color:var(--slds-g-color-error-base-30,#8e030f);height:auto}.slds-context-bar__item.slds-has-error:before{-webkit-animation-name:error-pulse;animation-name:error-pulse}.slds-context-bar__item.slds-has-error .slds-context-bar__label-action,.slds-context-bar__item.slds-has-success .slds-context-bar__label-action{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-context-bar__item.slds-has-error .slds-indicator_unread,.slds-context-bar__item.slds-has-success .slds-indicator_unread{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-context-bar__item.slds-has-error .slds-indicator_unsaved,.slds-context-bar__item.slds-has-success .slds-indicator_unsaved{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-context-bar__item.slds-has-warning:before{-webkit-animation:none;animation:none;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-delay:150ms;animation-delay:150ms;-webkit-animation-timing-function:cubic-bezier(.07,.49,.5,1);animation-timing-function:cubic-bezier(.07,.49,.5,1);background-color:var(--slds-g-color-warning-base-60,#fe9339);bottom:0;content:"";height:auto;left:0;position:absolute;right:0;top:0;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-context-bar__item.slds-has-warning:hover:before{background-color:var(--slds-g-color-warning-base-60,#fe9339);height:auto}.slds-context-bar__item.slds-has-warning:before{-webkit-animation-name:warning-pulse;animation-name:warning-pulse}.slds-context-bar__item.slds-has-warning .slds-indicator_unread{background-color:currentColor}.slds-context-bar__item.slds-has-warning .slds-indicator_unsaved{color:currentColor}.slds-context-bar__item.slds-has-error.slds-is-active:after,.slds-context-bar__item.slds-has-success.slds-is-active:after,.slds-context-bar__item.slds-has-warning.slds-is-active:after{content:"";background:var(--slds-g-color-neutral-base-30,#3e3e3c);position:absolute;height:3px;opacity:.4;top:0;right:0;left:0}.slds-context-bar__item.slds-has-error.slds-has-focus:after,.slds-context-bar__item.slds-has-success.slds-has-focus:after,.slds-context-bar__item.slds-has-warning.slds-has-focus:after{height:4px}.slds-context-bar__item--divider-left,.slds-context-bar__item_divider-left{border-left:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-context-bar__item--divider-right,.slds-context-bar__item_divider-right{border-right:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-context-bar__label-action{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 .75rem;border-radius:0;min-width:0;color:inherit;font-size:.8125rem;z-index:1}.slds-context-bar__label-action:focus,.slds-context-bar__label-action:focus:hover{outline:0;text-decoration:underline}.slds-context-bar__label-action:hover{text-decoration:none}.slds-context-bar__label-action:focus,.slds-context-bar__label-action:hover{color:inherit}.slds-context-bar__label-action:active{color:inherit;text-decoration:none}.slds-context-bar__icon-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;margin-left:-.25rem;padding:0 .5rem;color:var(--slds-g-color-neutral-base-30,#444);border-radius:0;-ms-flex-negative:0;flex-shrink:0}.slds-context-bar__icon-action:focus{outline:0}.slds-context-bar__icon-action:focus .slds-context-bar__button{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-context-bar__icon-action:focus~.slds-dropdown{visibility:visible;opacity:1}.slds-context-bar__icon-action:focus,.slds-context-bar__icon-action:hover{color:var(--slds-g-color-neutral-base-30,#444)}.slds-context-bar__icon-action:active{color:var(--slds-g-color-neutral-base-30,#444)}.slds-context-bar__icon-action .slds-icon-waffle_container{width:2rem;height:2rem;margin-right:.25rem;margin-left:-.5rem}.slds-context-bar__icon-action .slds-icon-waffle{margin-right:auto;margin-left:auto}.slds-context-bar--tabs,.slds-context-bar_tabs{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-context-bar__item--tab,.slds-context-bar__item_tab{width:12rem;border-right:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-context-bar__item--tab .slds-context-bar__label-action,.slds-context-bar__item_tab .slds-context-bar__label-action{padding:0 .5rem}.slds-context-bar__item--tab.slds-is-pinned,.slds-context-bar__item_tab.slds-is-pinned{width:auto;padding-right:.5rem}.slds-context-bar__item--tab.slds-is-pinned .slds-context-bar__label-action,.slds-context-bar__item_tab.slds-is-pinned .slds-context-bar__label-action{padding:0 .5rem}.slds-context-bar__item_tab.slds-has-sub-tabs.slds-is-active,.slds-context-bar__item_tab.slds-has-sub-tabs.slds-is-active:hover{-webkit-animation:none;animation:none;background-color:transparent}.slds-context-bar__item_tab.slds-has-sub-tabs.slds-is-active:after,.slds-context-bar__item_tab.slds-has-sub-tabs.slds-is-active:hover:after{content:"";display:block;position:absolute;left:0;bottom:-3px;height:3px;width:100%;background-color:var(--slds-g-color-neutral-base-100,#fff);border:0;mix-blend-mode:unset}.slds-indicator--unsaved,.slds-indicator_unsaved{color:#0176d3;-ms-flex-item-align:center;align-self:center;position:relative}.slds-context-bar__dropdown-trigger .slds-dropdown{margin-top:3px}.slds-context-bar__dropdown-trigger .slds-dropdown:before{content:"";position:absolute;bottom:100%;width:100%;height:3px}.slds-context-bar__app-name{padding:0 1.5rem 0 0;font-size:1.125rem;line-height:1.25}.slds-context-bar__object-switcher{min-width:9rem;max-width:12rem;border-left:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-right:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-context-bar--theme-marketing,.slds-context-bar_theme-marketing{border-bottom-color:var(--slds-g-color-warning-base-60,#f59331)}.slds-context-bar--theme-marketing .slds-context-bar__item:not(.slds-no-hover):hover,.slds-context-bar_theme-marketing .slds-context-bar__item:not(.slds-no-hover):hover{border-bottom-color:var(--slds-g-color-warning-base-60,#f59331)}.slds-context-bar--theme-marketing .slds-context-bar__item.slds-is-active:before,.slds-context-bar_theme-marketing .slds-context-bar__item.slds-is-active:before{background:var(--slds-g-color-warning-base-60,#f59331)}.slds-indicator-container{display:inline;margin-right:.25rem}.slds-indicator-container:empty{margin-right:0}.slds-expression__options{width:15rem}.slds-expression__options .slds-form-element__control{clear:none}.slds-expression__legend{float:left;width:3rem;padding-top:calc((1.5 * .75rem) + (1.875rem / 4));font-weight:700}.slds-expression__legend.slds-expression__legend_group{margin-top:0}.slds-expression__row{margin-top:.75rem}.slds-expression__row.slds-expression__row_group{padding-left:3rem}.slds-expression__buttons{margin-top:.75rem}.slds-expression__group{background:var(--slds-g-color-neutral-base-95,#f3f3f3);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;padding:.75rem;margin-top:.75rem}.slds-expression__title{font-size:1.125rem;font-weight:700;margin-bottom:.5rem}.slds-expression__custom-logic{margin-top:.75rem}.slds-expression_formula__rte{margin-top:.75rem}.slds-filters{position:relative}.slds-filters__header{padding:.5rem .75rem}.slds-filters__body{padding:.5rem .75rem}.slds-filters__footer{padding:.5rem 1rem}.slds-filters__item{padding:.75rem;background:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-radius:.25rem}.slds-filters__item.slds-is-new{background:var(--slds-g-color-palette-yellow-90,#faffbd);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-filters__item.slds-has-error{border-color:var(--slds-g-color-error-base-40,#ea001e)}.slds-filters__item.slds-is-locked{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-filters__item+.slds-filters__item{margin-top:.5rem}.slds-filters__item:hover{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-filters__group{background:var(--slds-g-color-neutral-base-95,#f3f3f3);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;padding:.75rem}.slds-builder-header_container{position:fixed;width:100%;top:0;left:0;z-index:100}.slds-builder-header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;height:3.125rem;background:var(--slds-g-color-brand-base-20,#032d60);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-builder-header__item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap}.slds-builder-header__item+.slds-builder-header__item{border-left:1px solid var(--slds-g-color-brand-base-10,#001639)}.slds-builder-header__item-action,.slds-builder-header__item-label{color:currentColor;padding:0 1rem;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-width:0;height:100%}.slds-builder-header__item-action .slds-media__body,.slds-builder-header__item-label .slds-media__body{-ms-flex-preferred-size:auto;flex-basis:auto}.slds-builder-header__item-action{-webkit-transition:all 150ms linear;transition:all 150ms linear}.slds-builder-header__item-action:focus,.slds-builder-header__item-action:hover{background-color:var(--slds-g-color-brand-base-10,#001639);color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:none}.slds-builder-header__item-action:focus{text-decoration:underline;-webkit-box-shadow:none;box-shadow:none;outline:0}.slds-builder-header__nav,.slds-builder-header__utilities{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.slds-builder-header__nav-list{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-builder-header__utilities{margin-left:auto}.slds-builder-header__nav-item,.slds-builder-header__utilities-item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.slds-builder-header__nav-item+.slds-builder-header__nav-item,.slds-builder-header__nav-item+.slds-builder-header__utilities-item,.slds-builder-header__utilities-item+.slds-builder-header__nav-item,.slds-builder-header__utilities-item+.slds-builder-header__utilities-item{border-left:1px solid var(--slds-g-color-brand-base-10,#001639)}.slds-builder-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;padding:.5rem 1rem;background:var(--slds-g-color-neutral-base-100,#fff);border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-builder-toolbar__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:auto}.slds-builder-toolbar__item-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-builder-toolbar__item-group+.slds-builder-toolbar__item-group{margin-left:.25rem}.slds-publisher{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-publisher.slds-is-active{display:block}.slds-publisher.slds-is-active .slds-publisher__toggle-visibility{display:inherit;height:auto;overflow:visible;width:auto}.slds-publisher.slds-is-active .slds-publisher__input{line-height:1.5;height:auto;max-height:10rem;resize:vertical;padding-top:.75rem;padding-bottom:.75rem}.slds-publisher .slds-publisher__toggle-visibility{display:block;height:0;overflow:hidden;width:0}.slds-publisher__input{line-height:1.875rem;padding:0 1rem;resize:none;max-height:calc(1.875rem + 2px);width:100%;border-radius:.25rem}.slds-publisher__actions>.slds-button{margin-left:.75rem}.slds-publisher--comment,.slds-publisher_comment{background-color:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-radius:.25rem;width:100%;position:relative;min-height:calc(1.875rem + 2px);max-height:calc(1.875rem + 2px)}.slds-publisher--comment.slds-is-active,.slds-publisher_comment.slds-is-active{min-height:6rem;max-height:15rem}.slds-publisher--comment.slds-is-active .slds-publisher__actions,.slds-publisher_comment.slds-is-active .slds-publisher__actions{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-publisher--comment.slds-has-focus,.slds-publisher_comment.slds-has-focus{outline:0;border-color:var(--slds-g-color-brand-base-60,#1b96ff);background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-publisher--comment .slds-publisher__actions,.slds-publisher_comment .slds-publisher__actions{display:none;padding:0 .75rem .75rem}.slds-publisher--comment .slds-attachments,.slds-publisher_comment .slds-attachments{padding:.5rem .75rem}.slds-feed{position:relative;max-width:49rem;margin:auto}.slds-feed__list{margin:0;padding:0}.slds-feed__item{padding:.5rem 0}@media (min-width:48em){.slds-feed__item{padding:.75rem 0}}.slds-comment__replies{padding-top:1rem;margin-left:3.75rem}.slds-comment__replies>:last-child,.slds-comment__replies>:last-child .slds-comment{padding-bottom:0}.slds-comment__replies>:last-child .slds-comment:before,.slds-comment__replies>:last-child:before{content:none}.slds-comment__replies .slds-comment{margin-bottom:0;padding-bottom:1rem;position:relative}.slds-comment__replies .slds-comment:before{content:"";background:var(--slds-g-color-border-base-1,#e5e5e5);height:100%;width:1px;position:absolute;left:1.125rem;top:0;bottom:0;margin-left:-1.125rem;z-index:-1}.slds-comment__replies .slds-avatar{border:2px solid var(--slds-g-color-neutral-base-100,#fff)}.slds-tags{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-tags__list{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-tags__item{margin-left:.25rem}.slds-tags__item:after{content:", "}.slds-tags__item:last-child:after{content:none}.slds-attachments{padding-bottom:.5rem}.slds-attachments:empty{padding:0}.slds-attachments__item+.slds-attachments__item{margin-top:1rem}.slds-comment__content{padding:.25rem 0}.slds-feed__item-comments{background:var(--slds-g-color-neutral-base-95,#f3f3f3);border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-feed__item-comments .slds-comment{padding:.5rem 1rem}.slds-post{background:var(--slds-g-color-neutral-base-100,#fff);padding:.75rem 1rem}@media (max-width:48em){.slds-post{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}}@media (min-width:64em){.slds-post{padding:0 1rem .5rem}}.slds-post__header{margin-bottom:.75rem}.slds-post__content{margin-bottom:.75rem}@media (min-width:48em){.slds-post__content{margin-bottom:1.5rem}}.slds-post__footer{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:.75rem;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media (min-width:48em){.slds-post__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.slds-post__footer-actions-list{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;text-align:center;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media (max-width:30em){.slds-post__footer-actions-list{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);margin:0 -.75rem -.75rem;padding:0 1rem}}@media (min-width:48em){.slds-post__footer-actions-list{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}.slds-post__footer-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--slds-g-color-neutral-base-10,#181818);padding:.75rem 0;line-height:1}@media (min-width:48em){.slds-post__footer-action{margin-right:1rem;padding:0}}.slds-post__footer-action .slds-icon{margin-right:.25rem}.slds-post__footer-action.slds-is-active,.slds-post__footer-action:focus,.slds-post__footer-action:hover{color:var(--slds-g-link-color-hover,#014486);text-decoration:none}.slds-post__footer-action.slds-is-active .slds-icon,.slds-post__footer-action:focus .slds-icon,.slds-post__footer-action:hover .slds-icon{fill:currentColor}.slds-post__footer-meta-list{margin-bottom:1rem}@media (min-width:48em){.slds-post__footer-meta-list{margin-left:auto;margin-bottom:0}}.slds-region--narrow .slds-post,.slds-region_narrow .slds-post{border:0;padding:.75rem 1rem}.slds-region--narrow .slds-post__content,.slds-region_narrow .slds-post__content{margin-bottom:.75rem}.slds-region--narrow .slds-post__footer,.slds-region_narrow .slds-post__footer{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.slds-region--narrow .slds-post__footer-action,.slds-region_narrow .slds-post__footer-action{padding:.75rem 0}.slds-region--narrow .slds-post__footer-actions-list,.slds-region_narrow .slds-post__footer-actions-list{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);margin:0 -.75rem -.75rem;padding:0 1rem}.slds-region--narrow .slds-post__footer-meta-list,.slds-region_narrow .slds-post__footer-meta-list{margin-left:0;margin-bottom:1rem}.slds-post__payload{padding:0 0 1rem}.slds-post__payload:empty{padding:0;border:0}.slds-modal__menu{position:relative;border-radius:.25rem;padding:1rem;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}@media (max-width:48em){.slds-modal__menu .slds-button{width:100%;margin:.125rem 0}}.slds-modal__header .slds-modal__close{position:absolute;top:-2.5rem;right:-.5rem;margin-left:0;bottom:0}.slds-modal__header--empty,.slds-modal__header_empty{/*! @css-var-fallback padding-top */--sds-c-modal-header-spacing-block-start:0;/*! @css-var-fallback padding-bottom */--sds-c-modal-header-spacing-block-end:0;/*! @css-var-fallback padding-left */--sds-c-modal-header-spacing-inline-start:0;/*! @css-var-fallback padding-right */--sds-c-modal-header-spacing-inline-end:0;/*! @css-var-fallback border-bottom */--slds-c-modal-sizing-border:0}.slds-modal{opacity:0;visibility:hidden;-webkit-transition:opacity .1s linear,-webkit-transform .1s linear;transition:opacity .1s linear,-webkit-transform .1s linear;transition:transform .1s linear,opacity .1s linear;transition:transform .1s linear,opacity .1s linear,-webkit-transform .1s linear;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9001}.slds-modal .slds-modal__title{font-weight:var(--slds-c-modal-heading-font-weight,var(--sds-c-modal-heading-font-weight));font-size:var(--slds-c-modal-heading-font-size,var(--sds-c-modal-heading-font-size,1.25rem));line-height:var(--slds-c-modal-heading-line-height,var(--sds-c-modal-heading-line-height,1.25))}.slds-modal__container{position:relative;-webkit-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .1s linear,-webkit-transform .1s linear;transition:opacity .1s linear,-webkit-transform .1s linear;transition:transform .1s linear,opacity .1s linear;transition:transform .1s linear,opacity .1s linear,-webkit-transform .1s linear;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 2rem;height:100%;padding:3rem 0 5rem 0;border-radius:.25rem}@media (min-width:48em){.slds-modal__container{margin:0 auto;width:50%;max-width:40rem;min-width:20rem}}.slds-modal__header{position:relative;border-top-right-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));border-top-left-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));border-bottom-width:var(--slds-c-modal-sizing-border,var(--sds-c-modal-sizing-border,2px));border-bottom-style:solid;border-bottom-color:var(--slds-c-modal-color-border,var(--sds-c-modal-color-border,var(--slds-g-color-border-base-1,#e5e5e5)));background-color:var(--slds-c-modal-header-color-background,var(--sds-c-modal-header-color-background,var(--slds-c-modal-color-background,var(--sds-c-modal-color-background,var(--slds-g-color-neutral-base-100,#fff)))));color:var(--slds-c-modal-header-text-color,var(--sds-c-modal-header-text-color,var(--sds-c-modal-text-color)));-ms-flex-negative:0;flex-shrink:0;padding-top:var(--slds-c-modal-header-spacing-block-start,var(--sds-c-modal-header-spacing-block-start,1rem));padding-right:var(--slds-c-modal-header-spacing-inline-end,var(--sds-c-modal-header-spacing-inline-end,1rem));padding-bottom:var(--slds-c-modal-header-spacing-block-end,var(--sds-c-modal-header-spacing-block-end,1rem));padding-left:var(--slds-c-modal-header-spacing-inline-start,var(--sds-c-modal-header-spacing-inline-start,1rem));text-align:center}.slds-modal__header+.slds-modal__menu{border-top-right-radius:0;border-top-left-radius:0}.slds-modal__content_headless,.slds-modal__header--empty+.slds-modal__content,.slds-modal__header_empty+.slds-modal__content{border-top-right-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));border-top-left-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem))}.slds-modal__content{background-color:var(--slds-c-modal-content-color-background,var(--sds-c-modal-content-color-background,var(--slds-c-modal-color-background,var(--sds-c-modal-color-background,var(--slds-g-color-neutral-base-100,#fff)))));color:var(--slds-c-modal-content-text-color,var(--sds-c-modal-content-text-color,var(--slds-c-modal-text-color,var(--sds-c-modal-text-color))));overflow:hidden;overflow-y:auto}.slds-modal__container>.slds-modal__content:last-child,.slds-modal__content_footless,.slds-modal__content_has-hidden-footer{border-bottom-right-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));border-bottom-left-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));-webkit-box-shadow:var(--slds-c-modal-shadow,var(--sds-c-modal-shadow,0 2px 3px 0 rgba(0,0,0,.16)));box-shadow:var(--slds-c-modal-shadow,var(--sds-c-modal-shadow,0 2px 3px 0 rgba(0,0,0,.16)))}.slds-modal__footer{border-bottom-right-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));border-bottom-left-radius:var(--slds-c-modal-radius-border,var(--sds-c-modal-radius-border,.25rem));border-top-width:var(--slds-c-modal-sizing-border,var(--sds-c-modal-sizing-border,2px));border-top-style:solid;border-top-color:var(--slds-c-modal-color-border,var(--sds-c-modal-color-border,var(--slds-g-color-border-base-1,#e5e5e5)));background-color:var(--slds-c-modal-footer-color-background,var(--sds-c-modal-footer-color-background,var(--slds-c-modal-color-background,var(--sds-c-modal-color-background,var(--slds-g-color-neutral-base-95,#f3f3f3)))));color:var(--slds-c-modal-footer-text-color,var(--sds-c-modal-footer-text-color,var(--slds-c-modal-text-color,var(--sds-c-modal-text-color))));-ms-flex-negative:0;flex-shrink:0;padding-top:var(--slds-c-modal-footer-spacing-block-start,var(--sds-c-modal-footer-spacing-block-start,.75rem));padding-right:var(--slds-c-modal-footer-spacing-inline-end,var(--sds-c-modal-footer-spacing-inline-end,1rem));padding-bottom:var(--slds-c-modal-footer-spacing-block-end,var(--sds-c-modal-footer-spacing-block-end,.75rem));padding-left:var(--slds-c-modal-footer-spacing-inline-start,var(--sds-c-modal-footer-spacing-inline-start,1rem));text-align:right;-webkit-box-shadow:var(--slds-c-modal-shadow,var(--sds-c-modal-shadow,0 2px 3px 0 rgba(0,0,0,.16)));box-shadow:var(--slds-c-modal-shadow,var(--sds-c-modal-shadow,0 2px 3px 0 rgba(0,0,0,.16)))}.slds-modal__footer .slds-button+.slds-button{margin-left:.5rem}.slds-modal__footer--directional .slds-button:first-child,.slds-modal__footer_directional .slds-button:first-child{float:left}.slds-modal__close{width:2rem;height:2rem;margin-left:auto;position:relative;bottom:.5rem;right:-.5rem}@media (min-width:48em){.slds-modal_small .slds-modal__container{width:60%;max-width:52.0625rem;min-width:40rem}}@media (min-width:48em){.slds-modal_medium .slds-modal__container{width:70%;max-width:75rem;min-width:40rem}}@media (min-width:48em){.slds-modal--large .slds-modal__container,.slds-modal_large .slds-modal__container{width:90%;max-width:none;min-width:40rem}}.slds-backdrop{-webkit-transition-duration:.4s;transition-duration:.4s;width:100%;height:100%;opacity:0;visibility:hidden;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--slds-c-backdrop-color-background,var(--sds-c-backdrop-color-background,rgba(8,7,7,.6)));z-index:9000}.slds-backdrop--open,.slds-backdrop_open{visibility:visible;opacity:1;-webkit-transition:opacity .4s linear;transition:opacity .4s linear}.slds-fade-in-open{opacity:1;visibility:visible;-webkit-transition:opacity .1s linear;transition:opacity .1s linear}.slds-fade-in-open .slds-modal__container-reset{opacity:1;visibility:visible;-webkit-transform:translate(0,0);transform:translate(0,0)}.slds-slide-up-open{opacity:1;visibility:visible;-webkit-transform:translate(0,0);transform:translate(0,0);-webkit-transition:opacity .1s linear,-webkit-transform .2s linear;transition:opacity .1s linear,-webkit-transform .2s linear;transition:opacity .1s linear,transform .2s linear;transition:opacity .1s linear,transform .2s linear,-webkit-transform .2s linear}.slds-slide-up-open .slds-modal__container-reset{opacity:0;visibility:hidden;-webkit-transform:translate(0,1rem);transform:translate(0,1rem);-webkit-transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,-webkit-transform .2s linear;transition:opacity .2s linear,transform .2s linear;transition:opacity .2s linear,transform .2s linear,-webkit-transform .2s linear}.slds-slide-up-saving{opacity:1;visibility:visible;-webkit-transform:translate(0,-1rem);transform:translate(0,-1rem)}.slds-slide-down-cancel{opacity:1;visibility:visible;-webkit-transform:translate(0,1rem);transform:translate(0,1rem)}.slds-map_container{-webkit-box-flex:3;-ms-flex:3 1 auto;flex:3 1 auto}.slds-map{position:relative;min-width:23.75rem;width:100%;max-height:100%}.slds-map:before{content:"";display:block;height:0;width:100%;padding-top:56.25%}.slds-map iframe{position:absolute;top:0;left:0;right:0;height:100%;width:100%;border:0}.slds-has-coordinates{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:auto;max-height:41.25rem;background:var(--slds-g-color-neutral-base-100,#fff)}.slds-has-coordinates .slds-map:before{padding-top:75%}.slds-coordinates{overflow:auto;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-coordinates__header{padding:1rem}.slds-coordinates__title{font-size:1rem;font-weight:700}.slds-coordinates__item-action{padding:.5rem 1rem;width:100%}.slds-coordinates__item-action .slds-text-link{display:block}.slds-coordinates__item-action:focus,.slds-coordinates__item-action:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);outline:0}.slds-coordinates__item-action:focus .slds-text-link,.slds-coordinates__item-action:hover .slds-text-link{text-decoration:underline}.slds-coordinates__item-action:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-coordinates__item-action[aria-pressed=true]{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-coordinates__item-action[aria-pressed=true] .slds-text-link{color:var(--slds-g-link-color-focus,#032d60)}.slds-app-launcher__header-search{-webkit-box-flex:0;-ms-flex:0 1 25rem;flex:0 1 25rem;padding:0 1rem}.slds-app-launcher__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-app-launcher__content .slds-section__title-action{background:0 0}.slds-app-launcher__tile--small,.slds-app-launcher__tile_small{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border:0;border-radius:0;text-align:center;cursor:pointer}.slds-app-launcher__tile--small:focus .slds-app-launcher__tile-figure--small,.slds-app-launcher__tile--small:focus .slds-app-launcher__tile-figure_small,.slds-app-launcher__tile--small:hover .slds-app-launcher__tile-figure--small,.slds-app-launcher__tile--small:hover .slds-app-launcher__tile-figure_small,.slds-app-launcher__tile_small:focus .slds-app-launcher__tile-figure--small,.slds-app-launcher__tile_small:focus .slds-app-launcher__tile-figure_small,.slds-app-launcher__tile_small:hover .slds-app-launcher__tile-figure--small,.slds-app-launcher__tile_small:hover .slds-app-launcher__tile-figure_small{border-color:var(--slds-g-color-border-brand-2,#1b96ff)}.slds-app-launcher__tile-figure--small,.slds-app-launcher__tile-figure_small{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem}.slds-app-launcher__tile-body--small,.slds-app-launcher__tile-body_small{background:0 0;padding:.5rem 0;border:0;border-radius:0}.slds-app-launcher__tile{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin:.5rem 0;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;cursor:move}.slds-app-launcher__tile:active,.slds-app-launcher__tile:focus,.slds-app-launcher__tile:hover{outline:0;border-color:#014486}.slds-app-launcher__tile.slds-is-draggable .slds-app-launcher__tile-figure{padding-bottom:.25rem}.slds-app-launcher__tile.slds-is-grabbed{-webkit-transform:rotate(3deg);transform:rotate(3deg)}.slds-app-launcher__tile-figure{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;padding:.75rem;color:var(--slds-g-color-neutral-base-100,#fff);border-radius:.25rem 0 0 .25rem;text-align:center}.slds-app-launcher__tile-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;background:var(--slds-g-color-neutral-base-95,#f3f3f3);padding:.5rem .75rem;border-radius:0 .25rem .25rem 0}.slds-visual-picker{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border:0;border-radius:0;text-align:center;cursor:pointer}.slds-visual-picker+.slds-visual-picker{margin-left:1rem}.slds-visual-picker:active .slds-visual-picker__figure{border:1px solid var(--slds-g-color-border-brand-2,#1b96ff);-webkit-box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-visual-picker:hover .slds-visual-picker__figure{cursor:pointer}.slds-visual-picker input:not(:disabled)~label:hover .slds-visual-picker__figure{cursor:pointer;outline:0;border:1px solid var(--slds-g-color-border-brand-2,#1b96ff);-webkit-box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-visual-picker input{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute}.slds-visual-picker input:focus~label .slds-visual-picker__figure{border:1px solid var(--slds-g-color-border-brand-2,#1b96ff);-webkit-box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-visual-picker input:checked~label .slds-visual-picker__figure{-webkit-box-shadow:0 4px 4px 0 rgba(0,0,0,.16);box-shadow:0 4px 4px 0 rgba(0,0,0,.16)}.slds-visual-picker input:focus~label .slds-visual-picker__body>:first-child{text-decoration:underline}.slds-visual-picker input:checked~label .slds-is-not-selected{display:none}.slds-visual-picker input:checked~label .slds-is-selected{display:block}.slds-visual-picker input:checked~label .slds-visual-picker__icon{background-color:var(--slds-g-color-brand-base-60,#1b96ff);border:1px solid var(--slds-g-color-border-brand-2,#1b96ff)}.slds-visual-picker input:checked~label .slds-visual-picker__text{border:1px solid var(--slds-g-color-border-brand-2,#1b96ff);-webkit-box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-visual-picker input:checked~label .slds-visual-picker__text:after{content:"";position:absolute;top:0;right:0;border-color:transparent;border-style:solid;border-radius:0 .25rem 0 0;border-width:1rem;border-right-color:var(--slds-g-color-brand-base-60,#1b96ff);border-top-color:var(--slds-g-color-brand-base-60,#1b96ff)}.slds-visual-picker input[disabled]{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-visual-picker input[disabled]~label .slds-visual-picker__body,.slds-visual-picker input[disabled]~label .slds-visual-picker__text{color:var(--slds-g-color-neutral-base-50,#444)}.slds-visual-picker input[disabled]~label .slds-visual-picker__figure{border-color:var(--slds-g-color-border-base-1,#c9c9c9);background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:none;box-shadow:none}.slds-visual-picker input[disabled]~label .slds-visual-picker__figure:hover{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-shadow:none;box-shadow:none}.slds-visual-picker__figure{display:block;background:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 2px 2px rgba(0,0,0,.05);box-shadow:0 2px 2px rgba(0,0,0,.05);border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;text-align:center}.slds-visual-picker__figure .slds-icon-action-check{background-color:var(--slds-g-color-brand-base-60,#1b96ff)}.slds-visual-picker__figure span{display:block}.slds-visual-picker__figure .slds-is-selected{display:none}.slds-visual-picker_medium .slds-visual-picker__body,.slds-visual-picker_medium .slds-visual-picker__figure{width:12rem}.slds-visual-picker_medium .slds-visual-picker__figure{height:12rem}.slds-visual-picker_large .slds-visual-picker__body,.slds-visual-picker_large .slds-visual-picker__figure{width:15rem}.slds-visual-picker_large .slds-visual-picker__figure{height:15rem}.slds-visual-picker_small .slds-visual-picker__body,.slds-visual-picker_small .slds-visual-picker__figure{width:8.5rem}.slds-visual-picker_small .slds-visual-picker__figure{height:8.5rem}.slds-visual-picker__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:0 0;padding:1rem .5rem;border:0;border-radius:0}.slds-visual-picker__text-check{position:absolute;top:.1rem;right:.625rem;width:.5rem;height:.5rem}.slds-visual-picker input[disabled]~label .slds-visual-picker__text-check{opacity:0}.slds-visual-picker_vertical{width:25rem;display:-webkit-box;display:-ms-flexbox;display:flex}.slds-visual-picker_vertical .slds-visual-picker__figure{text-align:left;padding:1rem;height:6rem}.slds-visual-picker_vertical+.slds-visual-picker_vertical{margin-left:0;margin-top:1rem}.slds-visual-picker_vertical .slds-visual-picker__body,.slds-visual-picker_vertical .slds-visual-picker__figure{width:25rem}.slds-visual-picker_vertical input:focus~label .slds-visual-picker__text .slds-text-heading_medium{text-decoration:underline}.slds-pill{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:var(--slds-c-pill-line-height,var(--sds-c-pill-line-height,1.5));max-width:100%;padding-top:var(--slds-c-pill-spacing-block-start,var(--sds-c-pill-spacing-block-start,.125rem));padding-right:var(--slds-c-pill-spacing-inline-end,var(--sds-c-pill-spacing-inline-end,.125rem));padding-bottom:var(--slds-c-pill-spacing-block-end,var(--sds-c-pill-spacing-block-end,.125rem));padding-left:var(--slds-c-pill-spacing-inline-start,var(--sds-c-pill-spacing-inline-start,.125rem));border-width:var(--slds-c-pill-sizing-border,var(--sds-c-pill-sizing-border,1px));border-style:solid;border-color:var(--slds-c-pill-color-border,var(--sds-c-pill-color-border,var(--slds-g-color-border-base-1,#e5e5e5)));border-radius:var(--slds-c-pill-radius-border,var(--sds-c-pill-radius-border,.25rem));background-color:var(--slds-c-pill-color-background,var(--sds-c-pill-color-background,var(--slds-g-color-neutral-base-100,#fff)));-webkit-box-shadow:var(--slds-c-pill-shadow);box-shadow:var(--slds-c-pill-shadow);position:relative;min-height:1.625rem}.slds-pill+.slds-pill{margin-left:.125rem}.slds-pill:hover{/*! @css-var-fallback background-color */--slds-c-pill-color-background:var(--sds-c-pill-color-background-hover, var(--slds-g-color-neutral-base-95, #f3f3f3))}.slds-pill:focus{/*! @css-var-fallback border-color */--slds-c-pill-color-border:var(--sds-c-pill-color-border-focus, var(--slds-g-color-brand-base-60, #1b96ff));/*! @css-var-fallback box-shadow */--slds-c-pill-shadow:var(--sds-c-pill-shadow-focus, 0 0 3px #0176d3);outline:0}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{/*! @css-var-fallback background-color */--slds-c-pill-color-background:transparent;/*! @css-var-fallback border-width */--slds-c-pill-sizing-border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{/*! @css-var-fallback background-color */--sds-c-pill-color-background-hover:transparent}.slds-pill_container{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:calc(1.875rem + 2px);padding-top:var(--slds-c-pill-container-spacing-block-start,var(--sds-c-pill-container-spacing-block-start,.125rem));padding-right:var(--slds-c-pill-container-spacing-inline-end,var(--sds-c-pill-container-spacing-inline-end,.125rem));padding-bottom:var(--slds-c-pill-container-spacing-block-end,var(--sds-c-pill-container-spacing-block-end,.125rem));padding-left:var(--slds-c-pill-container-spacing-inline-start,var(--sds-c-pill-container-spacing-inline-start,.125rem));border-width:var(--slds-c-pill-sizing-border,var(--sds-c-pill-sizing-border,1px));border-style:solid;border-color:var(--slds-c-pill-color-border,var(--sds-c-pill-color-border,var(--slds-g-color-border-base-1,#e5e5e5)));border-radius:var(--slds-c-pill-radius-border,var(--sds-c-pill-radius-border,.25rem));background-color:var(--slds-c-pill-container-color-background,var(--sds-c-pill-container-color-background,var(--slds-g-color-neutral-base-100,#fff)))}.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slds-pill__label:focus{outline:0;border-radius:.25rem;-webkit-box-shadow:var(--slds-c-pill-label-shadow-focus,var(--sds-c-pill-label-shadow-focus,0 0 3px #0176d3));box-shadow:var(--slds-c-pill-label-shadow-focus,var(--sds-c-pill-label-shadow-focus,0 0 3px #0176d3))}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.25rem + .25rem + 2px)}.slds-pill__remove{width:1rem;height:1rem;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.slds-pill__action{padding-top:var(--slds-c-pill-spacing-block-start,var(--sds-c-pill-spacing-block-start,.125rem));padding-right:calc(1rem + var(--slds-c-pill-spacing-inline-end,var(--sds-c-pill-spacing-inline-end,.125rem)) + 2px);padding-bottom:var(--slds-c-pill-spacing-block-end,var(--sds-c-pill-spacing-block-end,.125rem));padding-left:var(--slds-c-pill-spacing-inline-start,var(--sds-c-pill-spacing-inline-start,.125rem));border-width:var(--slds-c-pill-sizing-border,var(--sds-c-pill-sizing-border,1px));border-style:solid;border-color:var(--slds-c-pill-color-border,var(--sds-c-pill-color-border,var(--slds-g-color-border-base-1,#e5e5e5)));border-radius:var(--slds-c-pill-radius-border,var(--sds-c-pill-radius-border,.25rem));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.slds-pill__action:focus{outline:0;border-color:var(--slds-c-pill-action-color-border,var(--sds-c-pill-action-color-border,var(--slds-g-color-brand-base-60,#1b96ff)));-webkit-box-shadow:var(--slds-c-pill-action-shadow,var(--sds-c-pill-action-shadow,0 0 3px #0176d3));box-shadow:var(--slds-c-pill-action-shadow,var(--sds-c-pill-action-shadow,0 0 3px #0176d3))}.slds-has-error{border-color:var(--slds-c-pill-error-color-border,var(--sds-c-pill-error-color-border,var(--slds-g-color-error-base-40,#ea001e)))}.slds-has-error:active{border-color:var(--slds-c-pill-error-color-border-active,var(--sds-c-pill-error-color-border-active,var(--slds-g-color-error-base-40,#ea001e)))}.slds-has-error .slds-pill__label{font-weight:700;color:var(--slds-c-pill-error-text-color,var(--sds-c-pill-error-text-color,var(--slds-g-color-error-base-40,#ea001e)))}.slds-has-error:hover{--slds-c-pill-error-text-color:var(--slds-g-color-error-base-30, #ea001e)}.slds-has-error:hover .slds-pill__icon_container .slds-icon-text-error{--slds-c-icon-color-foreground:var(--slds-g-color-error-base-30, #ea001e)}.slds-wizard{position:relative}.slds-wizard .slds-is-active .slds-wizard__marker{background:#0076de}.slds-wizard .slds-is-active a:focus .slds-wizard__marker,.slds-wizard .slds-is-active a:hover .slds-wizard__marker{background:#005fb2}.slds-wizard__list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;position:relative;margin:auto}.slds-wizard__item{-webkit-box-flex:2;-ms-flex:2 0 auto;flex:2 0 auto;text-align:center;width:0%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slds-wizard__item:first-child{text-align:left;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.slds-wizard__item:last-child{text-align:right;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.slds-wizard__item a:focus,.slds-wizard__item a:hover{outline:0;text-decoration:none}.slds-wizard__item a:focus .slds-wizard__marker,.slds-wizard__item a:hover .slds-wizard__marker{background:#d8dde6}.slds-wizard__link{display:block}.slds-wizard__marker{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--slds-g-color-neutral-base-95,#f3f3f3);display:inline-block;vertical-align:middle;z-index:1;position:relative}.slds-wizard__label{display:block;margin-top:.75rem}.slds-wizard__progress{position:absolute;left:0;top:.625rem;height:.25rem;display:block;width:100%;z-index:-1;background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-wizard__progress-bar{position:absolute;left:0;top:0;height:100%;background:#0076de;-webkit-transition:width .2s ease;transition:width .2s ease}.slds-path-coach{border:transparent 1px solid;border-top:0}.slds-path-coach.slds-is-expanded{border-color:var(--slds-g-color-border-base-1,#e5e5e5);padding-bottom:1rem}.slds-path-coach .slds-path__mark-current{background-color:var(--slds-g-color-brand-base-10,#001639);border-color:var(--slds-g-color-brand-base-10,#001639)}.slds-tabs--path,.slds-tabs_path{display:block;width:100%}.slds-tabs--path .slds-is-complete,.slds-tabs_path .slds-is-complete{background-color:var(--slds-g-color-success-base-60,#3ba755)}.slds-tabs--path .slds-is-complete .slds-tabs--path__stage,.slds-tabs--path .slds-is-complete .slds-tabs_path__stage,.slds-tabs_path .slds-is-complete .slds-tabs--path__stage,.slds-tabs_path .slds-is-complete .slds-tabs_path__stage{-webkit-transform:rotateX(0);transform:rotateX(0)}.slds-tabs--path .slds-is-complete .slds-tabs--path__title,.slds-tabs--path .slds-is-complete .slds-tabs_path__title,.slds-tabs_path .slds-is-complete .slds-tabs--path__title,.slds-tabs_path .slds-is-complete .slds-tabs_path__title{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.slds-tabs--path .slds-is-complete .slds-tabs--path__link,.slds-tabs--path .slds-is-complete .slds-tabs_path__link,.slds-tabs_path .slds-is-complete .slds-tabs--path__link,.slds-tabs_path .slds-is-complete .slds-tabs_path__link{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-tabs--path .slds-is-complete:hover,.slds-tabs_path .slds-is-complete:hover{background-color:var(--slds-g-color-success-base-50,#2e844a)}.slds-tabs--path .slds-is-complete:hover .slds-tabs--path__stage,.slds-tabs--path .slds-is-complete:hover .slds-tabs_path__stage,.slds-tabs_path .slds-is-complete:hover .slds-tabs--path__stage,.slds-tabs_path .slds-is-complete:hover .slds-tabs_path__stage{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.slds-tabs--path .slds-is-complete:hover .slds-tabs--path__title,.slds-tabs--path .slds-is-complete:hover .slds-tabs_path__title,.slds-tabs_path .slds-is-complete:hover .slds-tabs--path__title,.slds-tabs_path .slds-is-complete:hover .slds-tabs_path__title{-webkit-transform:rotateX(0);transform:rotateX(0)}.slds-tabs--path .slds-is-complete:hover .slds-tabs--path__link,.slds-tabs--path .slds-is-complete:hover .slds-tabs_path__link,.slds-tabs_path .slds-is-complete:hover .slds-tabs--path__link,.slds-tabs_path .slds-is-complete:hover .slds-tabs_path__link{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-tabs--path .slds-is-current,.slds-tabs_path .slds-is-current{background-color:var(--slds-g-color-palette-blue-30,#014486)}.slds-tabs--path .slds-is-current:hover,.slds-tabs_path .slds-is-current:hover{background-color:var(--slds-g-color-palette-blue-20,#032d60)}.slds-tabs--path .slds-is-current+.slds-is-incomplete:before,.slds-tabs_path .slds-is-current+.slds-is-incomplete:before{background-color:var(--slds-g-color-palette-blue-30,#014486)}.slds-tabs--path .slds-is-current:hover+.slds-is-incomplete:before,.slds-tabs_path .slds-is-current:hover+.slds-is-incomplete:before{background-color:var(--slds-g-color-palette-blue-20,#032d60)}.slds-tabs--path .slds-is-incomplete,.slds-tabs_path .slds-is-incomplete{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-tabs--path .slds-is-incomplete:hover,.slds-tabs_path .slds-is-incomplete:hover{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-tabs--path .slds-is-incomplete .slds-tabs--path__link,.slds-tabs--path .slds-is-incomplete .slds-tabs_path__link,.slds-tabs_path .slds-is-incomplete .slds-tabs--path__link,.slds-tabs_path .slds-is-incomplete .slds-tabs_path__link{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-tabs--path .slds-is-lost,.slds-tabs--path .slds-is-lost:hover,.slds-tabs_path .slds-is-lost,.slds-tabs_path .slds-is-lost:hover{background-color:var(--slds-g-color-error-base-50,#ea001e)}.slds-tabs--path .slds-is-current .slds-tabs--path__link,.slds-tabs--path .slds-is-current .slds-tabs_path__link,.slds-tabs--path .slds-is-lost .slds-tabs--path__link,.slds-tabs--path .slds-is-lost .slds-tabs_path__link,.slds-tabs_path .slds-is-current .slds-tabs--path__link,.slds-tabs_path .slds-is-current .slds-tabs_path__link,.slds-tabs_path .slds-is-lost .slds-tabs--path__link,.slds-tabs_path .slds-is-lost .slds-tabs_path__link{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-tabs--path .slds-is-active,.slds-tabs_path .slds-is-active{background-color:var(--slds-g-color-brand-base-10,#001639)}.slds-tabs--path .slds-is-active .slds-tabs--path__link,.slds-tabs--path .slds-is-active .slds-tabs_path__link,.slds-tabs_path .slds-is-active .slds-tabs--path__link,.slds-tabs_path .slds-is-active .slds-tabs_path__link{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-tabs--path .slds-is-active:hover,.slds-tabs_path .slds-is-active:hover{background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-tabs--path .slds-is-active:hover+.slds-tabs--path__item:before,.slds-tabs--path .slds-is-active:hover+.slds-tabs_path__item:before,.slds-tabs_path .slds-is-active:hover+.slds-tabs--path__item:before,.slds-tabs_path .slds-is-active:hover+.slds-tabs_path__item:before{background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-tabs--path .slds-is-active+.slds-tabs--path__item:before,.slds-tabs--path .slds-is-active+.slds-tabs_path__item:before,.slds-tabs_path .slds-is-active+.slds-tabs--path__item:before,.slds-tabs_path .slds-is-active+.slds-tabs_path__item:before{background-color:var(--slds-g-color-brand-base-10,#001639)}.slds-tabs--path .slds-is-active .slds-tabs--path__title,.slds-tabs--path .slds-is-active .slds-tabs_path__title,.slds-tabs--path .slds-is-won .slds-tabs--path__title,.slds-tabs--path .slds-is-won .slds-tabs_path__title,.slds-tabs_path .slds-is-active .slds-tabs--path__title,.slds-tabs_path .slds-is-active .slds-tabs_path__title,.slds-tabs_path .slds-is-won .slds-tabs--path__title,.slds-tabs_path .slds-is-won .slds-tabs_path__title{color:var(--slds-g-color-neutral-base-100,#fff);-webkit-transform:rotateX(0);transform:rotateX(0)}.slds-tabs--path .slds-is-active .slds-tabs--path__stage,.slds-tabs--path .slds-is-active .slds-tabs_path__stage,.slds-tabs--path .slds-is-won .slds-tabs--path__stage,.slds-tabs--path .slds-is-won .slds-tabs_path__stage,.slds-tabs_path .slds-is-active .slds-tabs--path__stage,.slds-tabs_path .slds-is-active .slds-tabs_path__stage,.slds-tabs_path .slds-is-won .slds-tabs--path__stage,.slds-tabs_path .slds-is-won .slds-tabs_path__stage{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.slds-tabs--path__nav,.slds-tabs_path__nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-tabs--path__item,.slds-tabs_path__item{overflow:hidden;position:relative;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;min-width:5rem;text-align:center;-webkit-perspective:500px;perspective:500px;-webkit-transition:background-color .1s linear,-webkit-transform .1s ease-in-out;transition:background-color .1s linear,-webkit-transform .1s ease-in-out;transition:transform .1s ease-in-out,background-color .1s linear;transition:transform .1s ease-in-out,background-color .1s linear,-webkit-transform .1s ease-in-out}.slds-tabs--path__item:first-child,.slds-tabs_path__item:first-child{border-radius:15rem 0 0 15rem}.slds-tabs--path__item:last-child,.slds-tabs_path__item:last-child{border-radius:0 15rem 15rem 0;border-right:0}.slds-tabs--path__item:before,.slds-tabs_path__item:before{content:"";display:block;position:absolute;top:2px;left:-1rem;width:calc(2rem - (2px * 2));height:calc(2rem - (2px * 2));border:2px solid var(--slds-g-color-neutral-base-100,#fff);border-left:0;border-bottom:0;background-clip:padding-box;-webkit-transform:scale3d(.8,1.1,1) rotate(45deg);transform:scale3d(.8,1.1,1) rotate(45deg);-webkit-transition:background-color .1s linear,-webkit-transform .1s ease-in-out;transition:background-color .1s linear,-webkit-transform .1s ease-in-out;transition:transform .1s ease-in-out,background-color .1s linear;transition:transform .1s ease-in-out,background-color .1s linear,-webkit-transform .1s ease-in-out}.slds-tabs--path__item:first-child:before,.slds-tabs_path__item:first-child:before{display:none}.slds-tabs--path__item+.slds-is-complete:before,.slds-tabs--path__item+.slds-is-current:before,.slds-tabs_path__item+.slds-is-complete:before,.slds-tabs_path__item+.slds-is-current:before{background-color:var(--slds-g-color-success-base-60,#3ba755)}.slds-tabs--path__item:hover+.slds-is-complete:before,.slds-tabs--path__item:hover+.slds-is-current:before,.slds-tabs_path__item:hover+.slds-is-complete:before,.slds-tabs_path__item:hover+.slds-is-current:before{background-color:var(--slds-g-color-success-base-50,#2e844a)}.slds-tabs--path__item+.slds-is-incomplete:before,.slds-tabs--path__item+.slds-is-lost:before,.slds-tabs_path__item+.slds-is-incomplete:before,.slds-tabs_path__item+.slds-is-lost:before{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-tabs--path__item:hover+.slds-is-incomplete:before,.slds-tabs--path__item:hover+.slds-is-lost:before,.slds-tabs_path__item:hover+.slds-is-incomplete:before,.slds-tabs_path__item:hover+.slds-is-lost:before{background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-tabs--path__title,.slds-tabs_path__title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slds-tabs--path__stage,.slds-tabs_path__stage{position:absolute;top:50%;left:.5rem;width:100%;margin-top:-.5rem;-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg);line-height:1}.slds-tabs--path__link,.slds-tabs_path__link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;padding:.25rem .25rem .25rem 1.25rem;line-height:1.5rem;text-decoration:none;cursor:pointer}.slds-tabs--path__link:hover,.slds-tabs_path__link:hover{text-decoration:none}.slds-tabs--path__link:focus,.slds-tabs_path__link:focus{outline:0}.slds-tabs--path__stage,.slds-tabs--path__title,.slds-tabs_path__stage,.slds-tabs_path__title{display:block;-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slds-tabs--path__content,.slds-tabs_path__content{position:relative;padding-left:1.5rem;padding-right:1rem}.slds-coach__keys{padding-left:.75rem}.slds-coach__guidance{padding-left:1.5rem;padding-bottom:.25rem;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-coach__guidance,.slds-coach__keys{margin-top:1rem;padding-top:1rem;padding-right:1.5rem}.slds-coach__item{border-top:var(--slds-g-color-border-base-1,#e5e5e5) 1px solid;padding:1rem 0;color:var(--slds-g-color-neutral-base-30,#444)}.slds-coach__value{border-top:var(--slds-g-color-border-base-1,#e5e5e5) 1px solid;padding-top:1rem;color:var(--slds-g-color-neutral-base-10,#181818)}.slds-path.slds-is-expanded{padding-bottom:.75rem;border-color:var(--slds-g-color-border-base-1,#e5e5e5)}.slds-path__track{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}@media (min-width:64em){.slds-path__track{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}.slds-path__track.slds-has-overflow .slds-path__scroller_inner{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;overflow:hidden}.slds-path__track.slds-has-overflow .slds-path__scroll-controls{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0;padding-left:.5rem}@media (pointer:coarse) and (hover:none){.slds-path__track.slds-has-overflow .slds-path__scroll-controls{display:none}}.slds-path__scroller{-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100%;overflow:hidden}.slds-path__scroll-controls{display:none}.slds-path__stage-name{display:block;font-weight:700;margin:.75rem 0}@media (min-width:48em){.slds-path__stage-name{margin:0}}@media (min-width:64em){.slds-path__stage-name{display:none}}.slds-path__scroller-container{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:100%;flex-basis:100%;overflow:hidden}@media (min-width:64em){.slds-path__scroller-container{-ms-flex-preferred-size:auto;flex-basis:auto}}@media (min-width:48em){.slds-path_has-coaching .slds-path__action{padding-left:2.75rem}}@media (min-width:64em){.slds-path_has-coaching .slds-path__action{padding-left:0}}.slds-path__action{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:100%;flex-basis:100%;margin-left:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}@media (min-width:48em){.slds-path__action{max-width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:1rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (min-width:64em){.slds-path__action{-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-align:normal;-ms-flex-align:normal;align-items:normal;margin-top:0;margin-left:1.5rem}}.slds-path__nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden}.slds-path__nav .slds-is-incomplete{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-path__nav .slds-is-incomplete:after,.slds-path__nav .slds-is-incomplete:before{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-path__nav .slds-is-incomplete .slds-path__link{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-path__nav .slds-is-incomplete:hover{background:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-path__nav .slds-is-incomplete:hover:after,.slds-path__nav .slds-is-incomplete:hover:before{background:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-path__nav .slds-is-complete{background:#3ba755}.slds-path__nav .slds-is-complete:after,.slds-path__nav .slds-is-complete:before{background:#3ba755}.slds-path__nav .slds-is-complete .slds-path__stage{-webkit-transform:translate(-50%,-50%) rotateX(0);transform:translate(-50%,-50%) rotateX(0)}.slds-path__nav .slds-is-complete .slds-path__title{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.slds-path__nav .slds-is-complete .slds-path__link{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-path__nav .slds-is-complete:hover{background:#2e844a}.slds-path__nav .slds-is-complete:hover:after,.slds-path__nav .slds-is-complete:hover:before{background:#2e844a}.slds-path__nav .slds-is-complete:hover .slds-path__stage{-webkit-transform:translate(-50%,-50%) rotateX(-180deg);transform:translate(-50%,-50%) rotateX(-180deg)}.slds-path__nav .slds-is-complete:hover .slds-path__title{-webkit-transform:rotateX(0);transform:rotateX(0)}.slds-path__nav .slds-is-current{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-path__nav .slds-is-current:after,.slds-path__nav .slds-is-current:before{background-color:var(--slds-g-color-neutral-base-100,#fff);background-image:-webkit-gradient(linear,left top,right top,from(#014486),color-stop(.125rem,#014486),color-stop(.125rem,transparent)),-webkit-gradient(linear,left top,right top,from(#014486),color-stop(.125rem,#014486),color-stop(.125rem,transparent)),-webkit-gradient(linear,left top,left bottom,from(#014486),color-stop(.125rem,#014486),color-stop(.125rem,transparent));background-image:linear-gradient(90deg,#014486,#014486 .125rem,transparent .125rem),linear-gradient(90deg,#014486,#014486 .125rem,transparent .125rem),linear-gradient(#014486,#014486 .125rem,transparent .125rem);background-repeat:no-repeat;background-size:.125rem 100%,.125rem 100%,100% .125rem}.slds-path__nav .slds-is-current:before{background-position:top right,top left,top left}.slds-path__nav .slds-is-current:after{background-position:top right,top left,bottom left}.slds-path__nav .slds-is-current:first-child{border:2px solid #014486;border-right:0}.slds-path__nav .slds-is-current:first-child:after,.slds-path__nav .slds-is-current:first-child:before{background-color:transparent;background-image:-webkit-gradient(linear,left top,right top,from(#014486),color-stop(.125rem,#014486),color-stop(.125rem,transparent));background-image:linear-gradient(90deg,#014486,#014486 .125rem,transparent .125rem)}.slds-path__nav .slds-is-current:first-child:before{top:-.125rem}.slds-path__nav .slds-is-current:first-child:after{bottom:-.125rem}.slds-path__nav .slds-is-current:first-child:hover{border-color:#032d60}.slds-path__nav .slds-is-current:first-child:hover:after,.slds-path__nav .slds-is-current:first-child:hover:before{background-image:-webkit-gradient(linear,left top,right top,from(#032d60),color-stop(.125rem,#032d60),color-stop(.125rem,transparent));background-image:linear-gradient(90deg,#032d60,#032d60 .125rem,transparent .125rem)}.slds-path__nav .slds-is-current:first-child .slds-path__link{height:calc(2rem - .25rem)}.slds-path__nav .slds-is-current .slds-path__link{color:#014486}.slds-path__nav .slds-is-current:hover:after,.slds-path__nav .slds-is-current:hover:before{background-image:-webkit-gradient(linear,left top,right top,from(#032d60),color-stop(.125rem,#032d60),color-stop(.125rem,transparent)),-webkit-gradient(linear,left top,right top,from(#032d60),color-stop(.125rem,#032d60),color-stop(.125rem,transparent)),-webkit-gradient(linear,left top,left bottom,from(#032d60),color-stop(.125rem,#032d60),color-stop(.125rem,transparent));background-image:linear-gradient(90deg,#032d60,#032d60 .125rem,transparent .125rem),linear-gradient(90deg,#032d60,#032d60 .125rem,transparent .125rem),linear-gradient(#032d60,#032d60 .125rem,transparent .125rem)}.slds-path__nav .slds-is-current:hover .slds-path__link{color:#032d60}.slds-path__nav .slds-is-active{background:#014486}.slds-path__nav .slds-is-active:after,.slds-path__nav .slds-is-active:before{background:#014486}.slds-path__nav .slds-is-active:first-child{border:0}.slds-path__nav .slds-is-active:first-child:after,.slds-path__nav .slds-is-active:first-child:before{background:#014486}.slds-path__nav .slds-is-active:first-child:before{top:0}.slds-path__nav .slds-is-active:first-child:after{bottom:0}.slds-path__nav .slds-is-active:first-child .slds-path__link{height:2rem}.slds-path__nav .slds-is-active .slds-path__stage{-webkit-transform:translateY(-50%) rotateX(-180deg);transform:translateY(-50%) rotateX(-180deg)}.slds-path__nav .slds-is-active .slds-path__title{-webkit-transform:rotateX(0);transform:rotateX(0)}.slds-path__nav .slds-is-active .slds-path__link{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-path__nav .slds-is-active:hover{background:#032d60}.slds-path__nav .slds-is-active:hover:after,.slds-path__nav .slds-is-active:hover:before{background:#032d60}.slds-path__nav .slds-is-active:hover .slds-path__link{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-path__nav .slds-is-lost{background:#ea001e}.slds-path__nav .slds-is-lost:after,.slds-path__nav .slds-is-lost:before,.slds-path__nav .slds-is-lost:hover,.slds-path__nav .slds-is-lost:hover:after,.slds-path__nav .slds-is-lost:hover:before{background:#ea001e}.slds-path__nav .slds-is-won{background:#2e844a}.slds-path__nav .slds-is-won:after,.slds-path__nav .slds-is-won:before,.slds-path__nav .slds-is-won:hover,.slds-path__nav .slds-is-won:hover:after,.slds-path__nav .slds-is-won:hover:before{background:#2e844a}.slds-path.slds-is-won .slds-path__item.slds-is-current{background:#2e844a}.slds-path.slds-is-won .slds-path__item.slds-is-current:after,.slds-path.slds-is-won .slds-path__item.slds-is-current:before,.slds-path.slds-is-won .slds-path__item.slds-is-current:hover,.slds-path.slds-is-won .slds-path__item.slds-is-current:hover:after,.slds-path.slds-is-won .slds-path__item.slds-is-current:hover:before{background:#2e844a}.slds-path.slds-is-lost .slds-path__item.slds-is-current{background:#ea001e}.slds-path.slds-is-lost .slds-path__item.slds-is-current:after,.slds-path.slds-is-lost .slds-path__item.slds-is-current:before,.slds-path.slds-is-lost .slds-path__item.slds-is-current:hover,.slds-path.slds-is-lost .slds-path__item.slds-is-current:hover:after,.slds-path.slds-is-lost .slds-path__item.slds-is-current:hover:before{background:#ea001e}.slds-path__item{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:.375rem;margin-right:.4375rem;min-width:5rem;text-align:center}.slds-path__item:after,.slds-path__item:before{content:"";position:absolute;left:-.25rem;right:-.3125rem;cursor:pointer}.slds-path__item:before{top:0;height:calc((2rem / 2) + .0625rem);-webkit-transform:skew(28deg) translate3d(0,0,0);transform:skew(28deg) translate3d(0,0,0)}.slds-path__item:after{bottom:0;height:1rem;-webkit-transform:skew(-30deg) translate3d(0,0,0);transform:skew(-30deg) translate3d(0,0,0)}.slds-path__item:first-child{margin-left:0;border-top-left-radius:2rem;border-bottom-left-radius:2rem;padding-left:.625rem}.slds-path__item:first-child:after,.slds-path__item:first-child:before{left:1.125rem}.slds-path__item:last-child{margin-right:0;border-top-right-radius:2rem;border-bottom-right-radius:2rem;padding-right:.625rem}.slds-path__item:last-child .slds-path__link{padding-left:.25rem}.slds-path__item:last-child:after,.slds-path__item:last-child:before{right:.625rem}[dir=rtl] .slds-path__item:before{-webkit-transform:skew(-30deg) translate3d(0,0,0);transform:skew(-30deg) translate3d(0,0,0)}[dir=rtl] .slds-path__item:after{-webkit-transform:skew(28deg) translate3d(0,0,0);transform:skew(28deg) translate3d(0,0,0)}.slds-path__title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slds-path__stage{position:absolute;top:50%;/*! @noflip */left:50%;-webkit-transform:translate(-50%,-50%) rotateX(-180deg);transform:translate(-50%,-50%) rotateX(-180deg)}.slds-path__link{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:2rem;padding:.5rem .25rem .5rem .5rem;text-decoration:none;z-index:5;cursor:pointer}.slds-path__link:hover{text-decoration:none}.slds-path__link:focus{outline:0}.slds-path__stage,.slds-path__title{display:block;-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slds-path .slds-path__trigger{margin-right:.75rem;-webkit-transition:.4s -webkit-transform ease-in-out;transition:.4s -webkit-transform ease-in-out;transition:.4s transform ease-in-out;transition:.4s transform ease-in-out,.4s -webkit-transform ease-in-out;display:none}@media (min-width:48em){.slds-path .slds-path__trigger{display:block}}.slds-flip--vertical,.slds-flip_vertical{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.slds-flip--horizontal,.slds-flip_horizontal{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.slds-path__trigger_open{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[dir=rtl] .slds-path__trigger_open{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.slds-path .slds-path__mark-complete{width:100%;min-width:13rem;margin-right:0}@media (min-width:48em){.slds-path .slds-path__mark-complete{width:auto}}.slds-path__mark-current{border-color:#0176d3;background-color:#0176d3}.slds-path__mark-current:focus,.slds-path__mark-current:hover{background-color:#014486}.slds-path__guidance{margin-right:.5rem;padding-bottom:.25rem;background-color:var(--slds-g-color-neutral-base-100,#fff)}@media (min-width:48em){.slds-path__guidance{margin-top:0}}.slds-path__guidance,.slds-path__keys{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;margin-top:1rem;padding-left:0;padding-right:0}@media (min-width:48em){.slds-path__guidance,.slds-path__keys{-ms-flex-preferred-size:50%;flex-basis:50%}}@media (min-width:48em){.slds-path__keys{padding-right:.75rem}}.slds-path__coach{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}@media (min-width:48em){.slds-path__coach{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}.slds-path__coach-title{font-size:.875rem;font-weight:700;margin-bottom:.5rem;padding-bottom:.5rem;line-height:1.125}.slds-path__coach-edit{border:0;padding:0;line-height:inherit}.slds-path__guidance-content{padding-top:.25rem}.slds-path__trigger-coaching-content{width:100%;margin-top:.75rem}@media (min-width:48em){.slds-path__trigger-coaching-content{display:none}}.slds-path .slds-path__trigger-coaching-content{margin-left:0}.slds-region_medium .slds-path_has-coaching .slds-path__action{padding-left:2.75rem}.slds-region_medium .slds-path__scroller-container{-ms-flex-preferred-size:100%;flex-basis:100%}.slds-region_medium .slds-path__track{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-region_medium .slds-path__action{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:100%;flex-basis:100%;margin-left:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:1rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.slds-region_medium .slds-path__stage-name,.slds-region_medium .slds-path__trigger{display:block}.slds-region_medium .slds-path__stage-name{margin:0}.slds-region_medium .slds-path__trigger-coaching-content{display:none}.slds-region_medium .slds-path__mark-complete{width:auto}.slds-region_medium .slds-path__coach{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.slds-region_medium .slds-path__guidance,.slds-region_medium .slds-path__keys{-ms-flex-preferred-size:50%;flex-basis:50%}.slds-region_medium .slds-path__keys{padding-right:.75rem}.slds-region_small .slds-path__scroller-container{-ms-flex-preferred-size:100%;flex-basis:100%}.slds-region_small .slds-path__coach,.slds-region_small .slds-path__track{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-region_small .slds-path__stage-name{display:block;margin:.75rem 0}.slds-region_small .slds-path__action{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:100%;flex-basis:100%;margin-left:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:0}.slds-region_small .slds-path_has-coaching .slds-path__action{padding-left:0}.slds-region_small .slds-path__mark-complete{width:100%}.slds-region_small .slds-path__guidance,.slds-region_small .slds-path__keys{-ms-flex-preferred-size:100%;flex-basis:100%;padding-left:0;padding-right:0}.slds-region_small .slds-path__guidance{margin-top:1rem}.slds-region_small .slds-path__trigger{display:none}.slds-region_small .slds-path__trigger-coaching-content{display:inline-block}.slds-progress-bar{-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;height:.5rem;background:var(--slds-g-color-neutral-base-80,#c9c9c9);border:0;position:relative}.slds-progress-bar--x-small,.slds-progress-bar_x-small{height:.125rem}.slds-progress-bar--small,.slds-progress-bar_small{height:.25rem}.slds-progress-bar--medium,.slds-progress-bar_medium{height:.5rem}.slds-progress-bar--large,.slds-progress-bar_large{height:.75rem}.slds-progress-bar--circular,.slds-progress-bar_circular{border-radius:.5rem}.slds-progress-bar--circular .slds-progress-bar__value,.slds-progress-bar_circular .slds-progress-bar__value{border-radius:.5rem}.slds-progress-bar__value{display:block;background:var(--slds-g-color-brand-base-60,#1ab9ff);height:100%}.slds-progress-bar__value_success{background:var(--slds-g-color-success-base-50,#2e844a)}.slds-progress-bar_vertical{height:100%;width:.5rem}.slds-progress-bar_vertical.slds-progress-bar_x-small{width:.125rem}.slds-progress-bar_vertical.slds-progress-bar_small{width:.25rem}.slds-progress-bar_vertical.slds-progress-bar_medium{width:.5rem}.slds-progress-bar_vertical.slds-progress-bar_large{width:.75rem}.slds-progress{position:relative;max-width:70%;width:100%;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:auto}.slds-progress .slds-progress-bar{position:absolute;top:50%;margin-top:-.0625rem}.slds-progress--shade .slds-progress__item.slds-is-active .slds-progress__marker,.slds-progress--shade .slds-progress__item.slds-is-completed .slds-progress__marker,.slds-progress_shade .slds-progress__item.slds-is-active .slds-progress__marker,.slds-progress_shade .slds-progress__item.slds-is-completed .slds-progress__marker{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-progress--shade .slds-progress__item.slds-is-completed .slds-progress__marker--icon,.slds-progress--shade .slds-progress__item.slds-is-completed .slds-progress__marker_icon,.slds-progress_shade .slds-progress__item.slds-is-completed .slds-progress__marker--icon,.slds-progress_shade .slds-progress__item.slds-is-completed .slds-progress__marker_icon{border-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-progress--shade .slds-progress__item.slds-is-active .slds-progress__marker,.slds-progress_shade .slds-progress__item.slds-is-active .slds-progress__marker{-webkit-box-shadow:var(--slds-g-color-neutral-base-95,#f3f3f3) 0 0 0 4px;box-shadow:var(--slds-g-color-neutral-base-95,#f3f3f3) 0 0 0 4px}.slds-progress--shade .slds-progress__item.slds-is-active .slds-progress__marker:focus,.slds-progress_shade .slds-progress__item.slds-is-active .slds-progress__marker:focus{-webkit-box-shadow:var(--slds-g-color-neutral-base-95,#f3f3f3) 0 0 0 4px,0 0 3px 4px var(--slds-g-color-brand-base-50,#014486);box-shadow:var(--slds-g-color-neutral-base-95,#f3f3f3) 0 0 0 4px,0 0 3px 4px var(--slds-g-color-brand-base-50,#014486)}.slds-progress--shade .slds-progress__item.slds-has-error .slds-progress__marker,.slds-progress--shade .slds-progress__item.slds-has-error .slds-progress__marker:focus,.slds-progress--shade .slds-progress__item.slds-has-error .slds-progress__marker:hover,.slds-progress_shade .slds-progress__item.slds-has-error .slds-progress__marker,.slds-progress_shade .slds-progress__item.slds-has-error .slds-progress__marker:focus,.slds-progress_shade .slds-progress__item.slds-has-error .slds-progress__marker:hover{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-progress--shade .slds-progress__item .slds-progress__marker,.slds-progress_shade .slds-progress__item .slds-progress__marker{border-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-progress__list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;margin:auto;position:relative;z-index:1}.slds-progress__item{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-item-align:center;align-self:center}.slds-progress__item.slds-is-active .slds-progress__marker,.slds-progress__item.slds-is-completed .slds-progress__marker{background:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-brand-base-50,#1b96ff)}.slds-progress__item.slds-is-completed .slds-progress__marker--icon,.slds-progress__item.slds-is-completed .slds-progress__marker_icon{border-color:var(--slds-g-color-neutral-base-100,#fff);color:var(--slds-g-color-brand-base-60,#1ab9ff)}.slds-progress__item.slds-is-active .slds-progress__marker{-webkit-box-shadow:var(--slds-g-color-neutral-base-100,#fff) 0 0 0 4px;box-shadow:var(--slds-g-color-neutral-base-100,#fff) 0 0 0 4px}.slds-progress__item.slds-is-active .slds-progress__marker:focus,.slds-progress__item.slds-is-active .slds-progress__marker:hover{border-color:var(--slds-g-color-brand-base-50,#0176d3)}.slds-progress__item.slds-is-active .slds-progress__marker:focus{-webkit-box-shadow:var(--slds-g-color-neutral-base-100,#fff) 0 0 0 4px,0 0 3px 4px var(--slds-g-color-brand-base-50,#014486);box-shadow:var(--slds-g-color-neutral-base-100,#fff) 0 0 0 4px,0 0 3px 4px var(--slds-g-color-brand-base-50,#014486)}.slds-progress__item.slds-has-error .slds-progress__marker,.slds-progress__item.slds-has-error .slds-progress__marker:focus,.slds-progress__item.slds-has-error .slds-progress__marker:hover{color:var(--slds-g-color-error-base-40,#ea001e);background:var(--slds-g-color-neutral-base-100,#fff);border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.slds-progress__item.slds-has-error .slds-progress__marker:focus{-webkit-box-shadow:0 0 3px 0 var(--slds-g-color-error-base-40,#ea001e);box-shadow:0 0 3px 0 var(--slds-g-color-error-base-40,#ea001e)}.slds-progress__marker{width:1rem;height:1rem;position:relative;border-radius:50%;background:var(--slds-g-color-neutral-base-80,#c9c9c9);border:4px solid var(--slds-g-color-neutral-base-100,#fff);vertical-align:middle}.slds-progress__marker--icon,.slds-progress__marker_icon{width:auto;height:auto}.slds-progress_vertical{max-width:none}.slds-progress_vertical .slds-progress__list{display:block}.slds-progress_vertical .slds-progress__item{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:left;align-self:left;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0}.slds-progress_vertical .slds-progress__item:after,.slds-progress_vertical .slds-progress__item:before{content:"";position:absolute;left:calc((1rem / 2) - 1px);width:2px;background-color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-progress_vertical .slds-progress__item:before{top:0;bottom:50%}.slds-progress_vertical .slds-progress__item:after{top:50%;bottom:0}.slds-progress_vertical .slds-progress__item:first-child:before,.slds-progress_vertical .slds-progress__item:last-child:after{display:none}.slds-progress_vertical .slds-progress__item.slds-has-error:before,.slds-progress_vertical .slds-progress__item.slds-is-active:before,.slds-progress_vertical .slds-progress__item.slds-is-completed:after,.slds-progress_vertical .slds-progress__item.slds-is-completed:before{background-color:var(--slds-g-color-brand-base-60,#1ab9ff)}.slds-progress_vertical .slds-progress__item_content{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:.75rem;padding-bottom:.75rem}.slds-progress_vertical .slds-progress__list-bordered .slds-progress__item:not(:last-child) .slds-progress__item_content{border-bottom:1px var(--slds-g-color-border-base-1,#e5e5e5) solid}.slds-progress_vertical .slds-progress__marker{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:1rem;min-width:1rem;z-index:5}.slds-progress_vertical .slds-progress__marker_icon{border-right:0;border-left:0}.slds-progress_vertical .slds-progress__item.slds-is-completed .slds-progress__marker_icon svg{fill:var(--slds-g-color-brand-base-60,#1ab9ff)}.slds-progress_vertical .slds-progress__item.slds-is-completed .slds-progress__marker_icon-success svg{fill:var(--slds-g-color-success-base-50,#2e844a)}.slds-progress_vertical .slds-progress__item.slds-has-error .slds-progress__marker_icon svg{fill:var(--slds-g-color-error-base-40,#ea001e)}.slds-progress_success .slds-progress__item.slds-has-error:before,.slds-progress_success .slds-progress__item.slds-is-active:before,.slds-progress_success .slds-progress__item.slds-is-completed:after,.slds-progress_success .slds-progress__item.slds-is-completed:before{opacity:.3;background-color:var(--slds-g-color-success-base-50,#2e844a)}.slds-progress-ring{position:relative;display:inline-block;height:1.5rem;width:1.5rem;border-radius:1.5rem;background:var(--slds-g-color-border-base-1,#e5e5e5)}.slds-progress-ring .slds-icon_container{line-height:0}.slds-progress-ring__progress{position:absolute;top:0;left:0;height:100%;width:100%;-webkit-transform:scale(-1,1) rotate(-90deg);transform:scale(-1,1) rotate(-90deg)}.slds-progress-ring__progress svg{width:100%}.slds-progress-ring__path{fill:var(--slds-g-color-success-base-50,#2e844a)}.slds-progress-ring__progress-head{position:absolute;height:calc(100% + .375rem);width:calc(100% + .375rem);top:-.1875rem;left:-.1875rem;-webkit-transform:scale(-1,1) rotate(-90deg);transform:scale(-1,1) rotate(-90deg)}.slds-progress-ring__progress-head svg{width:100%}.slds-progress-ring__content{position:absolute;top:.1875rem;right:.1875rem;bottom:.1875rem;left:.1875rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:1.5rem;background:var(--slds-g-color-neutral-base-100,#fff)}.slds-progress-ring__content .slds-icon{width:.75rem}.slds-progress-ring_warning .slds-progress-ring__content{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-progress-ring_warning .slds-icon,.slds-progress-ring_warning .slds-progress-ring__path{fill:var(--slds-g-color-warning-base-60,#fe9339)}.slds-progress-ring_expired .slds-progress-ring__content{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-progress-ring_expired .slds-icon,.slds-progress-ring_expired .slds-progress-ring__path{fill:var(--slds-g-color-error-base-40,#fe5c4c)}.slds-progress-ring_complete .slds-icon{fill:var(--slds-g-color-neutral-base-100,#fff)}.slds-progress-ring_complete .slds-progress-ring__path{fill:var(--slds-g-color-success-base-50,#2e844a)}.slds-progress-ring_complete .slds-progress-ring__content{background:var(--slds-g-color-success-base-50,#2e844a)}.slds-progress-ring_large{height:2rem;width:2rem}.slds-progress-ring_large .slds-icon{width:1rem}.slds-progress-ring_active-step .slds-progress-ring__path{fill:var(--slds-g-color-brand-base-60,#1b96ff)}.slds-rich-text-editor{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem}.slds-rich-text-editor_toolbar-only{border:0;border-radius:0}.slds-rich-text-editor__toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;white-space:nowrap;position:relative;padding:.5rem .5rem .25rem .5rem;border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-rich-text-editor__col{-ms-flex-item-align:center;align-self:center}.slds-rich-text-editor__col+.slds-rich-text-editor__col{margin-left:.5rem}.slds-rich-text-editor__col_grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.slds-rich-text-editor__toolbar_bottom{border-radius:0 0 .25rem .25rem;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:0}.slds-rich-text-editor__toolbar_detached{border-radius:0;border-top:0;border-bottom:0}.slds-rich-text-editor .slds-button-group-list{margin-right:.25rem;margin-bottom:.25rem;margin-left:0}.slds-rich-text-editor .slds-button-group-list:last-child{margin-right:0}.slds-rich-text-editor__select{margin-right:.25rem;margin-bottom:.25rem}.slds-rich-text-editor__select_x-small{max-width:12rem;width:auto}.slds-rich-text-editor__select_xx-small{max-width:6rem;width:auto}.slds-region_narrow .slds-combobox{max-width:11rem}.slds-rich-text-editor.slds-has-focus{border-color:var(--slds-g-color-brand-base-60,#1b96ff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-rich-text-editor.slds-has-error{border:2px solid var(--slds-g-color-error-base-40,#ea001e)}.slds-rich-text-editor.slds-has-error .slds-input{border-color:var(--slds-g-color-border-base-4,#c9c9c9);-webkit-box-shadow:none;box-shadow:none}.slds-rich-text-editor.slds-has-error .slds-form-element__help{background:var(--slds-g-color-neutral-base-100,#fff);margin-top:0;border-radius:0 0 .125rem .125rem}.slds-rich-text-area__content{overflow-y:auto;min-height:var(--slds-c-textarea-sizing-min-height,var(--sds-c-textarea-sizing-min-height,6rem));max-height:var(--slds-c-textarea-sizing-max-height,var(--sds-c-textarea-sizing-max-height,15rem));padding:1rem;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-picklist__label[disabled] .slds-icon{fill:var(--slds-g-color-neutral-base-80,#c9c9c9)}[contenteditable]:focus{outline:0}.slds-rich-text-editor__textarea:last-child .slds-rich-text-area__content{border-radius:0 0 .25rem .25rem}.slds-rich-text-editor__textarea:first-child .slds-rich-text-area__content{border-radius:.25rem .25rem 0 0}.slds-rich-text-editor__textarea .ql-editor{white-space:pre-wrap;word-wrap:break-word;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.slds-rich-text-editor__textarea .ql-editor.ql-blank:before{color:var(--slds-g-color-neutral-base-10,#54698d);content:attr(data-placeholder);pointer-events:none;position:absolute}.slds-rich-text-editor__textarea .ql-editor a{text-decoration:underline}.slds-rich-text-editor__textarea .overflow-menu{z-index:2}.slds-rich-text-editor__textarea .ql-active{background-color:var(--slds-g-color-neutral-base-95,#eef1f6)}.slds-rich-text-editor__textarea .ql-clipboard{position:absolute!important;margin:-1px!important;border:0!important;padding:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}.slds-rich-text-editor__textarea blockquote,.slds-rich-text-editor__textarea h1,.slds-rich-text-editor__textarea h2,.slds-rich-text-editor__textarea h3,.slds-rich-text-editor__textarea h4,.slds-rich-text-editor__textarea h5,.slds-rich-text-editor__textarea h6,.slds-rich-text-editor__textarea ol,.slds-rich-text-editor__textarea p,.slds-rich-text-editor__textarea pre,.slds-rich-text-editor__textarea ul{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.slds-rich-text-editor__textarea ol,.slds-rich-text-editor__textarea ul{margin:0;padding:0;padding-left:1.5em}.slds-rich-text-editor__textarea ol>li{list-style-type:none}.slds-rich-text-editor__textarea ul>li{list-style-type:none}.slds-rich-text-editor__textarea ul>li:before{content:"•";vertical-align:middle;display:inline-block;line-height:normal}.slds-rich-text-editor__textarea ul[data-checked=false],.slds-rich-text-editor__textarea ul[data-checked=true]{pointer-events:none}.slds-rich-text-editor__textarea ul[data-checked=true]>li:before{color:var(--slds-g-color-neutral-base-50,#777);cursor:pointer;pointer-events:all}.slds-rich-text-editor__textarea ul[data-checked=false]>li:before{color:var(--slds-g-color-neutral-base-50,#777);cursor:pointer;pointer-events:all}.slds-rich-text-editor__textarea ul[data-checked=true]>li:before{content:"☑"}.slds-rich-text-editor__textarea ul[data-checked=false]>li:before{content:"☐"}.slds-rich-text-editor__textarea li:before{display:inline-block;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.slds-rich-text-editor__textarea li:not(.ql-direction-rtl):before{margin-left:-1.5em}.slds-rich-text-editor__textarea ol li,.slds-rich-text-editor__textarea ul li{padding-left:1.5em}.slds-rich-text-editor__textarea ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-num}.slds-rich-text-editor__textarea ol li:before{content:counter(list-num,decimal) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-1{counter-increment:list-1;counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-2{counter-increment:list-2;counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-3{counter-increment:list-3;counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-4{counter-increment:list-4;counter-reset:list-5 list-6 list-7 list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-5{counter-increment:list-5;counter-reset:list-6 list-7 list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-6{counter-increment:list-6;counter-reset:list-7 list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-7{counter-increment:list-7;counter-reset:list-8 list-9}.slds-rich-text-editor__textarea ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-8{counter-increment:list-8;counter-reset:list-9}.slds-rich-text-editor__textarea ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.slds-rich-text-editor__textarea ol li.ql-indent-9{counter-increment:list-9}.slds-rich-text-editor__textarea ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.slds-rich-text-editor__textarea ul li.ql-indent-1:before{content:"◦"}.slds-rich-text-editor__textarea ul li.ql-indent-2:before,.slds-rich-text-editor__textarea ul li.ql-indent-3:before,.slds-rich-text-editor__textarea ul li.ql-indent-4:before,.slds-rich-text-editor__textarea ul li.ql-indent-5:before,.slds-rich-text-editor__textarea ul li.ql-indent-6:before,.slds-rich-text-editor__textarea ul li.ql-indent-7:before,.slds-rich-text-editor__textarea ul li.ql-indent-8:before{content:"▪"}.slds-rich-text-editor__textarea li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.slds-rich-text-editor__textarea li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.slds-rich-text-editor__textarea li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.slds-rich-text-editor__textarea li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.slds-rich-text-editor__textarea li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.slds-rich-text-editor__textarea li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.slds-rich-text-editor__textarea li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.slds-rich-text-editor__textarea li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.slds-rich-text-editor__textarea li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.slds-rich-text-editor__textarea li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.slds-rich-text-editor__textarea li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.slds-rich-text-editor__textarea li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.slds-rich-text-editor__textarea li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.slds-rich-text-editor__textarea li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.slds-rich-text-editor__textarea li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.slds-rich-text-editor__textarea li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.slds-rich-text-editor__textarea li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.slds-rich-text-editor__textarea li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.slds-rich-text-editor__output,.slds-rich-text-editor__textarea{line-height:1.5;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual}.slds-rich-text-editor__output h1,.slds-rich-text-editor__textarea h1{font-size:1.5rem}.slds-rich-text-editor__output h2,.slds-rich-text-editor__textarea h2{font-size:1.125rem;font-weight:700}.slds-rich-text-editor__output h3,.slds-rich-text-editor__textarea h3{font-size:1.125rem}.slds-rich-text-editor__output h4,.slds-rich-text-editor__textarea h4{font-size:.875rem;font-weight:700}.slds-rich-text-editor__output h5,.slds-rich-text-editor__textarea h5{font-size:.875rem}.slds-rich-text-editor__output h6,.slds-rich-text-editor__textarea h6{font-size:.75rem;font-weight:700}.slds-rich-text-editor__output dl,.slds-rich-text-editor__output h1,.slds-rich-text-editor__output h2,.slds-rich-text-editor__output h3,.slds-rich-text-editor__output h4,.slds-rich-text-editor__output h5,.slds-rich-text-editor__output h6,.slds-rich-text-editor__output img,.slds-rich-text-editor__output ol,.slds-rich-text-editor__output ul,.slds-rich-text-editor__textarea dl,.slds-rich-text-editor__textarea h1,.slds-rich-text-editor__textarea h2,.slds-rich-text-editor__textarea h3,.slds-rich-text-editor__textarea h4,.slds-rich-text-editor__textarea h5,.slds-rich-text-editor__textarea h6,.slds-rich-text-editor__textarea img,.slds-rich-text-editor__textarea ol,.slds-rich-text-editor__textarea ul{margin-bottom:.75rem}.slds-rich-text-editor__output blockquote,.slds-rich-text-editor__textarea blockquote{margin:2rem 1.5rem}.slds-rich-text-editor__output ins,.slds-rich-text-editor__textarea ins{color:var(--slds-g-color-success-base-50,#2e844a);text-decoration:underline}.slds-rich-text-editor__output del,.slds-rich-text-editor__textarea del{color:var(--slds-g-color-error-base-30,#ea001e);text-decoration:line-through}.slds-rich-text-editor__output ul,.slds-rich-text-editor__textarea ul{margin-left:1.5rem;list-style:disc}.slds-rich-text-editor__output ul ul,.slds-rich-text-editor__textarea ul ul{list-style:circle;margin-bottom:0}.slds-rich-text-editor__output ul ul ul,.slds-rich-text-editor__textarea ul ul ul{list-style:square}.slds-rich-text-editor__output ul ul ul ul,.slds-rich-text-editor__textarea ul ul ul ul{list-style:disc}.slds-rich-text-editor__output ul ul ul ul ul,.slds-rich-text-editor__textarea ul ul ul ul ul{list-style:circle}.slds-rich-text-editor__output ul ol,.slds-rich-text-editor__textarea ul ol{margin-left:1.5rem;list-style:decimal;margin-bottom:0}.slds-rich-text-editor__output ol,.slds-rich-text-editor__textarea ol{margin-left:1.5rem;list-style:decimal}.slds-rich-text-editor__output ol ol,.slds-rich-text-editor__textarea ol ol{list-style:lower-alpha;margin-bottom:0}.slds-rich-text-editor__output ol ol ol,.slds-rich-text-editor__textarea ol ol ol{list-style:lower-roman}.slds-rich-text-editor__output ol ol ol ol,.slds-rich-text-editor__textarea ol ol ol ol{list-style:decimal}.slds-rich-text-editor__output ol ol ol ol ol,.slds-rich-text-editor__textarea ol ol ol ol ol{list-style:lower-alpha}.slds-rich-text-editor__output ol ul,.slds-rich-text-editor__textarea ol ul{margin-left:1.5rem;list-style:disc;margin-bottom:0}.slds-rich-text-editor__output dd,.slds-rich-text-editor__textarea dd{margin-left:2.5rem}.slds-rich-text-editor__output abbr[title],.slds-rich-text-editor__output acronym[title],.slds-rich-text-editor__textarea abbr[title],.slds-rich-text-editor__textarea acronym[title]{border-bottom:1px dotted;cursor:help}.slds-rich-text-editor__output table,.slds-rich-text-editor__textarea table{overflow-wrap:normal;word-wrap:normal;word-break:normal;width:auto}.slds-rich-text-editor__output table caption,.slds-rich-text-editor__textarea table caption{text-align:center}.slds-rich-text-editor__output td,.slds-rich-text-editor__output th,.slds-rich-text-editor__textarea td,.slds-rich-text-editor__textarea th{padding:.5rem}.slds-rich-text-editor__output .sans-serif,.slds-rich-text-editor__textarea .sans-serif{font-family:sans-serif}.slds-rich-text-editor__output .courier,.slds-rich-text-editor__textarea .courier{font-family:courier}.slds-rich-text-editor__output .verdana,.slds-rich-text-editor__textarea .verdana{font-family:verdana}.slds-rich-text-editor__output .tahoma,.slds-rich-text-editor__textarea .tahoma{font-family:tahoma}.slds-rich-text-editor__output .garamond,.slds-rich-text-editor__textarea .garamond{font-family:garamond}.slds-rich-text-editor__output .serif,.slds-rich-text-editor__textarea .serif{font-family:serif}.slds-rich-text-editor__output .ql-indent-1:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.slds-rich-text-editor__output .ql-indent-1.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.slds-rich-text-editor__output .ql-indent-2:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.slds-rich-text-editor__output .ql-indent-2.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.slds-rich-text-editor__output .ql-indent-3:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.slds-rich-text-editor__output .ql-indent-3.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.slds-rich-text-editor__output .ql-indent-4:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.slds-rich-text-editor__output .ql-indent-4.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.slds-rich-text-editor__output .ql-indent-5:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.slds-rich-text-editor__output .ql-indent-5.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.slds-rich-text-editor__output .ql-indent-6:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.slds-rich-text-editor__output .ql-indent-6.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.slds-rich-text-editor__output .ql-indent-7:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.slds-rich-text-editor__output .ql-indent-7.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.slds-rich-text-editor__output .ql-indent-8:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.slds-rich-text-editor__output .ql-indent-8.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.slds-rich-text-editor__output .ql-indent-9:not(.ql-direction-rtl),.slds-rich-text-editor__textarea .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.slds-rich-text-editor__output .ql-indent-9.ql-direction-rtl.ql-align-right,.slds-rich-text-editor__textarea .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.slds-spinner_container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9050;background-color:rgba(255,255,255,.75);visibility:visible;opacity:1;-webkit-transition:opacity .2s ease,visibility 0s;transition:opacity .2s ease,visibility 0s;-webkit-transition-delay:0s,.3s;transition-delay:0s,.3s}.slds-spinner_container.is-hidden{visibility:hidden;opacity:0;-webkit-transition:opacity .2s ease,visibility 0s;transition:opacity .2s ease,visibility 0s;-webkit-transition-delay:0s,0s;transition-delay:0s,0s}.slds-spinner_container.hide{display:none}.slds-spinner{position:absolute;top:50%;/*! @noflip */left:50%;z-index:9051;-webkit-transform:translate(-50%,-50%) rotate(90deg);transform:translate(-50%,-50%) rotate(90deg)}.slds-spinner_inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;-webkit-transform:none;transform:none}.slds-spinner,.slds-spinner__dot-a,.slds-spinner__dot-b{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;will-change:transform}.slds-spinner__dot-a,.slds-spinner__dot-b{position:absolute;top:0;left:0;width:100%}.slds-spinner:after,.slds-spinner:before,.slds-spinner__dot-a:after,.slds-spinner__dot-a:before,.slds-spinner__dot-b:after,.slds-spinner__dot-b:before{content:"";position:absolute;background:var(--slds-g-color-neutral-base-50,#aeaeae);border-radius:50%;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slds-spinner__dot-a{-webkit-transform:rotate(60deg);transform:rotate(60deg)}.slds-spinner__dot-b{-webkit-transform:rotate(120deg);transform:rotate(120deg)}.slds-spinner:before{-webkit-animation-delay:-.083s;animation-delay:-.083s}.slds-spinner__dot-a:before{-webkit-animation-delay:.083s;animation-delay:.083s}.slds-spinner__dot-b:before{-webkit-animation-delay:250ms;animation-delay:250ms}.slds-spinner:after{-webkit-animation-delay:.416s;animation-delay:.416s}.slds-spinner__dot-a:after{-webkit-animation-delay:.583s;animation-delay:.583s}.slds-spinner__dot-b:after{-webkit-animation-delay:750ms;animation-delay:750ms}.slds-spinner_delayed:before{-webkit-animation-delay:.216s;animation-delay:.216s}.slds-spinner_delayed .slds-spinner__dot-a:before{-webkit-animation-delay:.383s;animation-delay:.383s}.slds-spinner_delayed .slds-spinner__dot-b:before{-webkit-animation-delay:550ms;animation-delay:550ms}.slds-spinner_delayed:after{-webkit-animation-delay:.716s;animation-delay:.716s}.slds-spinner_delayed .slds-spinner__dot-a:after{-webkit-animation-delay:.883s;animation-delay:.883s}.slds-spinner_delayed .slds-spinner__dot-b:after{-webkit-animation-delay:1.05s;animation-delay:1.05s}.slds-spinner--brand .slds-spinner__dot-a:after,.slds-spinner--brand .slds-spinner__dot-a:before,.slds-spinner--brand .slds-spinner__dot-b:after,.slds-spinner--brand .slds-spinner__dot-b:before,.slds-spinner--brand.slds-spinner:after,.slds-spinner--brand.slds-spinner:before,.slds-spinner_brand .slds-spinner__dot-a:after,.slds-spinner_brand .slds-spinner__dot-a:before,.slds-spinner_brand .slds-spinner__dot-b:after,.slds-spinner_brand .slds-spinner__dot-b:before,.slds-spinner_brand.slds-spinner:after,.slds-spinner_brand.slds-spinner:before{background-color:#1b96ff}.slds-spinner--inverse .slds-spinner__dot-a:after,.slds-spinner--inverse .slds-spinner__dot-a:before,.slds-spinner--inverse .slds-spinner__dot-b:after,.slds-spinner--inverse .slds-spinner__dot-b:before,.slds-spinner--inverse.slds-spinner:after,.slds-spinner--inverse.slds-spinner:before,.slds-spinner_inverse .slds-spinner__dot-a:after,.slds-spinner_inverse .slds-spinner__dot-a:before,.slds-spinner_inverse .slds-spinner__dot-b:after,.slds-spinner_inverse .slds-spinner__dot-b:before,.slds-spinner_inverse.slds-spinner:after,.slds-spinner_inverse.slds-spinner:before{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-spinner--xx-small,.slds-spinner_xx-small{width:.5rem}.slds-spinner--xx-small.slds-spinner_inline,.slds-spinner_xx-small.slds-spinner_inline{height:.5rem}.slds-spinner--xx-small .slds-spinner__dot-a:after,.slds-spinner--xx-small .slds-spinner__dot-a:before,.slds-spinner--xx-small .slds-spinner__dot-b:after,.slds-spinner--xx-small .slds-spinner__dot-b:before,.slds-spinner--xx-small.slds-spinner:after,.slds-spinner--xx-small.slds-spinner:before,.slds-spinner_xx-small .slds-spinner__dot-a:after,.slds-spinner_xx-small .slds-spinner__dot-a:before,.slds-spinner_xx-small .slds-spinner__dot-b:after,.slds-spinner_xx-small .slds-spinner__dot-b:before,.slds-spinner_xx-small.slds-spinner:after,.slds-spinner_xx-small.slds-spinner:before{width:.125rem;height:.125rem}.slds-spinner--xx-small .slds-spinner__dot-a:before,.slds-spinner--xx-small .slds-spinner__dot-b:before,.slds-spinner--xx-small.slds-spinner:before,.slds-spinner_xx-small .slds-spinner__dot-a:before,.slds-spinner_xx-small .slds-spinner__dot-b:before,.slds-spinner_xx-small.slds-spinner:before{top:-.0625rem;left:-.0625rem;-webkit-animation-name:dotsBounceBefore-extraExtraSmall;animation-name:dotsBounceBefore-extraExtraSmall}.slds-spinner--xx-small .slds-spinner__dot-a:after,.slds-spinner--xx-small .slds-spinner__dot-b:after,.slds-spinner--xx-small.slds-spinner:after,.slds-spinner_xx-small .slds-spinner__dot-a:after,.slds-spinner_xx-small .slds-spinner__dot-b:after,.slds-spinner_xx-small.slds-spinner:after{top:-.0625rem;right:-.0625rem;-webkit-animation-name:dotsBounceAfter-extraExtraSmall;animation-name:dotsBounceAfter-extraExtraSmall}@-webkit-keyframes dotsBounceBefore-extraExtraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.275,.0425,.34,.265);animation-timing-function:cubic-bezier(.275,.0425,.34,.265)}80%{-webkit-transform:translate3d(-.125rem,0,0);transform:translate3d(-.125rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,.555,.35,.715);animation-timing-function:cubic-bezier(0,.555,.35,.715)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes dotsBounceBefore-extraExtraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.275,.0425,.34,.265);animation-timing-function:cubic-bezier(.275,.0425,.34,.265)}80%{-webkit-transform:translate3d(-.125rem,0,0);transform:translate3d(-.125rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,.555,.35,.715);animation-timing-function:cubic-bezier(0,.555,.35,.715)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes dotsBounceAfter-extraExtraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-animation-timing-function:cubic-bezier(.275,.0425,.34,.265);animation-timing-function:cubic-bezier(.275,.0425,.34,.265);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}80%{-webkit-animation-timing-function:cubic-bezier(0,.555,.35,.715);animation-timing-function:cubic-bezier(0,.555,.35,.715);-webkit-transform:translate3d(.125rem,0,0);transform:translate3d(.125rem,0,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes dotsBounceAfter-extraExtraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-animation-timing-function:cubic-bezier(.275,.0425,.34,.265);animation-timing-function:cubic-bezier(.275,.0425,.34,.265);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}80%{-webkit-animation-timing-function:cubic-bezier(0,.555,.35,.715);animation-timing-function:cubic-bezier(0,.555,.35,.715);-webkit-transform:translate3d(.125rem,0,0);transform:translate3d(.125rem,0,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slds-spinner--x-small,.slds-spinner_x-small{width:1rem}.slds-spinner--x-small.slds-spinner_inline,.slds-spinner_x-small.slds-spinner_inline{height:1rem}.slds-spinner--x-small .slds-spinner__dot-a:after,.slds-spinner--x-small .slds-spinner__dot-a:before,.slds-spinner--x-small .slds-spinner__dot-b:after,.slds-spinner--x-small .slds-spinner__dot-b:before,.slds-spinner--x-small.slds-spinner:after,.slds-spinner--x-small.slds-spinner:before,.slds-spinner_x-small .slds-spinner__dot-a:after,.slds-spinner_x-small .slds-spinner__dot-a:before,.slds-spinner_x-small .slds-spinner__dot-b:after,.slds-spinner_x-small .slds-spinner__dot-b:before,.slds-spinner_x-small.slds-spinner:after,.slds-spinner_x-small.slds-spinner:before{width:.25rem;height:.25rem}.slds-spinner--x-small .slds-spinner__dot-a:before,.slds-spinner--x-small .slds-spinner__dot-b:before,.slds-spinner--x-small.slds-spinner:before,.slds-spinner_x-small .slds-spinner__dot-a:before,.slds-spinner_x-small .slds-spinner__dot-b:before,.slds-spinner_x-small.slds-spinner:before{top:-.125rem;left:-.125rem;-webkit-animation-name:dotsBounceBefore-extraSmall;animation-name:dotsBounceBefore-extraSmall}.slds-spinner--x-small .slds-spinner__dot-a:after,.slds-spinner--x-small .slds-spinner__dot-b:after,.slds-spinner--x-small.slds-spinner:after,.slds-spinner_x-small .slds-spinner__dot-a:after,.slds-spinner_x-small .slds-spinner__dot-b:after,.slds-spinner_x-small.slds-spinner:after{top:-.125rem;right:-.125rem;-webkit-animation-name:dotsBounceAfter-extraSmall;animation-name:dotsBounceAfter-extraSmall}@-webkit-keyframes dotsBounceBefore-extraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.25rem,0,0);transform:translate3d(-.25rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes dotsBounceBefore-extraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.25rem,0,0);transform:translate3d(-.25rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes dotsBounceAfter-extraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.25rem,0,0);transform:translate3d(.25rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes dotsBounceAfter-extraSmall{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.25rem,0,0);transform:translate3d(.25rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slds-spinner--small,.slds-spinner_small{width:1.25rem}.slds-spinner--small.slds-spinner_inline,.slds-spinner_small.slds-spinner_inline{height:1.25rem}.slds-spinner--small .slds-spinner__dot-a:after,.slds-spinner--small .slds-spinner__dot-a:before,.slds-spinner--small .slds-spinner__dot-b:after,.slds-spinner--small .slds-spinner__dot-b:before,.slds-spinner--small.slds-spinner:after,.slds-spinner--small.slds-spinner:before,.slds-spinner_small .slds-spinner__dot-a:after,.slds-spinner_small .slds-spinner__dot-a:before,.slds-spinner_small .slds-spinner__dot-b:after,.slds-spinner_small .slds-spinner__dot-b:before,.slds-spinner_small.slds-spinner:after,.slds-spinner_small.slds-spinner:before{width:.25rem;height:.25rem}.slds-spinner--small .slds-spinner__dot-a:before,.slds-spinner--small .slds-spinner__dot-b:before,.slds-spinner--small.slds-spinner:before,.slds-spinner_small .slds-spinner__dot-a:before,.slds-spinner_small .slds-spinner__dot-b:before,.slds-spinner_small.slds-spinner:before{top:-.125rem;left:-.125rem;-webkit-animation-name:dotsBounceBefore-small;animation-name:dotsBounceBefore-small}.slds-spinner--small .slds-spinner__dot-a:after,.slds-spinner--small .slds-spinner__dot-b:after,.slds-spinner--small.slds-spinner:after,.slds-spinner_small .slds-spinner__dot-a:after,.slds-spinner_small .slds-spinner__dot-b:after,.slds-spinner_small.slds-spinner:after{top:-.125rem;right:-.125rem;-webkit-animation-name:dotsBounceAfter-small;animation-name:dotsBounceAfter-small}@-webkit-keyframes dotsBounceBefore-small{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.375rem,0,0);transform:translate3d(-.375rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes dotsBounceBefore-small{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.375rem,0,0);transform:translate3d(-.375rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes dotsBounceAfter-small{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.375rem,0,0);transform:translate3d(.375rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes dotsBounceAfter-small{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.375rem,0,0);transform:translate3d(.375rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slds-spinner--medium,.slds-spinner_medium{width:2rem}.slds-spinner--medium.slds-spinner_inline,.slds-spinner_medium.slds-spinner_inline{height:2rem}.slds-spinner--medium .slds-spinner__dot-a:after,.slds-spinner--medium .slds-spinner__dot-a:before,.slds-spinner--medium .slds-spinner__dot-b:after,.slds-spinner--medium .slds-spinner__dot-b:before,.slds-spinner--medium.slds-spinner:after,.slds-spinner--medium.slds-spinner:before,.slds-spinner_medium .slds-spinner__dot-a:after,.slds-spinner_medium .slds-spinner__dot-a:before,.slds-spinner_medium .slds-spinner__dot-b:after,.slds-spinner_medium .slds-spinner__dot-b:before,.slds-spinner_medium.slds-spinner:after,.slds-spinner_medium.slds-spinner:before{width:.5rem;height:.5rem}.slds-spinner--medium .slds-spinner__dot-a:before,.slds-spinner--medium .slds-spinner__dot-b:before,.slds-spinner--medium.slds-spinner:before,.slds-spinner_medium .slds-spinner__dot-a:before,.slds-spinner_medium .slds-spinner__dot-b:before,.slds-spinner_medium.slds-spinner:before{-webkit-animation-name:dotsBounceBefore-medium;animation-name:dotsBounceBefore-medium;top:-.25rem;left:-.25rem}.slds-spinner--medium .slds-spinner__dot-a:after,.slds-spinner--medium .slds-spinner__dot-b:after,.slds-spinner--medium.slds-spinner:after,.slds-spinner_medium .slds-spinner__dot-a:after,.slds-spinner_medium .slds-spinner__dot-b:after,.slds-spinner_medium.slds-spinner:after{-webkit-animation-name:dotsBounceAfter-medium;animation-name:dotsBounceAfter-medium;top:-.25rem;right:-.25rem}@-webkit-keyframes dotsBounceBefore-medium{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.5rem,0,0);transform:translate3d(-.5rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes dotsBounceBefore-medium{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.5rem,0,0);transform:translate3d(-.5rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes dotsBounceAfter-medium{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.5rem,0,0);transform:translate3d(.5rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes dotsBounceAfter-medium{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.5rem,0,0);transform:translate3d(.5rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slds-spinner--large,.slds-spinner_large{width:2.75rem}.slds-spinner--large.slds-spinner_inline,.slds-spinner_large.slds-spinner_inline{height:2.75rem}.slds-spinner--large .slds-spinner__dot-a:after,.slds-spinner--large .slds-spinner__dot-a:before,.slds-spinner--large .slds-spinner__dot-b:after,.slds-spinner--large .slds-spinner__dot-b:before,.slds-spinner--large.slds-spinner:after,.slds-spinner--large.slds-spinner:before,.slds-spinner_large .slds-spinner__dot-a:after,.slds-spinner_large .slds-spinner__dot-a:before,.slds-spinner_large .slds-spinner__dot-b:after,.slds-spinner_large .slds-spinner__dot-b:before,.slds-spinner_large.slds-spinner:after,.slds-spinner_large.slds-spinner:before{width:.625rem;height:.625rem}.slds-spinner--large .slds-spinner__dot-a:before,.slds-spinner--large .slds-spinner__dot-b:before,.slds-spinner--large.slds-spinner:before,.slds-spinner_large .slds-spinner__dot-a:before,.slds-spinner_large .slds-spinner__dot-b:before,.slds-spinner_large.slds-spinner:before{-webkit-animation-name:dotsBounceBefore-medium;animation-name:dotsBounceBefore-medium;top:-.3125rem;left:-.3125rem}.slds-spinner--large .slds-spinner__dot-a:after,.slds-spinner--large .slds-spinner__dot-b:after,.slds-spinner--large.slds-spinner:after,.slds-spinner_large .slds-spinner__dot-a:after,.slds-spinner_large .slds-spinner__dot-b:after,.slds-spinner_large.slds-spinner:after{-webkit-animation-name:dotsBounceAfter-medium;animation-name:dotsBounceAfter-medium;top:-.3125rem;right:-.3125rem}@-webkit-keyframes dotsBounceBefore-large{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.75rem,0,0);transform:translate3d(-.75rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes dotsBounceBefore-large{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(-.75rem,0,0);transform:translate3d(-.75rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes dotsBounceAfter-large{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.75rem,0,0);transform:translate3d(.75rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes dotsBounceAfter-large{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}60%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.085,.68,.53);animation-timing-function:cubic-bezier(.55,.085,.68,.53)}80%{-webkit-transform:translate3d(.75rem,0,0);transform:translate3d(.75rem,0,0);-webkit-animation-timing-function:cubic-bezier(0,1.11,.7,1.43);animation-timing-function:cubic-bezier(0,1.11,.7,1.43)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slds-split-view__list-item-action[aria-selected=true]{-webkit-box-shadow:inset 4px 0 0 #0176d3;box-shadow:inset 4px 0 0 #0176d3}.slds-split-view__list-item-action[aria-selected=true]:focus{-webkit-box-shadow:inset 4px 0 0 #0176d3,inset 0 0 0 1px #0176d3;box-shadow:inset 4px 0 0 #0176d3,inset 0 0 0 1px #0176d3}.slds-split-view_container{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0}.slds-split-view_container.slds-is-closed .slds-split-view{display:none}.slds-split-view_container.slds-is-closed .slds-split-view__toggle-button .slds-button__icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.slds-split-view_container.slds-is-open{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-split-view_container.slds-is-open .slds-split-view{display:inherit}.slds-split-view_container.slds-is-open .slds-split-view__toggle-button .slds-button__icon{-webkit-transform:rotate(0);transform:rotate(0)}.slds-split-view{background:var(--slds-g-color-neutral-base-95,#f3f3f3);color:var(--slds-g-color-neutral-base-30,#444)}.slds-split-view__header{padding:1rem 1rem .5rem 1.5rem}.slds-split-view__list-header{font-size:.875rem;font-weight:700;line-height:1.25;border-top:1px solid var(--slds-g-color-border-base-1,#c9c9c9);border-bottom:1px solid var(--slds-g-color-border-base-1,#c9c9c9);padding:.5rem 1rem .5rem 1.5rem}.slds-split-view__list-item{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;border-bottom:1px solid var(--slds-g-color-border-base-1,#c9c9c9);font-size:.75rem}.slds-split-view__list-item:focus,.slds-split-view__list-item:hover{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-split-view__list-item .slds-indicator--unread,.slds-split-view__list-item .slds-indicator_unread{background:var(--slds-g-color-brand-base-50,#1b96ff)}.slds-indicator--unread,.slds-indicator_unread{width:8px;height:8px;position:absolute;top:1rem;left:.5rem;display:block;border-radius:50%;background:var(--slds-g-color-error-base-40,#ea001e)}.slds-split-view__list-item-action{color:currentColor;padding:.75rem 1rem .75rem 1.5rem}.slds-split-view__list-item-action:focus,.slds-split-view__list-item-action:hover{outline:0;background:var(--slds-g-color-neutral-base-100,#fff);color:currentColor;text-decoration:none}.slds-split-view__list-item-action:focus{-webkit-box-shadow:inset 0 0 0 1px var(--slds-g-color-brand-base-60,#1b96ff);box-shadow:inset 0 0 0 1px var(--slds-g-color-brand-base-60,#1b96ff)}.slds-split-view__list-item-action[aria-current=page]{-webkit-box-shadow:inset 4px 0 0 #0176d3;box-shadow:inset 4px 0 0 #0176d3}.slds-split-view__list-item-action[aria-current=page]:focus{-webkit-box-shadow:inset 4px 0 0 #0176d3,inset 0 0 0 1px #0176d3;box-shadow:inset 4px 0 0 #0176d3,inset 0 0 0 1px #0176d3}.slds-split-view__toggle-button{position:absolute;right:-.75rem;height:100%;width:.75rem;background:var(--slds-g-color-neutral-base-100,#fff);border-radius:0;border:1px solid var(--slds-g-color-neutral-base-50,#e5e5e5)}.slds-split-view__toggle-button:focus,.slds-split-view__toggle-button:hover{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-split-view__toggle-button.slds-is-closed .slds-button__icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.slds-tile+.slds-tile{margin-top:.5rem}.slds-tile__detail{position:relative}.slds-tile__meta{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-tile--board,.slds-tile_board{position:relative}.slds-tile--board .slds-has-alert,.slds-tile_board .slds-has-alert{padding-right:1.5rem}.slds-tile--board__icon,.slds-tile_board__icon{width:1rem;height:1rem;position:absolute;bottom:.25rem;right:.25rem}@media (min-width:48em){.slds-tabs--default .slds-tabs__item+.slds-tabs__item,.slds-tabs_default .slds-tabs__item+.slds-tabs__item{margin-left:1.5rem}}.slds-tabs--default .slds-tabs__item>a,.slds-tabs_default .slds-tabs__item>a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;text-decoration:none;cursor:pointer;height:2.5rem;line-height:2.5rem;border-bottom:2px solid transparent;padding:0 .5rem;color:var(--slds-g-color-neutral-base-30,#444)}.slds-tabs--default .slds-tabs__item>a:focus,.slds-tabs_default .slds-tabs__item>a:focus{outline:0}@media (min-width:48em){.slds-tabs--default .slds-tabs__item>a,.slds-tabs_default .slds-tabs__item>a{padding:0 1rem}}.slds-tabs--default .slds-tabs__item>a:focus,.slds-tabs--default .slds-tabs__item>a:hover,.slds-tabs_default .slds-tabs__item>a:focus,.slds-tabs_default .slds-tabs__item>a:hover{text-decoration:none;border-color:var(--slds-g-color-brand-base-50,#0176d3);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-tabs--default .slds-tabs__item.slds-active a,.slds-tabs_default .slds-tabs__item.slds-active a{border-color:#1b96ff;color:var(--slds-g-color-neutral-base-10,#181818)}.slds-tabs--default .slds-tabs__item.slds-active a:focus,.slds-tabs_default .slds-tabs__item.slds-active a:focus{color:var(--slds-g-color-brand-base-50,#0176d3)}.slds-tabs--default>.slds-tabs__content,.slds-tabs_default>.slds-tabs__content{position:relative;padding:1rem 0}.slds-tabs--default,.slds-tabs_default{display:block;width:100%}.slds-tabs--default .slds-tabs__item--overflow,.slds-tabs--default .slds-tabs__item_overflow,.slds-tabs_default .slds-tabs__item--overflow,.slds-tabs_default .slds-tabs__item_overflow{overflow:visible}.slds-tabs--default__nav,.slds-tabs_default__nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-bottom-width:var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px));border-bottom-style:solid;border-bottom-color:var(--slds-c-tabs-list-color-border,var(--sds-c-tabs-list-color-border,var(--slds-g-color-border-base-4,#e5e5e5)))}.slds-tabs--default__item,.slds-tabs_default__item{color:var(--slds-c-tabs-item-text-color,var(--sds-c-tabs-item-text-color,var(--slds-g-color-neutral-base-30,#444)));position:relative;padding-top:var(--slds-c-tabs-item-spacing-block-start,var(--sds-c-tabs-item-spacing-block-start,var(--sds-c-tabs-item-spacing-block,0)));padding-right:var(--slds-c-tabs-item-spacing-inline-end,var(--sds-c-tabs-item-spacing-inline-end,var(--sds-c-tabs-item-spacing-inline,.75rem)));padding-bottom:var(--slds-c-tabs-item-spacing-block-end,var(--sds-c-tabs-item-spacing-block-end,var(--sds-c-tabs-item-spacing-block,0)));padding-left:var(--slds-c-tabs-item-spacing-inline-start,var(--sds-c-tabs-item-spacing-inline-start,var(--sds-c-tabs-item-spacing-inline,.75rem)));margin-bottom:calc(var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px)) * -1)}.slds-tabs--default__item:after,.slds-tabs_default__item:after{display:block;content:"";bottom:0;left:0;right:0;height:0;position:absolute}.slds-tabs--default__item.slds-active,.slds-tabs--default__item.slds-is-active,.slds-tabs_default__item.slds-active,.slds-tabs_default__item.slds-is-active{/*! @css-var-fallback color */--slds-c-tabs-item-text-color:var(--slds-c-tabs-item-text-color-active, + var(--sds-c-tabs-item-text-color-active, var(--slds-g-color-neutral-base-10, #181818)))}.slds-tabs--default__item.slds-active:after,.slds-tabs--default__item.slds-is-active:after,.slds-tabs_default__item.slds-active:after,.slds-tabs_default__item.slds-is-active:after{background-color:var(--slds-c-tabs-item-color-border-active,var(--sds-c-tabs-item-color-border-active,#1b96ff));height:calc(var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px)) + 2px)}.slds-tabs--default__item.slds-active .slds-tabs--default__link,.slds-tabs--default__item.slds-active .slds-tabs_default__link,.slds-tabs--default__item.slds-is-active .slds-tabs--default__link,.slds-tabs--default__item.slds-is-active .slds-tabs_default__link,.slds-tabs_default__item.slds-active .slds-tabs--default__link,.slds-tabs_default__item.slds-active .slds-tabs_default__link,.slds-tabs_default__item.slds-is-active .slds-tabs--default__link,.slds-tabs_default__item.slds-is-active .slds-tabs_default__link{font-weight:700}.slds-tabs--default__item.slds-active .slds-tabs--default__link:hover,.slds-tabs--default__item.slds-active .slds-tabs_default__link:hover,.slds-tabs--default__item.slds-is-active .slds-tabs--default__link:hover,.slds-tabs--default__item.slds-is-active .slds-tabs_default__link:hover,.slds-tabs_default__item.slds-active .slds-tabs--default__link:hover,.slds-tabs_default__item.slds-active .slds-tabs_default__link:hover,.slds-tabs_default__item.slds-is-active .slds-tabs--default__link:hover,.slds-tabs_default__item.slds-is-active .slds-tabs_default__link:hover{color:currentColor}.slds-tabs--default__item:hover:after,.slds-tabs_default__item:hover:after{height:calc(var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px)) + 1px);background-color:var(--slds-c-tabs-item-color-border-hover,var(--sds-c-tabs-item-color-border-hover,#0176d3))}.slds-tabs--default__item.slds-has-focus,.slds-tabs--default__item:focus,.slds-tabs_default__item.slds-has-focus,.slds-tabs_default__item:focus{outline:0}.slds-tabs--default__item.slds-has-focus:after,.slds-tabs--default__item:focus:after,.slds-tabs_default__item.slds-has-focus:after,.slds-tabs_default__item:focus:after{height:calc(var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,2px)) + 1px);background-color:var(--slds-c-tabs-item-color-border-active,var(--sds-c-tabs-item-color-border-active,#1b96ff))}.slds-tabs--default__item .slds-tabs--default__link:focus,.slds-tabs--default__item .slds-tabs_default__link:focus,.slds-tabs_default__item .slds-tabs--default__link:focus,.slds-tabs_default__item .slds-tabs_default__link:focus{-webkit-box-shadow:none;box-shadow:none}.slds-tabs--default__item.slds-has-notification,.slds-tabs_default__item.slds-has-notification{background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-tabs--default__item.slds-has-notification:after,.slds-tabs_default__item.slds-has-notification:after{background-color:var(--slds-g-color-border-base-4,#e5e5e5)}.slds-tabs--default__item.slds-has-notification:hover:after,.slds-tabs_default__item.slds-has-notification:hover:after{background-color:var(--slds-g-color-brand-base-30,#0176d3)}.slds-tabs--default__item.slds-has-notification .slds-indicator_unread,.slds-tabs_default__item.slds-has-notification .slds-indicator_unread{display:inline-block;height:.375rem;width:.375rem;position:relative;top:auto;left:auto}.slds-tabs--default__item.slds-is-unsaved .slds-indicator_unread,.slds-tabs_default__item.slds-is-unsaved .slds-indicator_unread{margin-left:-.35rem}.slds-tabs--default__item.slds-is-unsaved .slds-indicator_unsaved,.slds-tabs_default__item.slds-is-unsaved .slds-indicator_unsaved{color:#014486}.slds-tabs--default__item.slds-has-notification .slds-indicator_unsaved,.slds-tabs_default__item.slds-has-notification .slds-indicator_unsaved{top:-.25rem}.slds-tabs--default__link,.slds-tabs_default__link{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;text-decoration:none;cursor:pointer;height:var(--slds-c-tabs-item-sizing-height,var(--sds-c-tabs-item-sizing-height,2.5rem));line-height:var(--slds-c-tabs-item-line-height,var(--sds-c-tabs-item-line-height,2.5rem));color:currentColor;border:0;text-transform:inherit;z-index:1}.slds-tabs--default__link:focus,.slds-tabs_default__link:focus{outline:0}.slds-tabs--default__link:focus,.slds-tabs--default__link:hover,.slds-tabs_default__link:focus,.slds-tabs_default__link:hover{text-decoration:none;-webkit-box-shadow:none;box-shadow:none;color:currentColor}.slds-tabs--default__link[tabindex="0"]:focus,.slds-tabs_default__link[tabindex="0"]:focus{text-decoration:underline}.slds-tabs_default__overflow-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:var(--slds-c-tabs-item-sizing-height,var(--sds-c-tabs-item-sizing-height,2.5rem));line-height:var(--slds-c-tabs-item-line-height,var(--sds-c-tabs-item-line-height,2.5rem))}.slds-tabs_default__overflow-button .slds-button{line-height:inherit;color:var(--slds-c-tabs-item-text-color,var(--sds-c-tabs-item-text-color,var(--slds-g-color-neutral-base-30,#444)));-webkit-box-shadow:none;box-shadow:none;--slds-c-button-color-border-active:transparent}.slds-tabs_default__overflow-button .slds-button:focus{text-decoration:underline}.slds-tabs_default__overflow-button.slds-has-error .slds-button,.slds-tabs_default__overflow-button.slds-has-success .slds-button{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-tabs--default__content,.slds-tabs_default__content{position:relative;padding-top:var(--slds-c-tabs-panel-spacing-block-start,var(--sds-c-tabs-panel-spacing-block-start,var(--slds-c-tabs-panel-spacing-block,var(--sds-c-tabs-panel-spacing-block,.75rem))));padding-right:var(--slds-c-tabs-panel-spacing-inline-end,var(--sds-c-tabs-panel-spacing-inline-end,var(--slds-c-tabs-panel-spacing-inline,var(--sds-c-tabs-panel-spacing-inline,0))));padding-bottom:var(--slds-c-tabs-panel-spacing-block-end,var(--sds-c-tabs-panel-spacing-block-end,var(--slds-c-tabs-panel-spacing-block,var(--sds-c-tabs-panel-spacing-block,.75rem))));padding-left:var(--slds-c-tabs-panel-spacing-inline-start,var(--sds-c-tabs-panel-spacing-inline-start,var(--slds-c-tabs-panel-spacing-inline,var(--sds-c-tabs-panel-spacing-inline,0))))}.slds-tabs_medium .slds-tabs_default__item{font-size:1rem}.slds-tabs_large .slds-tabs_default__item{font-size:1.25rem}.slds-tabs__left-icon{margin-right:.5rem}.slds-tabs__left-icon:empty{margin-right:0}.slds-tabs__right-icon{margin-left:.5rem}.slds-tabs_mobile__title{width:100%;height:100%;color:var(--slds-g-color-neutral-base-10,#181818);font-size:1rem;padding:0 1rem}.slds-tabs_mobile__title .slds-button:focus{-webkit-box-shadow:none;box-shadow:none}.slds-tabs_mobile__title-action{width:100%;height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.slds-tabs_mobile__title-action .slds-button__icon{-ms-flex-negative:0;flex-shrink:0}.slds-tabs_mobile{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.slds-tabs_mobile__item{display:-webkit-box;display:-ms-flexbox;display:flex;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);height:2.75rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-tabs_mobile__item:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-tabs_mobile__item:last-child{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-tabs_mobile+.slds-tabs_mobile .slds-tabs_mobile__item:first-child{border-top:0}.slds-tabs-mobile__container{position:relative;overflow:hidden}.slds-panel__body .slds-tabs-mobile{margin-left:-.75rem;margin-right:-.75rem}.slds-panel__body .slds-tabs-mobile:first-child{margin-top:-.75rem}.slds-panel__body .slds-tabs-mobile:first-child .slds-tabs-mobile__item:first-child{border-top:0}.slds-tabs-mobile{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-tabs-mobile__item{display:-webkit-box;display:-ms-flexbox;display:flex;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);height:2.75rem;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;color:var(--slds-g-color-neutral-base-10,#181818);font-size:1rem;padding:0 .75rem}.slds-tabs-mobile__item:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-tabs-mobile__item:last-child{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-tabs-mobile__group .slds-tabs-mobile__container+.slds-tabs-mobile__container .slds-tabs-mobile__item:first-child{border-top:0}.slds-tabs--scoped .slds-tabs__item,.slds-tabs_scoped .slds-tabs__item{position:relative;margin-bottom:-1px}.slds-tabs--scoped .slds-tabs__item+.slds-tabs__item,.slds-tabs_scoped .slds-tabs__item+.slds-tabs__item{margin-left:-1px}.slds-tabs--scoped .slds-tabs__item:first-child>a,.slds-tabs_scoped .slds-tabs__item:first-child>a{border-left:0;border-radius:.25rem 0 0 0}.slds-tabs--scoped .slds-tabs__item>a,.slds-tabs_scoped .slds-tabs__item>a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;text-decoration:none;cursor:pointer;height:2.5rem;line-height:2.5rem;padding:0 1.5rem;color:var(--slds-g-color-neutral-base-30,#444);background-clip:padding-box;border-left:1px solid transparent;border-right:1px solid transparent}.slds-tabs--scoped .slds-tabs__item>a:focus,.slds-tabs_scoped .slds-tabs__item>a:focus{outline:0}.slds-tabs--scoped .slds-tabs__item>a:focus,.slds-tabs--scoped .slds-tabs__item>a:hover,.slds-tabs_scoped .slds-tabs__item>a:focus,.slds-tabs_scoped .slds-tabs__item>a:hover{text-decoration:none;color:var(--slds-g-link-color-hover,#014486);border-color:var(--slds-g-color-border-base-4,#e5e5e5)}.slds-tabs--scoped .slds-tabs__item .slds-active>a,.slds-tabs_scoped .slds-tabs__item .slds-active>a{background-color:var(--slds-g-color-neutral-base-100,#fff);color:var(--slds-g-link-color,#0176d3);border-color:var(--slds-g-color-border-base-4,#e5e5e5)}.slds-tabs--scoped .slds-tabs__item .slds-active>a:focus,.slds-tabs_scoped .slds-tabs__item .slds-active>a:focus{text-decoration:underline}.slds-tabs--scoped>.slds-tabs__content,.slds-tabs_scoped>.slds-tabs__content{background-color:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-top:0;border-radius:0 0 .25rem .25rem;padding:1rem}.slds-tabs--scoped,.slds-tabs_scoped{display:block;width:100%}.slds-tabs--scoped__nav,.slds-tabs_scoped__nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;background-color:var(--slds-g-color-neutral-base-95,#fafaf9);border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-bottom-right-radius:0;border-bottom-left-radius:0}.slds-tabs--scoped__item,.slds-tabs_scoped__item{position:relative;margin-bottom:-1px}.slds-tabs--scoped__item+.slds-tabs--scoped__item,.slds-tabs--scoped__item+.slds-tabs_scoped__item,.slds-tabs_scoped__item+.slds-tabs--scoped__item,.slds-tabs_scoped__item+.slds-tabs_scoped__item{margin-left:-1px}.slds-tabs--scoped__item:first-child .slds-tabs--scoped__link,.slds-tabs--scoped__item:first-child .slds-tabs_scoped__link,.slds-tabs_scoped__item:first-child .slds-tabs--scoped__link,.slds-tabs_scoped__item:first-child .slds-tabs_scoped__link{border-left:0;border-radius:0}.slds-tabs--scoped__content,.slds-tabs_scoped__content{background-color:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);border-top:0;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem;padding:1rem}.slds-tabs--scoped__link,.slds-tabs_scoped__link{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;text-decoration:none;cursor:pointer;height:2.5rem;line-height:2.5rem;padding:0 1rem;color:var(--slds-g-color-neutral-base-30,#444);background-clip:padding-box;border:0;border-left:1px solid transparent;border-right:1px solid transparent;border-radius:0}.slds-tabs--scoped__link:focus,.slds-tabs_scoped__link:focus{outline:0}.slds-tabs--scoped__link:focus,.slds-tabs--scoped__link:hover,.slds-tabs_scoped__link:focus,.slds-tabs_scoped__link:hover{text-decoration:none;color:currentColor;border-color:var(--slds-g-color-border-base-4,#e5e5e5)}.slds-tabs_scoped__overflow-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:2.5rem;line-height:2.5rem}.slds-tabs_scoped__overflow-button .slds-button{line-height:inherit;color:var(--slds-g-color-neutral-base-30,#444);padding:0 1rem}.slds-active .slds-tabs--scoped__link,.slds-active .slds-tabs_scoped__link,.slds-is-active .slds-tabs--scoped__link,.slds-is-active .slds-tabs_scoped__link{background-color:var(--slds-g-color-neutral-base-100,#fff);border-color:var(--slds-g-color-border-base-4,#e5e5e5);font-weight:700;color:var(--slds-g-color-neutral-base-10,#181818)}.slds-active .slds-tabs--scoped__link:focus,.slds-active .slds-tabs_scoped__link:focus,.slds-is-active .slds-tabs--scoped__link:focus,.slds-is-active .slds-tabs_scoped__link:focus{text-decoration:underline}.slds-tabs_medium .slds-tabs_scoped__item{font-size:1rem}.slds-tabs_medium .slds-tabs_scoped__link{padding-left:1.5rem;padding-right:1.5rem}.slds-tabs_large .slds-tabs_scoped__item{font-size:1.25rem}.slds-tabs_large .slds-tabs_scoped__link{padding-left:2rem;padding-right:2rem}.slds-tabs__nav-scroller.slds-has-overflow{position:relative;padding-right:4.7rem}.slds-tab__scroll-controls{display:none}.slds-has-overflow .slds-tabs__nav-scroller--inner,.slds-has-overflow .slds-tabs__nav-scroller_inner{overflow:hidden}.slds-has-overflow .slds-tabs--default__nav,.slds-has-overflow .slds-tabs--scoped__nav,.slds-has-overflow .slds-tabs_default__nav,.slds-has-overflow .slds-tabs_scoped__nav{border:0}.slds-has-overflow .slds-tab__scroll-controls{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;right:0;top:0;bottom:0;background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-tabs--default .slds-has-overflow .slds-tabs__nav-scroller--inner,.slds-tabs--default .slds-has-overflow .slds-tabs__nav-scroller_inner,.slds-tabs_default .slds-has-overflow .slds-tabs__nav-scroller--inner,.slds-tabs_default .slds-has-overflow .slds-tabs__nav-scroller_inner{border-bottom-width:var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px));border-bottom-style:solid;border-bottom-color:var(--slds-c-tabs-list-color-border,var(--sds-c-tabs-list-color-border,var(--slds-g-color-border-base-1,#e5e5e5)))}.slds-tabs--default .slds-tab__scroll-controls,.slds-tabs_default .slds-tab__scroll-controls{padding:calc(.25rem - var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px))) 1px calc(.25rem - var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px))) .5rem;border-bottom-width:var(--slds-c-tabs-list-sizing-border,var(--sds-c-tabs-list-sizing-border,1px));border-bottom-style:solid;border-bottom-color:var(--slds-c-tabs-list-color-border,var(--sds-c-tabs-list-color-border,var(--slds-g-color-border-base-1,#e5e5e5)))}.slds-tabs--scoped .slds-has-overflow .slds-tabs__nav-scroller--inner,.slds-tabs--scoped .slds-has-overflow .slds-tabs__nav-scroller_inner,.slds-tabs_scoped .slds-has-overflow .slds-tabs__nav-scroller--inner,.slds-tabs_scoped .slds-has-overflow .slds-tabs__nav-scroller_inner{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:0;border-radius:.25rem .25rem 0 0;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-tabs--scoped .slds-has-overflow .slds-tabs--scoped__item,.slds-tabs--scoped .slds-has-overflow .slds-tabs_scoped__item,.slds-tabs_scoped .slds-has-overflow .slds-tabs--scoped__item,.slds-tabs_scoped .slds-has-overflow .slds-tabs_scoped__item{margin-bottom:0;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-tabs--scoped .slds-has-overflow .slds-tabs--scoped__item.slds-active,.slds-tabs--scoped .slds-has-overflow .slds-tabs_scoped__item.slds-active,.slds-tabs_scoped .slds-has-overflow .slds-tabs--scoped__item.slds-active,.slds-tabs_scoped .slds-has-overflow .slds-tabs_scoped__item.slds-active{border-bottom-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-tabs--scoped .slds-tab__scroll-controls,.slds-tabs_scoped .slds-tab__scroll-controls{padding:calc(.25rem - 1px) .25rem;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:0 .25rem 0 0}.slds-sub-tabs .slds-tabs_default__nav{border-bottom-width:1px}.slds-sub-tabs__item{text-transform:none;letter-spacing:0;margin-bottom:0}.slds-sub-tabs__item.slds-active,.slds-sub-tabs__item.slds-is-open{background:rgba(21,137,238,.1)}.slds-sub-tabs__item:after{content:none}.slds-sub-tabs__item .slds-tabs_default__link:focus,.slds-sub-tabs__item.slds-has-focus{text-decoration:underline}.slds-sub-tabs__item+.slds-sub-tabs__item{margin-left:0}@keyframes error-pulse{0%{background-color:var(--slds-g-color-error-base-40,#ba0517)}40%{background-color:var(--slds-g-color-error-base-30,#8e030f)}100%{background-color:var(--slds-g-color-error-base-40,#ba0517)}}@keyframes success-pulse{0%{background-color:var(--slds-g-color-success-base-50,#2e844a)}40%{background-color:var(--slds-g-color-success-base-40,#194e31)}100%{background-color:var(--slds-g-color-success-base-50,#2e844a)}}@keyframes warning-pulse{0%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}40%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}100%{background-color:var(--slds-g-color-warning-base-60,#fe9339)}}.slds-sub-tabs__item.slds-has-success:before{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:var(--slds-g-color-success-base-50,#2e844a);bottom:0;content:" ";left:0;position:absolute;right:0;top:0;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-sub-tabs__item.slds-has-success:hover:before{background-color:var(--slds-g-color-success-base-40,#194e31)}.slds-sub-tabs__item.slds-has-success:before{-webkit-animation-name:success-pulse;animation-name:success-pulse}.slds-sub-tabs__item.slds-has-error:before{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:var(--slds-g-color-error-base-40,#ba0517);bottom:0;content:" ";left:0;position:absolute;right:0;top:0;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-sub-tabs__item.slds-has-error:hover:before{background-color:var(--slds-g-color-error-base-30,#8e030f)}.slds-sub-tabs__item.slds-has-error:before{-webkit-animation-name:error-pulse;animation-name:error-pulse}.slds-sub-tabs__item.slds-has-error,.slds-sub-tabs__item.slds-has-success{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-sub-tabs__item.slds-has-error .slds-indicator_unread,.slds-sub-tabs__item.slds-has-success .slds-indicator_unread{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-sub-tabs__item.slds-has-error .slds-indicator_unsaved,.slds-sub-tabs__item.slds-has-success .slds-indicator_unsaved{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-sub-tabs__item.slds-has-warning:before{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:var(--slds-g-color-warning-base-60,#fe9339);bottom:0;content:" ";left:0;position:absolute;right:0;top:0;-webkit-transition:background-color .25s cubic-bezier(.39,.575,.565,1);transition:background-color .25s cubic-bezier(.39,.575,.565,1)}.slds-sub-tabs__item.slds-has-warning:hover:before{background-color:var(--slds-g-color-warning-base-60,#fe9339)}.slds-sub-tabs__item.slds-has-warning:before{-webkit-animation-name:warning-pulse;animation-name:warning-pulse}.slds-sub-tabs__item.slds-has-warning .slds-indicator_unread{background-color:currentColor}.slds-sub-tabs__item.slds-has-warning .slds-indicator_unsaved{color:currentColor}.slds-has-pinned-regions .slds-sub-tabs__item.slds-active:before,.slds-has-pinned-regions .slds-sub-tabs__item.slds-is-open:before{content:"";height:3px;display:block;background:#1b96ff;position:absolute;top:0;left:-1px;right:-1px}.slds-navigation-list--vertical .slds-is-active,.slds-navigation-list-vertical .slds-is-active{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-navigation-list--vertical .slds-is-active .slds-navigation-list--vertical__action,.slds-navigation-list--vertical .slds-is-active .slds-navigation-list-vertical__action,.slds-navigation-list-vertical .slds-is-active .slds-navigation-list--vertical__action,.slds-navigation-list-vertical .slds-is-active .slds-navigation-list-vertical__action{background-color:rgba(21,137,238,.1);border-color:var(--slds-g-color-border-base-1,#e5e5e5);border-left-color:#1b96ff}.slds-navigation-list--vertical .slds-is-active .slds-navigation-list--vertical__action:focus,.slds-navigation-list--vertical .slds-is-active .slds-navigation-list-vertical__action:focus,.slds-navigation-list-vertical .slds-is-active .slds-navigation-list--vertical__action:focus,.slds-navigation-list-vertical .slds-is-active .slds-navigation-list-vertical__action:focus{border-left-width:.5rem;color:#014486}.slds-navigation-list--vertical-inverse .slds-is-active .slds-navigation-list--vertical__action,.slds-navigation-list--vertical-inverse .slds-is-active .slds-navigation-list-vertical__action,.slds-navigation-list-vertical--shade .slds-is-active .slds-navigation-list--vertical__action,.slds-navigation-list-vertical--shade .slds-is-active .slds-navigation-list-vertical__action,.slds-navigation-list-vertical_shade .slds-is-active .slds-navigation-list--vertical__action,.slds-navigation-list-vertical_shade .slds-is-active .slds-navigation-list-vertical__action{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-navigation-list--vertical__action,.slds-navigation-list-vertical__action{display:block;border-left:.25rem solid transparent;border-top:1px solid transparent;border-bottom:1px solid transparent;padding:.5rem 1.5rem}.slds-navigation-list--vertical__action:focus,.slds-navigation-list--vertical__action:hover,.slds-navigation-list-vertical__action:focus,.slds-navigation-list-vertical__action:hover{outline:0;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-navigation-list--vertical__action:active,.slds-navigation-list-vertical__action:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-nav-vertical{position:relative}.slds-nav-vertical_compact .slds-nav-vertical__action,.slds-nav-vertical_compact .slds-nav-vertical__title{padding:.25rem 1.5rem}.slds-nav-vertical_shade .slds-is-active.slds-nav-vertical__item:before{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-nav-vertical_shade .slds-nav-vertical__item:hover:before{background:var(--slds-g-color-neutral-base-100,#fff)}.slds-nav-vertical_shade .slds-is-active .slds-nav-vertical__action{border-color:var(--slds-g-color-border-base-1,#e5e5e5)}.slds-nav-vertical__title{padding:.5rem 1rem;padding-left:1.5rem;font-size:1rem;font-weight:700}.slds-nav-vertical__title:not(:first-of-type){margin-top:.5rem}.slds-nav-vertical__section:not(:first-of-type){margin-top:.5rem}.slds-nav-vertical__item{position:relative}.slds-nav-vertical__item:before{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.slds-nav-vertical__item.slds-is-active:before,.slds-nav-vertical__item:hover:before{background:rgba(21,137,238,.1)}.slds-nav-vertical__action{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:.5rem 1.5rem .5rem 2rem;color:var(--slds-g-color-neutral-base-10,#181818);border-top:1px solid transparent;border-bottom:1px solid transparent;border-radius:0;-webkit-box-shadow:inset 0 0 0 #1b96ff;box-shadow:inset 0 0 0 #1b96ff;cursor:pointer}.slds-nav-vertical__action:active,.slds-nav-vertical__action:focus,.slds-nav-vertical__action:hover{color:currentColor}.slds-nav-vertical__action:hover{text-decoration:none;-webkit-box-shadow:inset 2px 0 0 #1b96ff;box-shadow:inset 2px 0 0 #1b96ff}[dir=rtl] .slds-nav-vertical__action:hover{-webkit-box-shadow:inset -2px 0 0 #1b96ff;box-shadow:inset -2px 0 0 #1b96ff}.slds-nav-vertical__action:focus{outline:0;text-decoration:underline}.slds-nav-vertical__item.slds-is-active .slds-nav-vertical__action{font-weight:700;-webkit-box-shadow:inset 4px 0 0 #1b96ff;box-shadow:inset 4px 0 0 #1b96ff}[dir=rtl] .slds-nav-vertical__item.slds-is-active .slds-nav-vertical__action{-webkit-box-shadow:inset -4px 0 0 #1b96ff;box-shadow:inset -4px 0 0 #1b96ff}.slds-nav-vertical__item{display:block}.slds-nav-vertical__item [type=radio]{width:1px;height:1px;border:0;clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute}.slds-nav-vertical__item [type=radio]:focus+.slds-nav-vertical__action .slds-nav-vertical_radio-faux{text-decoration:underline}.slds-nav-vertical__item [type=radio]:checked+.slds-nav-vertical__action{font-weight:700;background-color:#eef4ff;-webkit-box-shadow:inset 4px 0 0 #1b96ff;box-shadow:inset 4px 0 0 #1b96ff}.slds-nav-vertical_shade .slds-nav-vertical__item [type=radio]:checked+.slds-nav-vertical__action{border-color:var(--slds-g-color-border-base-1,#e5e5e5);background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-nav-vertical__action_overflow{color:var(--slds-g-color-neutral-base-50,#747474)}.slds-nav-vertical__action_overflow[aria-expanded=true] .slds-button__icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[dir=rtl] .slds-nav-vertical__action_overflow[aria-expanded=true] .slds-button__icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.slds-nav-vertical__action-text{color:var(--slds-g-link-color,#0176d3)}.slds-notify--alert,.slds-notify_alert{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;padding-top:var(--slds-c-alert-spacing-block-start,var(--sds-c-alert-spacing-block-start,.5rem));padding-right:var(--slds-c-alert-spacing-inline-end,var(--sds-c-alert-spacing-inline-end,2rem));padding-bottom:var(--slds-c-alert-spacing-block-end,var(--sds-c-alert-spacing-block-end,.5rem));padding-left:var(--slds-c-alert-spacing-inline-start,var(--sds-c-alert-spacing-inline-start,.5rem));color:var(--slds-c-alert-text-color,var(--sds-c-alert-text-color,var(--slds-g-color-neutral-base-100,#fff)));font-weight:var(--slds-c-alert-font-weight,var(--sds-c-alert-font-weight));text-align:center;background-color:var(--slds-c-alert-color-background,var(--sds-c-alert-color-background,var(--slds-g-color-neutral-base-50,#747474)));background-image:var(--slds-c-alert-image-background,var(--sds-c-alert-image-background,linear-gradient(45deg,rgba(0,0,0,.025) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.025) 50%,rgba(0,0,0,.025) 75%,transparent 75%,transparent)));background-size:var(--slds-c-alert-size-background,var(--sds-c-alert-size-background,64px 64px))}.slds-notify--alert a,.slds-notify_alert a{color:currentColor;border:1px solid transparent;border-radius:.25rem;text-decoration:underline}.slds-notify--alert a:focus,.slds-notify--alert a:hover,.slds-notify_alert a:focus,.slds-notify_alert a:hover{text-decoration:none;outline:0}.slds-notify--alert a:focus,.slds-notify_alert a:focus{-webkit-box-shadow:var(--slds-c-alert-shadow,0 0 3px var(--slds-g-color-neutral-base-100,#f3f3f3));box-shadow:var(--slds-c-alert-shadow,0 0 3px var(--slds-g-color-neutral-base-100,#f3f3f3));border-width:var(--slds-c-alert-sizing-border,1px);border-style:solid;border-color:var(--slds-c-alert-color-border,var(--slds-g-color-neutral-base-100,#f3f3f3))}.slds-notify--alert a:active,.slds-notify_alert a:active{color:var(--slds-c-alert-text-color-active,var(--sds-c-alert-text-color-active,rgba(255,255,255,.5)))}.slds-notify--alert a[disabled],.slds-notify_alert a[disabled]{color:rgba(255,255,255,.15)}.slds-alert_warning{/*! @css-var-fallback background-color */--slds-c-alert-color-background:var(--slds-g-color-warning-base-60, #fe9339);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-alert_warning .slds-button__icon,.slds-alert_warning .slds-icon{fill:var(--slds-g-color-neutral-base-30,#514f4d)}.slds-alert_error{/*! @css-var-fallback background-color */--slds-c-alert-color-background:var(--slds-g-color-error-base-40, #ea001e)}.slds-alert_offline{/*! @css-var-fallback background-color */--slds-c-alert-color-background:var(--slds-g-color-neutral-base-30, #444444)}.slds-notify__close{position:absolute;top:50%;right:.75rem;margin-left:.25rem;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.slds-modal--prompt .slds-modal__close,.slds-modal_prompt .slds-modal__close{display:none}.slds-modal--prompt .slds-modal__header,.slds-modal_prompt .slds-modal__header{border-bottom:0}.slds-modal--prompt .slds-modal__content,.slds-modal_prompt .slds-modal__content{padding-left:2rem;padding-right:2rem}.slds-modal--prompt .slds-modal__footer,.slds-modal_prompt .slds-modal__footer{border-top:0;text-align:center}.slds-notify-container,.slds-notify_container{position:fixed;width:100%;left:0;top:0;z-index:10000;text-align:center}.slds-notify--toast,.slds-notify_toast{color:var(--slds-g-color-neutral-base-100,#fff);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;background:0 0;background-color:var(--slds-c-toast-color-background,var(--sds-c-toast-color-background,var(--slds-g-color-neutral-base-50,#747474)));color:var(--slds-c-toast-text-color,var(--sds-c-toast-text-color));border-radius:var(--slds-c-toast-radius-border,var(--sds-c-toast-radius-border,.25rem));margin:.5rem;padding-top:var(--slds-c-toast-spacing-block-start,var(--sds-c-toast-spacing-block-start,.75rem));padding-right:var(--slds-c-toast-spacing-inline-end,var(--sds-c-toast-spacing-inline-end,3rem));padding-bottom:var(--slds-c-toast-spacing-block-end,var(--sds-c-toast-spacing-block-end,.75rem));padding-left:var(--slds-c-toast-spacing-inline-start,var(--sds-c-toast-spacing-inline-start,1.5rem));min-width:var(--slds-c-toast-sizing-min-width,var(--sds-c-toast-sizing-min-width,30rem));text-align:left;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.slds-notify--toast a,.slds-notify_toast a{color:currentColor;border:1px solid transparent;border-radius:.25rem}.slds-notify--toast a:focus,.slds-notify--toast a:hover,.slds-notify_toast a:focus,.slds-notify_toast a:hover{text-decoration:none;outline:0}.slds-notify--toast a:focus,.slds-notify_toast a:focus{-webkit-box-shadow:0 0 3px #f3f3f3;box-shadow:0 0 3px #f3f3f3;border:1px solid var(--slds-g-color-neutral-base-100,#f3f3f3)}.slds-notify--toast a:active,.slds-notify_toast a:active{color:rgba(255,255,255,.5)}.slds-notify--toast a[disabled],.slds-notify_toast a[disabled]{color:rgba(255,255,255,.15)}.slds-notify--toast .slds-notify__close,.slds-notify_toast .slds-notify__close{float:right;position:absolute;top:.75rem;right:.75rem;margin-left:.25rem;-webkit-transform:translateY(-.125rem);transform:translateY(-.125rem)}.slds-region_narrow .slds-notify--toast,.slds-region_narrow .slds-notify_toast{min-width:auto;width:100%;margin-left:0}.slds-scoped-notification{padding:.75rem}.slds-scoped-notification_light{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-scoped-notification_dark{background-color:var(--slds-g-color-neutral-base-50,#747474);color:var(--slds-g-color-neutral-base-100,#fff)}.slds-scoped-notification_dark a{color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-scoped-notification_dark a:active,.slds-scoped-notification_dark a:hover{text-decoration:none}.slds-notification-container{position:fixed;display:block;width:20.5rem;right:.25rem;top:.25rem;padding:.25rem .25rem .5rem;z-index:8500}.slds-notification{position:relative;width:20rem;border:1px solid var(--slds-g-color-border-base-1,#f3f3f3);border-radius:.25rem;-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.2);box-shadow:0 2px 3px 0 rgba(0,0,0,.2);-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-property:margin,max-height,opacity,top;transition-property:margin,max-height,opacity,top}.slds-notification .slds-media__body{opacity:1;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.slds-notification+.slds-notification{margin-top:.5rem}.slds-notification:nth-of-type(1){z-index:4}.slds-notification:nth-of-type(2){z-index:3}.slds-notification:nth-of-type(3){z-index:2}.slds-notification:nth-of-type(4){z-index:1}.slds-notification:nth-of-type(n+3){overflow:hidden}.slds-notification:nth-of-type(n+4){margin-top:0;-webkit-transform:scaleX(.95) translateY(-90%);transform:scaleX(.95) translateY(-90%)}.slds-notification:nth-of-type(n+4) .slds-media__body,.slds-notification:nth-of-type(n+5){opacity:0}.slds-notification:nth-of-type(n+6){display:none}.slds-notification__target{padding:.75rem;border-radius:.25rem;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-notification__target:focus,.slds-notification__target:hover{background-color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:none}.slds-notification__footer{padding:.75rem .75rem 1rem .75rem}.slds-notification__close{position:absolute;top:0;right:0}.slds-modal__header .slds-notify-container,.slds-modal__header .slds-notify_container{position:absolute}.slds-modal__header .slds-notify--toast,.slds-modal__header .slds-notify_toast{display:block}.slds-trial-header{color:var(--slds-g-color-neutral-base-100,#fff);height:3.125rem;background:var(--slds-g-color-brand-base-10,#001639);padding:0 1rem}.slds-trial-header .slds-icon{fill:currentColor}.slds-trial-header a:not([class*=slds-button_]):not([class*=slds-button--]),.slds-trial-header button:not([class*=slds-button_]):not([class*=slds-button--]){color:currentColor;border:1px solid transparent;border-radius:.25rem}.slds-trial-header a:not([class*=slds-button_]):not([class*=slds-button--]):focus,.slds-trial-header a:not([class*=slds-button_]):not([class*=slds-button--]):hover,.slds-trial-header button:not([class*=slds-button_]):not([class*=slds-button--]):focus,.slds-trial-header button:not([class*=slds-button_]):not([class*=slds-button--]):hover{text-decoration:none;outline:0}.slds-trial-header a:not([class*=slds-button_]):not([class*=slds-button--]):focus,.slds-trial-header button:not([class*=slds-button_]):not([class*=slds-button--]):focus{-webkit-box-shadow:0 0 3px #f3f3f3;box-shadow:0 0 3px #f3f3f3;border:1px solid var(--slds-g-color-neutral-base-100,#f3f3f3)}.slds-trial-header a:not([class*=slds-button_]):not([class*=slds-button--]):active,.slds-trial-header button:not([class*=slds-button_]):not([class*=slds-button--]):active{color:rgba(255,255,255,.5)}.slds-trial-header a:not([class*=slds-button_]):not([class*=slds-button--])[disabled],.slds-trial-header button:not([class*=slds-button_]):not([class*=slds-button--])[disabled]{color:rgba(255,255,255,.15)}.slds-trial-header .slds-icon--selected,.slds-trial-header .slds-icon_selected{fill:var(--slds-g-color-success-base-70,#45c65a)}.slds-lookup{position:relative;width:100%}.slds-lookup mark{font-weight:700;background-color:transparent;color:inherit}.slds-lookup.slds-is-open .slds-lookup__menu{display:block}.slds-lookup.slds-has-selection .slds-input,.slds-lookup.slds-has-selection .slds-input__icon,.slds-lookup.slds-has-selection .slds-lookup__search-input{display:none}.slds-lookup.slds-has-selection .slds-pill{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-lookup.slds-has-selection .slds-pill__remove{margin-left:auto}.slds-lookup__list{max-height:calc((((1.5 * .8125rem) + (1.5 * .75rem) - .25rem) + (.25rem * 2)) * 8);overflow-y:auto}.slds-lookup__menu{background:var(--slds-g-color-neutral-base-100,#fff);border:1px solid var(--slds-g-color-border-base-4,#e5e5e5);border-radius:.25rem;z-index:7000;position:absolute;width:100%;padding:.5rem 0;display:none}.slds-lookup__item>a,.slds-lookup__item>button,.slds-lookup__item>span{display:block;padding:.5rem;color:var(--slds-g-color-neutral-base-10,#181818);text-align:left;width:100%;line-height:1.5;border-radius:0}.slds-lookup__item>a:focus,.slds-lookup__item>a:hover,.slds-lookup__item>button:focus,.slds-lookup__item>button:hover,.slds-lookup__item>span:focus,.slds-lookup__item>span:hover{outline:0;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);color:var(--slds-g-color-neutral-base-10,#181818);text-decoration:none}.slds-lookup__item>a .slds-icon,.slds-lookup__item>button .slds-icon,.slds-lookup__item>span .slds-icon{margin-right:.5rem}.slds-lookup__item--label,.slds-lookup__item_label{font-size:.875rem;font-weight:700;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.5rem 1rem}.slds-lookup__item-action{font-size:.8125rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.25rem 1rem;color:var(--slds-g-color-neutral-base-10,#181818);text-align:left;width:100%;line-height:1.5;border-radius:0}.slds-lookup__item-action.slds-has-focus,.slds-lookup__item-action:focus,.slds-lookup__item-action:hover{outline:0;cursor:pointer;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);color:var(--slds-g-color-neutral-base-10,#181818);text-decoration:none}.slds-lookup__item-action .slds-media__figure{margin-right:.5rem;margin-top:.25rem}.slds-lookup__item-action--label,.slds-lookup__item-action_label{padding:.5rem 1rem}.slds-lookup__item-action--label>.slds-icon,.slds-lookup__item-action_label>.slds-icon{margin-left:.25rem;margin-right:.75rem}.slds-lookup__search-input{width:100%}.slds-lookup__result-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-bottom:.125rem}.slds-lookup__result-meta{display:block;margin-top:-.25rem;color:var(--slds-g-color-neutral-base-30,#444)}.slds-lookup__pill-container{padding:0 .5rem .25rem}.slds-mobile-combobox{display:block}.slds-mobile-combobox__header{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-mobile-combobox__header-has-icon{position:relative}.slds-mobile-combobox__header-has-icon .slds-mobile-combobox__addon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:.5rem}.slds-mobile-combobox__addon{-ms-flex-negative:0;flex-shrink:0}.slds-mobile-combobox__input{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.slds-mobile-combobox__input .slds-input{line-height:2.625rem;font-size:1rem}.slds-mobile-lookup__listbox_container{width:100%;margin:.25rem 0;background:var(--slds-g-color-neutral-base-100,#fff)}.slds-mobile-lookup__listbox-option{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:-.75rem;padding:.5rem 1.5rem .5rem 0;min-height:2.75rem;line-height:1.375;border-bottom:1px solid var(--slds-g-color-neutral-base-95,#f1f2f3)}.slds-mobile-lookup__listbox-option mark{font-weight:700;background-color:transparent;color:inherit}.slds-mobile-lookup__listbox-option_heading{font-size:1rem;font-weight:700;border-bottom:0}.slds-mobile-lookup__listbox_text{display:block;color:var(--slds-g-color-neutral-base-10,#080707);font-size:1rem}.slds-mobile-lookup__listbox_meta{display:block;color:var(--slds-g-color-neutral-base-50,#706e6b);font-size:.875rem}.slds-mobile-lookup__listbox_icon_container{margin-left:auto;color:var(--slds-g-color-brand-base-30,#0176d3)}.slds-mobile-lookup__listbox_trigger{line-height:2.625rem;-webkit-box-pack:unset;-ms-flex-pack:unset;justify-content:unset;font-size:1rem;font-weight:700}.slds-mobile-lookup__listbox_trigger .slds-icon{margin-left:.75rem;fill:currentColor}.slds-mobile-lookup__listbox_trigger+.slds-mobile-lookup__listbox{margin-top:-.25rem}.slds-mobile-lookup__listbox_loader{position:relative;height:2.75rem}.slds-faux-input{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;width:100%;height:2.75rem;padding:0 1rem;border-radius:.25rem;color:#0176d3;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--slds-g-color-border-base-4,#c9c9c9);-webkit-transition:border .15s linear;transition:border .15s linear}.slds-faux-input:focus{outline:0;border-color:var(--slds-g-color-brand-base-60,#1b96ff);background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-faux-input_label{display:inline-block;padding-right:.5rem;padding-top:.25rem;margin-bottom:.125rem;font-size:.75rem;color:var(--slds-g-color-neutral-base-30,#444);overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.slds-avatar{width:2rem;height:2rem;overflow:hidden;display:inline-block;vertical-align:middle;border-radius:var(--slds-c-avatar-radius-border,var(--sds-c-avatar-radius-border,.25rem));line-height:1;font-size:.875rem;color:var(--slds-c-avatar-text-color,var(--sds-c-avatar-text-color,var(--slds-g-color-neutral-base-100,#fff)))}.slds-avatar:focus:hover,.slds-avatar:hover{color:var(--slds-c-avatar-text-color-hover,currentColor)}.slds-avatar.slds-avatar_group-image-small{background:url(../images/group_avatar_96.png) top left/cover no-repeat}.slds-avatar.slds-avatar_group-image-medium{background:url(../images/group_avatar_160.png) top left/cover no-repeat}.slds-avatar.slds-avatar_group-image-large{background:url(../images/group_avatar_200.png) top left/cover no-repeat}.slds-avatar.slds-avatar_profile-image-small{background:url(../images/profile_avatar_96.png) top left/cover no-repeat}.slds-avatar.slds-avatar_profile-image-medium{background:url(../images/profile_avatar_160.png) top left/cover no-repeat}.slds-avatar.slds-avatar_profile-image-large{background:url(../images/profile_avatar_200.png) top left/cover no-repeat}.slds-avatar--x-small,.slds-avatar_x-small{width:1.25rem;height:1.25rem;font-size:.625rem}.slds-avatar--x-small .slds-icon,.slds-avatar_x-small .slds-icon{width:1.25rem;height:1.25rem}.slds-avatar--small,.slds-avatar_small{width:1.5rem;height:1.5rem;font-size:.625rem}.slds-avatar--small .slds-icon,.slds-avatar_small .slds-icon{width:1.5rem;height:1.5rem}.slds-avatar--medium,.slds-avatar_medium{width:2rem;height:2rem;font-size:.875rem}.slds-avatar--medium .slds-icon,.slds-avatar_medium .slds-icon{width:2rem;height:2rem}.slds-avatar--large,.slds-avatar_large{width:3rem;height:3rem;font-size:1.125rem;line-height:1.25}.slds-avatar--large .slds-icon,.slds-avatar_large .slds-icon{width:3rem;height:3rem}.slds-avatar--circle,.slds-avatar_circle{border-radius:50%}.slds-avatar--empty,.slds-avatar_empty{border:1px dashed var(--slds-g-color-border-base-1,#e5e5e5)}.slds-avatar__initials{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:auto;color:var(--slds-c-avatar-initials-text-color,var(--sds-c-avatar-initials-text-color));height:100%;text-shadow:0 0 1px rgba(0,0,0,.8)}.slds-avatar__initials[title]{cursor:default;text-decoration:none}.slds-avatar__initials:hover{color:var(--slds-c-avatar-initials-text-color-hover,var(--sds-c-avatar-initials-text-color-hover,var(--slds-g-color-neutral-base-100,#fff)));cursor:default}.slds-avatar__initials_inverse{/*! @css-var-fallback color */--slds-c-avatar-initials-text-color:var(--slds-c-avatar-initials-inverse-text-color, var(--slds-g-color-neutral-base-30, #444444));background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);text-shadow:none}.slds-avatar__initials_inverse:hover{/*! @css-var-fallback color */--slds-c-avatar-initials-text-color-hover:var(--slds-c-avatar-initials-inverse-text-color-hover, var(--slds-g-color-neutral-base-30, #444444))}.slds-avatar-group{width:2rem;height:2rem;position:relative;display:inline-block}.slds-avatar-grouped{border:1px solid var(--slds-g-color-neutral-base-100,#fff);line-height:0;border-radius:50%;background:#34becd}.slds-avatar-grouped_inverse{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-avatar-grouped__primary{width:1.5rem;height:1.5rem;position:absolute;left:0;bottom:0;z-index:1}.slds-avatar-grouped__primary .slds-avatar-grouped__initials{-webkit-transform:scale(.6428571429);transform:scale(.6428571429)}.slds-avatar-grouped__secondary{width:1.25rem;height:1.25rem;position:absolute;top:0;right:0}.slds-avatar-grouped__secondary .slds-avatar-grouped__initials{-webkit-transform:scale(.5);transform:scale(.5)}.slds-avatar-grouped__icon{height:100%;line-height:0}.slds-avatar-grouped__icon .slds-icon{width:100%;height:100%}.slds-avatar-group_x-small{width:1.25rem;height:1.25rem}.slds-avatar-group_x-small .slds-avatar-grouped__primary{width:1rem;height:1rem}.slds-avatar-group_x-small .slds-avatar-grouped__primary .slds-avatar-grouped__initials{-webkit-transform:scale(.3571428571);transform:scale(.3571428571)}.slds-avatar-group_x-small .slds-avatar-grouped__secondary{width:.75rem;height:.75rem}.slds-avatar-group_x-small .slds-avatar-grouped__secondary .slds-avatar-grouped__initials{-webkit-transform:scale(.2142857143);transform:scale(.2142857143)}.slds-avatar-group_small{width:1.5rem;height:1.5rem}.slds-avatar-group_small .slds-avatar-grouped__primary{width:1.25rem;height:1.25rem}.slds-avatar-group_small .slds-avatar-grouped__primary .slds-avatar-grouped__initials{-webkit-transform:scale(.4714285714);transform:scale(.4714285714)}.slds-avatar-group_small .slds-avatar-grouped__secondary{width:1rem;height:1rem}.slds-avatar-group_small .slds-avatar-grouped__secondary .slds-avatar-grouped__initials{-webkit-transform:scale(.3571428571);transform:scale(.3571428571)}.slds-avatar-group_medium{width:2rem;height:2rem}.slds-avatar-group_medium .slds-avatar-grouped__primary{width:1.5rem;height:1.5rem}.slds-avatar-group_medium .slds-avatar-grouped__primary .slds-avatar-grouped__initials{-webkit-transform:scale(.6428571429);transform:scale(.6428571429)}.slds-avatar-group_medium .slds-avatar-grouped__secondary{width:1.25rem;height:1.25rem}.slds-avatar-group_medium .slds-avatar-grouped__secondary .slds-avatar-grouped__initials{-webkit-transform:scale(.5);transform:scale(.5)}.slds-avatar-group_large{width:3rem;height:3rem}.slds-avatar-group_large .slds-avatar-grouped__primary{width:2.5rem;height:2.5rem}.slds-avatar-group_large .slds-avatar-grouped__primary .slds-avatar-grouped__initials{-webkit-transform:scale(1);transform:scale(1)}.slds-avatar-group_large .slds-avatar-grouped__secondary{width:1.5rem;height:1.5rem}.slds-avatar-group_large .slds-avatar-grouped__secondary .slds-avatar-grouped__initials{-webkit-transform:scale(.5714285714);transform:scale(.5714285714)}.slds-file,.slds-image{display:block;position:relative}.slds-file .slds-file__text,.slds-image .slds-file__text{display:block}.slds-file:not(.slds-file_loading) .slds-file__crop:focus:after,.slds-file:not(.slds-file_loading) .slds-file__crop:focus:before,.slds-file:not(.slds-file_loading) .slds-file__crop:hover:after,.slds-file:not(.slds-file_loading) .slds-file__crop:hover:before,.slds-file:not(.slds-file_loading) .slds-file__figure:focus:after,.slds-file:not(.slds-file_loading) .slds-file__figure:focus:before,.slds-file:not(.slds-file_loading) .slds-file__figure:hover:after,.slds-file:not(.slds-file_loading) .slds-file__figure:hover:before,.slds-image:not(.slds-file_loading) .slds-file__crop:focus:after,.slds-image:not(.slds-file_loading) .slds-file__crop:focus:before,.slds-image:not(.slds-file_loading) .slds-file__crop:hover:after,.slds-image:not(.slds-file_loading) .slds-file__crop:hover:before,.slds-image:not(.slds-file_loading) .slds-file__figure:focus:after,.slds-image:not(.slds-file_loading) .slds-file__figure:focus:before,.slds-image:not(.slds-file_loading) .slds-file__figure:hover:after,.slds-image:not(.slds-file_loading) .slds-file__figure:hover:before{position:absolute;z-index:5;cursor:pointer;content:""}.slds-file:not(.slds-file_loading) .slds-file__crop:focus:before,.slds-file:not(.slds-file_loading) .slds-file__crop:hover:before,.slds-file:not(.slds-file_loading) .slds-file__figure:focus:before,.slds-file:not(.slds-file_loading) .slds-file__figure:hover:before,.slds-image:not(.slds-file_loading) .slds-file__crop:focus:before,.slds-image:not(.slds-file_loading) .slds-file__crop:hover:before,.slds-image:not(.slds-file_loading) .slds-file__figure:focus:before,.slds-image:not(.slds-file_loading) .slds-file__figure:hover:before{top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.6)}.slds-file:not(.slds-file_loading) .slds-file__crop:focus:after,.slds-file:not(.slds-file_loading) .slds-file__crop:hover:after,.slds-file:not(.slds-file_loading) .slds-file__figure:focus:after,.slds-file:not(.slds-file_loading) .slds-file__figure:hover:after,.slds-image:not(.slds-file_loading) .slds-file__crop:focus:after,.slds-image:not(.slds-file_loading) .slds-file__crop:hover:after,.slds-image:not(.slds-file_loading) .slds-file__figure:focus:after,.slds-image:not(.slds-file_loading) .slds-file__figure:hover:after{top:50%;left:50%;width:2rem;height:2rem;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MiIgaGVpZ2h0PSI1MiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTUxLjggMjVBMjkgMjkgMCAwIDAgMjYgOSAyOSAyOSAwIDAgMCAuMiAyNWEyIDIgMCAwIDAgMCAxLjhDNSAzNi40IDE0LjcgNDMgMjYgNDNhMjkgMjkgMCAwIDAgMjUuOC0xNiAyIDIgMCAwIDAgMC0xLjh6TTI2IDM3YTExIDExIDAgMSAxIDAtMjIgMTEgMTEgMCAxIDEgMCAyMnptMC0xOGMtNCAwLTcgMy03IDdzMyA3IDcgNyA3LTMgNy03LTMtNy03LTd6Ii8+PC9zdmc+);background-size:contain;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@media (any-hover:none){.slds-file:not(.slds-file_loading) .slds-file__crop:focus:after,.slds-file:not(.slds-file_loading) .slds-file__crop:focus:before,.slds-file:not(.slds-file_loading) .slds-file__crop:hover:after,.slds-file:not(.slds-file_loading) .slds-file__crop:hover:before,.slds-file:not(.slds-file_loading) .slds-file__figure:focus:after,.slds-file:not(.slds-file_loading) .slds-file__figure:focus:before,.slds-file:not(.slds-file_loading) .slds-file__figure:hover:after,.slds-file:not(.slds-file_loading) .slds-file__figure:hover:before,.slds-image:not(.slds-file_loading) .slds-file__crop:focus:after,.slds-image:not(.slds-file_loading) .slds-file__crop:focus:before,.slds-image:not(.slds-file_loading) .slds-file__crop:hover:after,.slds-image:not(.slds-file_loading) .slds-file__crop:hover:before,.slds-image:not(.slds-file_loading) .slds-file__figure:focus:after,.slds-image:not(.slds-file_loading) .slds-file__figure:focus:before,.slds-image:not(.slds-file_loading) .slds-file__figure:hover:after,.slds-image:not(.slds-file_loading) .slds-file__figure:hover:before{display:none}}.slds-file:not(.slds-file_loading) .slds-file__crop:focus+.slds-file__title,.slds-file:not(.slds-file_loading) .slds-file__crop:hover+.slds-file__title,.slds-file:not(.slds-file_loading) .slds-file__figure:focus+.slds-file__title,.slds-file:not(.slds-file_loading) .slds-file__figure:hover+.slds-file__title,.slds-image:not(.slds-file_loading) .slds-file__crop:focus+.slds-file__title,.slds-image:not(.slds-file_loading) .slds-file__crop:hover+.slds-file__title,.slds-image:not(.slds-file_loading) .slds-file__figure:focus+.slds-file__title,.slds-image:not(.slds-file_loading) .slds-file__figure:hover+.slds-file__title{z-index:5}.slds-file.slds-has-title .slds-file__crop:focus:after,.slds-file.slds-has-title .slds-file__crop:hover:after,.slds-file.slds-has-title .slds-file__figure:focus:after,.slds-file.slds-has-title .slds-file__figure:hover:after,.slds-image.slds-has-title .slds-file__crop:focus:after,.slds-image.slds-has-title .slds-file__crop:hover:after,.slds-image.slds-has-title .slds-file__figure:focus:after,.slds-image.slds-has-title .slds-file__figure:hover:after{-webkit-transform:translate(-50%,calc(-50% - (2rem / 2)));transform:translate(-50%,calc(-50% - (2rem / 2)))}.slds-file:focus,.slds-image:focus{border:1px solid var(--slds-g-color-brand-base-50,#014486);-webkit-box-shadow:0 4px 4px 0 rgba(0,0,0,.16);box-shadow:0 4px 4px 0 rgba(0,0,0,.16)}.slds-file :not(:only-child) .slds-spinner,.slds-image :not(:only-child) .slds-spinner{top:45%}.slds-file .slds-file__figure_portrait img,.slds-image .slds-file__figure_portrait img{display:block;margin:0 auto;max-height:15rem;height:auto}.slds-file__crop,.slds-image__crop{display:block;position:relative;overflow:hidden;padding-top:56.25%}.slds-file__crop img,.slds-image__crop img{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);max-width:200%}.slds-file__crop:after,.slds-image__crop:after{content:"";display:block}.slds-file__crop--1-by-1,.slds-file__crop_1-by-1,.slds-image__crop--1-by-1,.slds-image__crop_1-by-1{padding-top:100%}.slds-file__crop--16-by-9,.slds-file__crop_16-by-9,.slds-image__crop--16-by-9,.slds-image__crop_16-by-9{padding-top:56.25%}.slds-file__crop--4-by-3,.slds-file__crop_4-by-3,.slds-image__crop--4-by-3,.slds-image__crop_4-by-3{padding-top:75%}.slds-file__figure,.slds-image__figure{display:block;min-width:12rem;max-width:15rem;min-height:6rem;max-height:15rem}.slds-file__title,.slds-image__title{display:-webkit-box;display:-ms-flexbox;display:flex;z-index:5;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.5rem;overflow:hidden}.slds-file__title .slds-media,.slds-image__title .slds-media{overflow:hidden}.slds-file-has-actions,.slds-image-has-actions{padding-right:3rem}.slds-file--overlay,.slds-file_overlay,.slds-image--overlay,.slds-image_overlay{content:"";background:rgba(0,0,0,.6);color:var(--slds-g-color-neutral-base-100,#fff);position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.slds-file--card,.slds-file_card,.slds-image--card,.slds-image_card{background:var(--slds-g-color-neutral-base-100,#fff);border:1px solid rgba(0,0,0,.16)}.slds-file__icon,.slds-image__icon{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);margin-top:-1rem}.slds-file__actions-menu,.slds-image__actions-menu{position:absolute;z-index:5;bottom:.5rem;right:.25rem}.slds-file__external-icon,.slds-image__external-icon{position:absolute;top:2.5rem;left:1.5rem}.slds-file__loading-icon,.slds-image__loading-icon{fill:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-file_center-icon .slds-file__icon,.slds-image_center-icon .slds-file__icon{margin-top:0}.slds-file__title--overlay,.slds-file__title_overlay,.slds-image__title--overlay,.slds-image__title_overlay{color:var(--slds-g-color-neutral-base-100,#fff);position:absolute;top:0;left:0;right:0;bottom:0}.slds-file__title--overlay .slds-media__body,.slds-file__title_overlay .slds-media__body,.slds-image__title--overlay .slds-media__body,.slds-image__title_overlay .slds-media__body{z-index:1}.slds-file__title--card,.slds-file__title_card,.slds-image__title--card,.slds-image__title_card{background:var(--slds-g-color-neutral-base-95,#f3f3f3);position:absolute;bottom:0;left:0;right:0}.slds-file__title_scrim,.slds-image__title_scrim{background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.5)));background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.5));position:absolute;bottom:0;left:0;right:0;padding:1rem}.slds-table{background-color:var(--slds-g-color-neutral-base-100,#fff);font-size:inherit}.slds-table td,.slds-table th{padding:.25rem .5rem;white-space:nowrap;position:relative}.slds-table th{font-weight:400}.slds-table th:focus{outline:0}.slds-table thead th{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);color:var(--slds-g-color-neutral-base-30,#444);padding:.25rem .5rem;font-weight:700;line-height:normal}.slds-table:not(.slds-no-row-hover) tbody tr:focus,.slds-table:not(.slds-no-row-hover) tbody tr:hover{outline:0}.slds-table:not(.slds-no-row-hover) tbody tr:focus>td,.slds-table:not(.slds-no-row-hover) tbody tr:focus>th,.slds-table:not(.slds-no-row-hover) tbody tr:hover>td,.slds-table:not(.slds-no-row-hover) tbody tr:hover>th{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-table tbody tr.slds-is-selected>td,.slds-table tbody tr.slds-is-selected>th,.slds-table:not(.slds-no-row-hover) tr.slds-is-selected:hover>td,.slds-table:not(.slds-no-row-hover) tr.slds-is-selected:hover>th{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-table tbody tr.slds-is-selected a,.slds-table:not(.slds-no-row-hover) tr.slds-is-selected:hover a{color:var(--slds-g-link-color-focus,#032d60)}.slds-table .slds-cell-wrap{white-space:pre-line;overflow-wrap:break-word;word-wrap:break-word}.slds-table .slds-cell-shrink{width:1%}.slds-table .slds-cell-buffer--left,.slds-table .slds-cell-buffer_left{padding-left:1.5rem}.slds-table .slds-cell-buffer--right,.slds-table .slds-cell-buffer_right{padding-right:1.5rem}.slds-table tbody tr{counter-increment:row-number}.slds-table .slds-row-number:after{content:counter(row-number)}.slds-table [role=gridcell]:focus,.slds-table th:focus{outline:0}.slds-table [role=gridcell].slds-has-focus,.slds-table [role=gridcell]:focus,.slds-table th.slds-has-focus,.slds-table th:focus{-webkit-box-shadow:#0176d3 0 0 0 1px inset;box-shadow:#0176d3 0 0 0 1px inset}.slds-table [role=gridcell].slds-has-focus.slds-cell_action-mode,.slds-table [role=gridcell]:focus.slds-cell_action-mode,.slds-table th.slds-has-focus.slds-cell_action-mode,.slds-table th:focus.slds-cell_action-mode{border-bottom:3px solid var(--slds-g-color-brand-base-50,#014486)}.slds-table [role=gridcell]:active,.slds-table th:active{-webkit-box-shadow:none;box-shadow:none}.slds-table .slds-radio [type=radio]+.slds-radio__label .slds-radio_faux{margin-right:0}.slds-table--cell-buffer tr>td:first-child,.slds-table--cell-buffer tr>th:first-child,.slds-table_cell-buffer tr>td:first-child,.slds-table_cell-buffer tr>th:first-child{padding-left:1.5rem}.slds-table--cell-buffer tr>td:last-child,.slds-table--cell-buffer tr>th:last-child,.slds-table_cell-buffer tr>td:last-child,.slds-table_cell-buffer tr>th:last-child{padding-right:1.5rem}.slds-table--bordered,.slds-table_bordered{border-collapse:separate;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-table--bordered thead>tr+tr>th,.slds-table_bordered thead>tr+tr>th{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-table--bordered tbody td,.slds-table--bordered tbody th,.slds-table_bordered tbody td,.slds-table_bordered tbody th{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-table--bordered:not(.slds-no-row-hover) tbody tr:focus>td:not(.slds-has-focus),.slds-table--bordered:not(.slds-no-row-hover) tbody tr:focus>th:not(.slds-has-focus),.slds-table--bordered:not(.slds-no-row-hover) tbody tr:hover>td:not(.slds-has-focus),.slds-table--bordered:not(.slds-no-row-hover) tbody tr:hover>th:not(.slds-has-focus),.slds-table_bordered:not(.slds-no-row-hover) tbody tr:focus>td:not(.slds-has-focus),.slds-table_bordered:not(.slds-no-row-hover) tbody tr:focus>th:not(.slds-has-focus),.slds-table_bordered:not(.slds-no-row-hover) tbody tr:hover>td:not(.slds-has-focus),.slds-table_bordered:not(.slds-no-row-hover) tbody tr:hover>th:not(.slds-has-focus){-webkit-box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) 0 -1px 0 inset,var(--slds-g-color-border-base-1,#e5e5e5) 0 1px 0 inset;box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) 0 -1px 0 inset,var(--slds-g-color-border-base-1,#e5e5e5) 0 1px 0 inset}.slds-table--col-bordered td+td,.slds-table--col-bordered td+th,.slds-table--col-bordered th+td,.slds-table--col-bordered th+th,.slds-table_col-bordered td+td,.slds-table_col-bordered td+th,.slds-table_col-bordered th+td,.slds-table_col-bordered th+th{border-left:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-table--striped tbody tr:nth-of-type(even)>td,.slds-table--striped tbody tr:nth-of-type(even)>th,.slds-table_striped tbody tr:nth-of-type(even)>td,.slds-table_striped tbody tr:nth-of-type(even)>th{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-table--fixed-layout,.slds-table_fixed-layout{table-layout:fixed;width:100%;white-space:nowrap}.slds-table--fixed-layout thead,.slds-table_fixed-layout thead{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-table--fixed-layout tbody,.slds-table_fixed-layout tbody{-webkit-transform:translateZ(0);transform:translateZ(0)}.slds-table--fixed-layout .slds-cell-shrink,.slds-table_fixed-layout .slds-cell-shrink{width:3rem}.slds-table--fixed-layout .slds-cell-shrink:nth-child(n),.slds-table_fixed-layout .slds-cell-shrink:nth-child(n){padding-left:0;padding-right:0}.slds-table--fixed-layout .slds-cell-shrink:first-child,.slds-table_fixed-layout .slds-cell-shrink:first-child{text-align:right;padding-right:.5rem}.slds-table--fixed-layout .slds-cell-shrink:last-child,.slds-table_fixed-layout .slds-cell-shrink:last-child{text-align:left;padding-left:.5rem}.slds-is-sortable .slds-th__action:focus,.slds-is-sortable .slds-th__action:hover,.slds-is-sortable.slds-has-focus .slds-th__action,.slds-is-sortable.slds-has-focus .slds-th__action:focus,.slds-is-sortable.slds-has-focus .slds-th__action:hover{background-color:var(--slds-g-color-neutral-base-100,#fff);color:currentColor}.slds-is-sortable .slds-th__action:focus .slds-is-sortable__icon,.slds-is-sortable .slds-th__action:hover .slds-is-sortable__icon,.slds-is-sortable.slds-has-focus .slds-th__action .slds-is-sortable__icon,.slds-is-sortable.slds-has-focus .slds-th__action:focus .slds-is-sortable__icon,.slds-is-sortable.slds-has-focus .slds-th__action:hover .slds-is-sortable__icon{display:inline-block;fill:#0176d3}.slds-th__action{display:-webkit-box;display:-ms-flexbox;display:flex;padding:.25rem .5rem;height:2rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-th__action:focus,.slds-th__action:hover{outline:0;background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-th__action--form,.slds-th__action_form{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.slds-th__action-button{position:absolute;-webkit-transform:translateY(-50%);transform:translateY(-50%);top:50%;right:.25rem}.slds-has-button-menu .slds-th__action{padding-right:2rem}.slds-has-button-menu .slds-th__action-button{right:.75rem}.slds-is-sortable__icon{width:.75rem;height:.75rem;margin-left:.25rem;display:none}.slds-is-sorted .slds-is-sortable__icon{display:inline-block}.slds-is-sorted--asc .slds-is-sortable__icon,.slds-is-sorted_asc .slds-is-sortable__icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.slds-table_column-1-wrap tbody tr>:nth-child(1) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-2-wrap tbody tr>:nth-child(2) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-3-wrap tbody tr>:nth-child(3) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-4-wrap tbody tr>:nth-child(4) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-5-wrap tbody tr>:nth-child(5) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-6-wrap tbody tr>:nth-child(6) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-7-wrap tbody tr>:nth-child(7) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-8-wrap tbody tr>:nth-child(8) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-9-wrap tbody tr>:nth-child(9) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-10-wrap tbody tr>:nth-child(10) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-11-wrap tbody tr>:nth-child(11) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-12-wrap tbody tr>:nth-child(12) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-13-wrap tbody tr>:nth-child(13) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-14-wrap tbody tr>:nth-child(14) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}.slds-table_column-15-wrap tbody tr>:nth-child(15) .slds-truncate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;white-space:normal}[class*=slds-table_column-] tr td .slds-truncate{overflow:hidden;position:relative;max-height:3.25rem}[class*=slds-table_column-] tr td .slds-truncate:after{content:"";position:absolute;top:2.25rem;bottom:0;right:0;width:50%;background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),color-stop(69%,#fff));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 69%)}[class*=slds-table_column-] tr:hover td .slds-truncate:after{background:-webkit-gradient(linear,left top,right top,from(rgba(250,250,249,0)),color-stop(69%,#fafaf9));background:linear-gradient(to right,rgba(250,250,249,0) 0,#fafaf9 69%)}.slds-table--resizable-cols thead th,.slds-table_resizable-cols thead th{padding:0}.slds-table--resizable-cols thead th:last-of-type .slds-resizable__handle,.slds-table_resizable-cols thead th:last-of-type .slds-resizable__handle{width:.75rem;right:0}.slds-table--resizable-cols thead th:last-of-type .slds-resizable__handle .slds-resizable__divider:after,.slds-table--resizable-cols thead th:last-of-type .slds-resizable__handle .slds-resizable__divider:before,.slds-table_resizable-cols thead th:last-of-type .slds-resizable__handle .slds-resizable__divider:after,.slds-table_resizable-cols thead th:last-of-type .slds-resizable__handle .slds-resizable__divider:before{right:0}.slds-resizable{max-width:100%}.slds-resizable__handle{width:1.5rem;height:100%;position:absolute;top:0;right:-.75rem}.slds-resizable__divider{position:absolute;right:0;top:0;width:100%;height:100%;display:block;cursor:col-resize;z-index:5000}.slds-resizable__divider:after,.slds-resizable__divider:before{height:100%;content:" ";display:block;position:absolute;top:0;right:.75rem}.slds-resizable__divider:before{background-color:var(--slds-g-color-neutral-base-70,#aeaeae);height:100%;width:1px}.slds-resizable__divider:after{background-color:var(--slds-g-color-brand-base-50,#0176d3);width:1px;height:100vh;opacity:0}.slds-resizable__divider:active:before,.slds-resizable__divider:focus:before,.slds-resizable__divider:hover:before{background-color:var(--slds-g-color-brand-base-50,#0176d3);width:.25rem}.slds-resizable__divider:active:after,.slds-resizable__divider:focus:after,.slds-resizable__divider:hover:after{opacity:1}.slds-resizable__input:focus~.slds-resizable__handle .slds-resizable__divider:before{background-color:var(--slds-g-color-brand-base-50,#0176d3);width:.25rem}.slds-resizable__input:focus~.slds-resizable__handle .slds-resizable__divider:after{opacity:1}.slds-table.slds-has-top-magnet table,.slds-table_joined table{border-radius:0 0 .25rem .25rem;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.1);box-shadow:0 2px 2px 0 rgba(0,0,0,.1)}.slds-table_joined-wrapper{padding:1rem 1rem 0 1rem;border-radius:.25rem;background-clip:padding-box}.slds-table_joined-wrapper .slds-table{border-radius:0 0 .25rem .25rem;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.1);box-shadow:0 2px 2px 0 rgba(0,0,0,.1)}@media (max-width:48em){.slds-max-medium-table--stacked,.slds-max-medium-table_stacked{border:0}.slds-max-medium-table--stacked thead,.slds-max-medium-table_stacked thead{position:absolute!important;margin:-1px!important;border:0!important;padding:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}.slds-max-medium-table--stacked th,.slds-max-medium-table_stacked th{border-top:0}.slds-max-medium-table--stacked tr,.slds-max-medium-table_stacked tr{display:block;border-top:2px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-max-medium-table--stacked td,.slds-max-medium-table--stacked th,.slds-max-medium-table_stacked td,.slds-max-medium-table_stacked th{display:block;padding:.75rem;max-width:100%;width:100%;clear:both;white-space:normal;overflow:hidden;text-align:left}.slds-max-medium-table--stacked td.slds-truncate,.slds-max-medium-table--stacked th.slds-truncate,.slds-max-medium-table_stacked td.slds-truncate,.slds-max-medium-table_stacked th.slds-truncate{max-width:100%}.slds-max-medium-table--stacked td:before,.slds-max-medium-table--stacked th:before,.slds-max-medium-table_stacked td:before,.slds-max-medium-table_stacked th:before{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444);text-transform:uppercase;letter-spacing:.0625rem;display:block;padding-bottom:.25rem;content:attr(data-label)}.slds-max-medium-table--stacked tr>td:first-child,.slds-max-medium-table--stacked tr>td:last-child,.slds-max-medium-table_stacked tr>td:first-child,.slds-max-medium-table_stacked tr>td:last-child{padding:.75rem}.slds-max-medium-table--stacked:not(.slds-no-row-hover) tbody tr:hover td,.slds-max-medium-table--stacked:not(.slds-no-row-hover) tbody tr:hover th,.slds-max-medium-table_stacked:not(.slds-no-row-hover) tbody tr:hover td,.slds-max-medium-table_stacked:not(.slds-no-row-hover) tbody tr:hover th{background-color:inherit!important;-webkit-box-shadow:none!important;box-shadow:none!important}.slds-max-medium-table--stacked .slds-is-interactive .slds-button,.slds-max-medium-table_stacked .slds-is-interactive .slds-button{visibility:visible}.slds-max-medium-table--stacked .slds-cell-shrink,.slds-max-medium-table_stacked .slds-cell-shrink{width:auto}}@media (max-width:48em){.slds-max-medium-table--stacked td:before,.slds-max-medium-table--stacked th:before,.slds-max-medium-table_stacked td:before,.slds-max-medium-table_stacked th:before{padding-bottom:.25rem}}@media (max-width:48em){.slds-max-medium-table--stacked-horizontal,.slds-max-medium-table_stacked-horizontal{border:0}.slds-max-medium-table--stacked-horizontal thead,.slds-max-medium-table_stacked-horizontal thead{position:absolute!important;margin:-1px!important;border:0!important;padding:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}.slds-max-medium-table--stacked-horizontal th,.slds-max-medium-table_stacked-horizontal th{border-top:0}.slds-max-medium-table--stacked-horizontal tr,.slds-max-medium-table_stacked-horizontal tr{display:block;border-top:2px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-max-medium-table--stacked-horizontal td,.slds-max-medium-table--stacked-horizontal th,.slds-max-medium-table_stacked-horizontal td,.slds-max-medium-table_stacked-horizontal th{display:block;padding:.75rem;max-width:100%;width:100%;clear:both;white-space:normal;overflow:hidden;text-align:left}.slds-max-medium-table--stacked-horizontal td.slds-truncate,.slds-max-medium-table--stacked-horizontal th.slds-truncate,.slds-max-medium-table_stacked-horizontal td.slds-truncate,.slds-max-medium-table_stacked-horizontal th.slds-truncate{max-width:100%}.slds-max-medium-table--stacked-horizontal td:before,.slds-max-medium-table--stacked-horizontal th:before,.slds-max-medium-table_stacked-horizontal td:before,.slds-max-medium-table_stacked-horizontal th:before{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444);text-transform:uppercase;letter-spacing:.0625rem;display:block;padding-bottom:.25rem;content:attr(data-label)}.slds-max-medium-table--stacked-horizontal tr>td:first-child,.slds-max-medium-table--stacked-horizontal tr>td:last-child,.slds-max-medium-table_stacked-horizontal tr>td:first-child,.slds-max-medium-table_stacked-horizontal tr>td:last-child{padding:.75rem}.slds-max-medium-table--stacked-horizontal:not(.slds-no-row-hover) tbody tr:hover td,.slds-max-medium-table--stacked-horizontal:not(.slds-no-row-hover) tbody tr:hover th,.slds-max-medium-table_stacked-horizontal:not(.slds-no-row-hover) tbody tr:hover td,.slds-max-medium-table_stacked-horizontal:not(.slds-no-row-hover) tbody tr:hover th{background-color:inherit!important;-webkit-box-shadow:none!important;box-shadow:none!important}.slds-max-medium-table--stacked-horizontal .slds-is-interactive .slds-button,.slds-max-medium-table_stacked-horizontal .slds-is-interactive .slds-button{visibility:visible}.slds-max-medium-table--stacked-horizontal .slds-cell-shrink,.slds-max-medium-table_stacked-horizontal .slds-cell-shrink{width:auto}}@media (max-width:48em){.slds-max-medium-table--stacked-horizontal td,.slds-max-medium-table_stacked-horizontal td{text-align:right}.slds-max-medium-table--stacked-horizontal td:before,.slds-max-medium-table_stacked-horizontal td:before{float:left;margin-top:.125rem}.slds-max-medium-table--stacked-horizontal .slds-truncate,.slds-max-medium-table_stacked-horizontal .slds-truncate{max-width:100%}}.slds-table--edit_container:focus,.slds-table_edit_container:focus{outline:0}.slds-table--edit_container:focus:before,.slds-table_edit_container:focus:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:0 0 0 4px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 4px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-table--edit_container:focus .slds-table--edit_container-message,.slds-table--edit_container:focus .slds-table_edit_container-message,.slds-table_edit_container:focus .slds-table--edit_container-message,.slds-table_edit_container:focus .slds-table_edit_container-message{display:block;position:absolute;top:50%;left:50%;width:20rem;margin-top:-2.25rem;margin-left:-10rem;background-color:var(--slds-g-color-neutral-base-100,#fff);text-align:center;z-index:1}.slds-table--edit_container-message,.slds-table_edit_container-message{display:none}.slds-table--edit thead th,.slds-table_edit thead th{padding:0}.slds-table--edit .slds-cell-error,.slds-table_edit .slds-cell-error{padding-left:0}.slds-table--edit:not(.slds-no-cell-focus) tbody tr:hover>.slds-cell-edit.slds-has-focus,.slds-table_edit:not(.slds-no-cell-focus) tbody tr:hover>.slds-cell-edit.slds-has-focus{background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:#0176d3 0 0 0 1px inset;box-shadow:#0176d3 0 0 0 1px inset}.slds-table--edit.slds-table tbody tr:hover>.slds-cell-edit:hover,.slds-table_edit.slds-table tbody tr:hover>.slds-cell-edit:hover{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-table--edit.slds-table tbody tr:hover>.slds-cell-edit.slds-is-edited,.slds-table_edit.slds-table tbody tr:hover>.slds-cell-edit.slds-is-edited{background-color:var(--slds-g-color-palette-yellow-90,#faffbd)}.slds-table--edit.slds-table tbody tr:hover>.slds-cell-edit.slds-has-error,.slds-table_edit.slds-table tbody tr:hover>.slds-cell-edit.slds-has-error{background-color:var(--slds-g-color-palette-yellow-90,#faffbd);-webkit-box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 2px inset;box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 2px inset}.slds-table--edit .slds-button__icon--edit:focus,.slds-table--edit .slds-button__icon_edit:focus,.slds-table_edit .slds-button__icon--edit:focus,.slds-table_edit .slds-button__icon_edit:focus{fill:var(--slds-g-color-brand-base-50,#1b96ff)}.slds-has-focus .slds-th__action{background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:#014486 0 0 0 1px inset;box-shadow:#014486 0 0 0 1px inset}.slds-has-focus.slds-is-resizable .slds-th__action,.slds-has-focus.slds-is-resizable .slds-th__action:focus,.slds-has-focus.slds-is-resizable .slds-th__action:focus:hover,.slds-has-focus.slds-is-resizable .slds-th__action:hover,.slds-is-resizable .slds-th__action:focus,.slds-is-resizable .slds-th__action:focus:hover{background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:#014486 0 0 0 1px inset,#014486 -.25rem 0 0 inset;box-shadow:#014486 0 0 0 1px inset,#014486 -.25rem 0 0 inset}.slds-table .slds-cell-edit{outline:0}.slds-table .slds-cell-edit.slds-has-focus{background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:#014486 0 0 0 1px inset;box-shadow:#014486 0 0 0 1px inset}.slds-table .slds-cell-edit.slds-has-focus .slds-button__icon--edit,.slds-table .slds-cell-edit.slds-has-focus .slds-button__icon--lock,.slds-table .slds-cell-edit.slds-has-focus .slds-button__icon_edit,.slds-table .slds-cell-edit.slds-has-focus .slds-button__icon_lock{opacity:1}.slds-table .slds-cell-edit.slds-has-focus:hover{-webkit-box-shadow:#014486 0 0 0 1px inset;box-shadow:#014486 0 0 0 1px inset}.slds-table .slds-cell-edit.slds-has-focus a:focus{text-decoration:underline;outline:0}.slds-table .slds-cell-edit.slds-is-edited,.slds-table .slds-cell-edit.slds-is-edited:hover{background-color:var(--slds-g-color-palette-yellow-90,#faffbd)}.slds-table .slds-cell-edit.slds-has-error,.slds-table .slds-cell-edit.slds-has-error:hover{background-color:var(--slds-g-color-palette-yellow-90,#faffbd);-webkit-box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 2px inset;box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 2px inset}.slds-cell-edit__button{width:1.25rem;height:1.25rem;-ms-flex-negative:0;flex-shrink:0}.slds-cell-edit__button:focus .slds-button__icon--edit,.slds-cell-edit__button:focus .slds-button__icon_edit{opacity:1}.slds-cell-edit__button:disabled,.slds-cell-edit__button[disabled]{color:var(--slds-g-color-neutral-base-50,#747474)}.slds-no-cell-focus .slds-has-focus{background:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:none;box-shadow:none}.slds-no-cell-focus .slds-has-focus .slds-th__action,.slds-no-cell-focus .slds-has-focus .slds-th__action:focus,.slds-no-cell-focus .slds-has-focus .slds-th__action:focus:hover,.slds-no-cell-focus .slds-has-focus .slds-th__action:hover{color:inherit;background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:none;box-shadow:none}.slds-no-cell-focus .slds-has-focus .slds-button__icon--edit,.slds-no-cell-focus .slds-has-focus .slds-button__icon_edit{opacity:1}.slds-no-cell-focus .slds-has-focus.slds-is-resizable:hover .slds-th__action{background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) -.25rem 0 0 inset;box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) -.25rem 0 0 inset}.slds-no-cell-focus .slds-is-sortable.slds-has-focus .slds-is-sortable__icon{display:none}.slds-no-cell-focus .slds-is-sorted.slds-has-focus .slds-is-sortable__icon{display:inline-block;fill:var(--slds-g-color-neutral-base-50,#747474)}.slds-no-cell-focus .slds-is-edited,.slds-no-cell-focus .slds-is-edited:hover{background-color:var(--slds-g-color-palette-yellow-90,#faffbd)}.slds-no-cell-focus .slds-has-error,.slds-no-cell-focus .slds-has-error:hover{background-color:var(--slds-g-color-palette-yellow-90,#faffbd);-webkit-box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 2px inset;box-shadow:var(--slds-g-color-error-base-40,#ea001e) 0 0 0 2px inset}.slds-no-cell-focus thead .slds-has-focus:hover{color:var(--slds-g-link-color,#0176d3)}.slds-no-cell-focus thead .slds-has-focus:hover .slds-is-sortable__icon{display:inline-block;fill:var(--slds-g-link-color,#0176d3)}.slds-hint-parent .slds-cell-edit .slds-button__icon--edit,.slds-hint-parent .slds-cell-edit .slds-button__icon--lock,.slds-hint-parent .slds-cell-edit .slds-button__icon_edit,.slds-hint-parent .slds-cell-edit .slds-button__icon_lock{opacity:0}.slds-hint-parent .slds-cell-edit:focus .slds-button__icon--edit,.slds-hint-parent .slds-cell-edit:focus .slds-button__icon_edit,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon--edit,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon_edit{opacity:.5}.slds-hint-parent .slds-cell-edit:focus .slds-button__icon--edit:focus,.slds-hint-parent .slds-cell-edit:focus .slds-button__icon--edit:hover,.slds-hint-parent .slds-cell-edit:focus .slds-button__icon_edit:focus,.slds-hint-parent .slds-cell-edit:focus .slds-button__icon_edit:hover,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon--edit:focus,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon--edit:hover,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon_edit:focus,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon_edit:hover{fill:var(--slds-g-color-brand-base-50,#1b96ff);opacity:1}.slds-hint-parent .slds-cell-edit:focus .slds-button__icon--lock,.slds-hint-parent .slds-cell-edit:focus .slds-button__icon_lock,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon--lock,.slds-hint-parent .slds-cell-edit:hover .slds-button__icon_lock{opacity:.5}.slds-hint-parent .slds-cell-edit.slds-has-focus .slds-button__icon--edit,.slds-hint-parent .slds-cell-edit.slds-has-focus .slds-button__icon_edit{fill:var(--slds-g-color-neutral-base-50,#747474);opacity:1}.slds-form-element__label--edit,.slds-form-element__label_edit{margin:0 .125rem 0}.slds-popover--edit,.slds-popover_edit{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.slds-popover--edit .slds-popover__body,.slds-popover_edit .slds-popover__body{padding:.25rem .25rem .25rem 0}.slds-popover--edit .slds-form-element__help,.slds-popover_edit .slds-form-element__help{width:100%;padding-left:.75rem}.slds-table--header-fixed_container,.slds-table_header-fixed_container{position:relative;padding-top:2rem;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);overflow:hidden}.slds-table--header-fixed_container:before,.slds-table_header-fixed_container:before{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);content:"";display:block;position:relative;width:100%}.slds-cell-fixed{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);position:absolute;top:0;min-height:2rem}.slds-table--header-fixed,.slds-table_header-fixed{border-top:0}.slds-table--header-fixed thead th,.slds-table_header-fixed thead th{position:static;padding:0;border-top:0}.slds-table--header-fixed tbody tr:first-child td,.slds-table--header-fixed tbody tr:first-child th,.slds-table_header-fixed tbody tr:first-child td,.slds-table_header-fixed tbody tr:first-child th{border-top:0}.slds-table_header-hidden{border-top:0}.slds-tree .slds-tree__item .slds-is-disabled{visibility:hidden}.slds-tree .slds-is-selected{background:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:var(--slds-g-color-brand-base-50,#0176d3) 4px 0 0 inset;box-shadow:var(--slds-g-color-brand-base-50,#0176d3) 4px 0 0 inset}.slds-tree .slds-is-focused{text-decoration:underline}.slds-tree [aria-expanded=false]>.slds-tree__item>.slds-button[aria-controls]>.slds-button__icon,.slds-tree [aria-expanded=false]>.slds-tree__item>.slds-button[aria-controls]>span>.slds-button__icon{-webkit-transition:.2s -webkit-transform ease-in-out;transition:.2s -webkit-transform ease-in-out;transition:.2s transform ease-in-out;transition:.2s transform ease-in-out,.2s -webkit-transform ease-in-out;-webkit-transform:rotate(0);transform:rotate(0)}.slds-tree [aria-expanded=true]>.slds-tree__item>.slds-button[aria-controls]>.slds-button__icon,.slds-tree [aria-expanded=true]>.slds-tree__item>.slds-button[aria-controls]>span>.slds-button__icon{-webkit-transition:.2s -webkit-transform ease-in-out;transition:.2s -webkit-transform ease-in-out;transition:.2s transform ease-in-out;transition:.2s transform ease-in-out,.2s -webkit-transform ease-in-out;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.slds-tree__item a{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-tree__item a:hover{text-decoration:none}.slds-tree__item a:focus{outline:0;text-decoration:underline}.slds-tree-container,.slds-tree_container{min-width:7.5rem;max-width:var(--slds-c-tree-sizing-max-width,var(--sds-c-tree-sizing-max-width,25rem))}.slds-tree-container>.slds-text-heading--label,.slds-tree-container>.slds-text-heading_label,.slds-tree_container>.slds-text-heading--label,.slds-tree_container>.slds-text-heading_label{margin-bottom:.5rem}.slds-tree__item{display:-webkit-box;display:-ms-flexbox;display:flex;padding:.375rem 0 .375rem 1rem}.slds-tree__item.slds-is-hovered,.slds-tree__item:hover{background:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:pointer}.slds-tree [role=treeitem]:focus{outline:0}.slds-tree [role=treeitem]:focus>.slds-tree__item{background:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:pointer;text-decoration:underline}.slds-tree [role=treeitem][aria-selected=true]>.slds-tree__item{background:rgba(21,137,238,.1);-webkit-box-shadow:#1b96ff 4px 0 0 inset;box-shadow:#1b96ff 4px 0 0 inset}[dir=rtl] .slds-tree [role=treeitem][aria-selected=true]>.slds-tree__item{-webkit-box-shadow:#1b96ff -4px 0 0 inset;box-shadow:#1b96ff -4px 0 0 inset}.slds-tree [aria-disabled=true]{color:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-tree [aria-disabled=true] .slds-tree__item.slds-is-hovered,.slds-tree [aria-disabled=true] .slds-tree__item:hover{background-color:transparent;cursor:default}.slds-tree [aria-disabled=true] .slds-tree__item-meta{color:inherit}.slds-tree [role=treeitem]>[role=group]{display:none}.slds-tree [role=treeitem][aria-expanded=true]>[role=group]{display:block}[aria-expanded=false]>.slds-tree__item .slds-button__icon{-webkit-transition:.2s -webkit-transform ease-in-out;transition:.2s -webkit-transform ease-in-out;transition:.2s transform ease-in-out;transition:.2s transform ease-in-out,.2s -webkit-transform ease-in-out;-webkit-transform:rotate(0);transform:rotate(0)}[aria-expanded=true]>.slds-tree__item .slds-button__icon{-webkit-transition:.2s -webkit-transform ease-in-out;transition:.2s -webkit-transform ease-in-out;transition:.2s transform ease-in-out;transition:.2s transform ease-in-out,.2s -webkit-transform ease-in-out;-webkit-transform:rotate(90deg);transform:rotate(90deg)}[dir=rtl] [aria-expanded=true]>.slds-tree__item .slds-button__icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}[aria-level="1"]>.slds-tree__item{padding-left:1rem}[aria-level="2"]>.slds-tree__item{padding-left:2rem}[aria-level="3"]>.slds-tree__item{padding-left:3rem}[aria-level="4"]>.slds-tree__item{padding-left:4rem}[aria-level="5"]>.slds-tree__item{padding-left:5rem}[aria-level="6"]>.slds-tree__item{padding-left:6rem}[aria-level="7"]>.slds-tree__item{padding-left:7rem}[aria-level="8"]>.slds-tree__item{padding-left:8rem}[aria-level="9"]>.slds-tree__item{padding-left:9rem}[aria-level="10"]>.slds-tree__item{padding-left:10rem}[aria-level="11"]>.slds-tree__item{padding-left:11rem}[aria-level="12"]>.slds-tree__item{padding-left:12rem}[aria-level="13"]>.slds-tree__item{padding-left:13rem}[aria-level="14"]>.slds-tree__item{padding-left:14rem}[aria-level="15"]>.slds-tree__item{padding-left:15rem}[aria-level="16"]>.slds-tree__item{padding-left:16rem}[aria-level="17"]>.slds-tree__item{padding-left:17rem}[aria-level="18"]>.slds-tree__item{padding-left:18rem}[aria-level="19"]>.slds-tree__item{padding-left:19rem}[aria-level="20"]>.slds-tree__item{padding-left:20rem}.slds-tree__item-label{display:block}.slds-tree__item-meta{display:block;color:var(--slds-g-color-neutral-base-30,#444)}.slds-tree__item .slds-button{-ms-flex-item-align:start;align-self:flex-start;margin-top:.125rem}.slds-tree__item .slds-pill{margin-left:.75rem}.slds-tree__group-header{font-size:.875rem;font-weight:700}.slds-table--tree .slds-tree__item,.slds-table_tree .slds-tree__item{line-height:1.5rem}.slds-table--tree .slds-tree__item a,.slds-table_tree .slds-tree__item a{color:var(--slds-g-link-color,#0176d3)}.slds-table--tree .slds-tree__item a:hover,.slds-table_tree .slds-tree__item a:hover{text-decoration:underline}.slds-table--tree .slds-button,.slds-table_tree .slds-button{-ms-flex-item-align:center;align-self:center}.slds-table--tree .slds-button:not(.slds-th__action-button),.slds-table_tree .slds-button:not(.slds-th__action-button){margin-top:0}.slds-table--tree [aria-level="1"]>.slds-tree__item,.slds-table_tree [aria-level="1"]>.slds-tree__item{padding-left:1.5rem}.slds-table--tree [aria-level="2"]>.slds-tree__item,.slds-table_tree [aria-level="2"]>.slds-tree__item{padding-left:2.5rem}.slds-table--tree [aria-level="3"]>.slds-tree__item,.slds-table_tree [aria-level="3"]>.slds-tree__item{padding-left:3.5rem}.slds-table--tree [aria-level="4"]>.slds-tree__item,.slds-table_tree [aria-level="4"]>.slds-tree__item{padding-left:4.5rem}.slds-table--tree [aria-level="5"]>.slds-tree__item,.slds-table_tree [aria-level="5"]>.slds-tree__item{padding-left:5.5rem}.slds-table--tree [aria-level="6"]>.slds-tree__item,.slds-table_tree [aria-level="6"]>.slds-tree__item{padding-left:6.5rem}.slds-table--tree [aria-level="7"]>.slds-tree__item,.slds-table_tree [aria-level="7"]>.slds-tree__item{padding-left:7.5rem}.slds-table--tree [aria-level="8"]>.slds-tree__item,.slds-table_tree [aria-level="8"]>.slds-tree__item{padding-left:8.5rem}.slds-table--tree [aria-level="9"]>.slds-tree__item,.slds-table_tree [aria-level="9"]>.slds-tree__item{padding-left:9.5rem}.slds-table--tree [aria-level="10"]>.slds-tree__item,.slds-table_tree [aria-level="10"]>.slds-tree__item{padding-left:10.5rem}.slds-table--tree [aria-level="11"]>.slds-tree__item,.slds-table_tree [aria-level="11"]>.slds-tree__item{padding-left:11.5rem}.slds-table--tree [aria-level="12"]>.slds-tree__item,.slds-table_tree [aria-level="12"]>.slds-tree__item{padding-left:12.5rem}.slds-table--tree [aria-level="13"]>.slds-tree__item,.slds-table_tree [aria-level="13"]>.slds-tree__item{padding-left:13.5rem}.slds-table--tree [aria-level="14"]>.slds-tree__item,.slds-table_tree [aria-level="14"]>.slds-tree__item{padding-left:14.5rem}.slds-table--tree [aria-level="15"]>.slds-tree__item,.slds-table_tree [aria-level="15"]>.slds-tree__item{padding-left:15.5rem}.slds-table--tree [aria-level="16"]>.slds-tree__item,.slds-table_tree [aria-level="16"]>.slds-tree__item{padding-left:16.5rem}.slds-table--tree [aria-level="17"]>.slds-tree__item,.slds-table_tree [aria-level="17"]>.slds-tree__item{padding-left:17.5rem}.slds-table--tree [aria-level="18"]>.slds-tree__item,.slds-table_tree [aria-level="18"]>.slds-tree__item{padding-left:18.5rem}.slds-table--tree [aria-level="19"]>.slds-tree__item,.slds-table_tree [aria-level="19"]>.slds-tree__item{padding-left:19.5rem}.slds-table--tree [aria-level="20"]>.slds-tree__item,.slds-table_tree [aria-level="20"]>.slds-tree__item{padding-left:20.5rem}.slds-einstein-header{position:relative;background-color:var(--slds-g-color-palette-cloud-blue-80,#90d0fe);background-image:url(../images/einstein-headers/einstein-header-background.svg);background-repeat:no-repeat;background-position:left top;background-size:cover;border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);padding-top:.75rem;padding-bottom:.75rem;text-shadow:0 0 4px var(--slds-g-color-palette-cloud-blue-90,#cfe9fe)}.slds-einstein-header .slds-popover__close{color:currentColor}.slds-einstein-header .slds-einstein-header__figure,.slds-einstein-header .slds-einstein-header__figure:last-child{margin-bottom:calc((.75rem + 5px) * -1);height:4.75rem;background-image:url(../images/einstein-headers/einstein-figure.svg);background-position:right bottom;background-repeat:no-repeat}.slds-einstein-header .slds-einstein-header__actions{padding-left:1rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-einstein-header .slds-popover__close{position:absolute;top:0;right:0}.slds-popover_einstein.slds-nubbin--left-top:before,.slds-popover_einstein.slds-nubbin--right-top:before,.slds-popover_einstein.slds-nubbin--top-left:before,.slds-popover_einstein.slds-nubbin--top-right:before,.slds-popover_einstein.slds-nubbin--top:before,.slds-popover_einstein.slds-nubbin_left-top:before,.slds-popover_einstein.slds-nubbin_right-top:before,.slds-popover_einstein.slds-nubbin_top-left:before,.slds-popover_einstein.slds-nubbin_top-right:before,.slds-popover_einstein.slds-nubbin_top:before{background-color:var(--slds-g-color-palette-cloud-blue-80,#90d0fe)}.slds-section-title{font-size:1rem}.slds-section-title>a{display:inline-block;color:var(--slds-g-color-neutral-base-10,#181818)}.slds-section-title>a:focus,.slds-section-title>a:hover{color:var(--slds-g-link-color-hover,#014486)}.slds-section-title>a:focus{-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-section-title>a:active{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-section-title .slds-icon{width:1rem;height:1rem;fill:currentColor}.slds-section-title .slds-section-group--is-closed .slds-icon,.slds-section-title .slds-section-group_is-closed .slds-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.slds-section{margin-top:.5rem;margin-bottom:.5rem}.slds-section.slds-is-open .slds-section__title-action-icon{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:45%;transform-origin:45%}.slds-section.slds-is-open .slds-section__content{padding-top:.5rem;overflow:visible;visibility:visible;opacity:1;height:auto}.slds-section__title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:1rem;line-height:1.875rem;border:1px solid transparent;border-radius:.25rem}.slds-section__title-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--slds-g-color-neutral-base-95,#f3f3f3);cursor:pointer;width:100%;text-align:left;color:currentColor;font-size:inherit;padding:0 .5rem}.slds-section__title-action:active,.slds-section__title-action:focus,.slds-section__title-action:hover{background:var(--slds-g-color-neutral-base-95,#f3f3f3);color:inherit}.slds-section__content{overflow:hidden;visibility:hidden;opacity:0;height:0}.slds-section__title-action-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.slds-section-title--divider,.slds-section-title_divider{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444);text-transform:uppercase;letter-spacing:.0625rem;padding:.5rem 1rem;background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-illustration{text-align:center}.slds-illustration.slds-illustration_small .slds-illustration__svg{width:100%;max-width:300px;max-height:200px;margin-bottom:1rem}.slds-illustration.slds-illustration_large .slds-illustration__svg{width:100%;max-width:600px;max-height:400px;margin-bottom:3rem}.slds-illustration.slds-illustration_large .slds-illustration__header{margin-bottom:1.5rem}.slds-illustration.slds-illustration_large p{margin-bottom:3rem}.slds-illustration .slds-illustration__stroke-primary{stroke:var(--slds-g-color-palette-cloud-blue-80,#90d0fe)}.slds-illustration .slds-illustration__stroke-secondary{stroke:var(--slds-g-color-palette-cloud-blue-90,#cfe9fe)}.slds-illustration .slds-illustration__fill-primary{fill:var(--slds-g-color-palette-cloud-blue-80,#90d0fe)}.slds-illustration .slds-illustration__fill-secondary{fill:var(--slds-g-color-palette-cloud-blue-90,#cfe9fe)}.slds-region{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-region__pinned-top{background-color:var(--slds-g-color-neutral-base-100,#fff);border-bottom:1px solid var(--slds-g-color-border-base-1,#c9c9c9)}.slds-region__pinned-left{background-color:var(--slds-g-color-neutral-base-100,#fff);border-right:1px solid var(--slds-g-color-border-base-1,#c9c9c9)}.slds-region__pinned-right{background-color:var(--slds-g-color-neutral-base-100,#fff);border-left:1px solid var(--slds-g-color-border-base-1,#c9c9c9)}.slds-vertical-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem}.slds-vertical-tabs__nav{width:12rem;border-right:1px solid var(--slds-g-color-border-base-1,#e5e5e5);background:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-vertical-tabs__nav-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);color:var(--slds-g-color-neutral-base-30,#444)}.slds-vertical-tabs__nav-item:last-child{margin-bottom:-1px}.slds-vertical-tabs__link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:0;padding:.75rem;color:currentColor}.slds-vertical-tabs__link:hover{background:var(--slds-g-color-neutral-base-80,#c9c9c9);color:var(--slds-g-color-neutral-base-10,#181818);text-decoration:none}.slds-vertical-tabs__link:focus{outline:0}.slds-vertical-tabs__left-icon{margin-right:.5rem}.slds-vertical-tabs__left-icon:empty{margin-right:0}.slds-vertical-tabs__right-icon{margin-left:auto}.slds-vertical-tabs__content{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:1rem;background:var(--slds-g-color-neutral-base-100,#fff)}.slds-vertical-tabs__nav-item.slds-is-active{margin-right:-1px;border-right:0;background:var(--slds-g-color-neutral-base-100,#fff);color:#0176d3}.slds-vertical-tabs__nav-item.slds-is-active .slds-vertical-tabs__link:hover{background:var(--slds-g-color-neutral-base-100,#fff);color:currentColor}.slds-vertical-tabs__nav-item.slds-has-focus{text-decoration:underline}.slds-welcome-mat .slds-modal__container{width:52.0625rem;max-width:none}.slds-welcome-mat{position:relative}.slds-welcome-mat__content{min-height:25rem;max-height:37.5rem}.slds-welcome-mat__content .slds-progress-bar{display:inline-block;width:12.5rem;background:var(--slds-g-color-neutral-base-100,#fff)}.slds-welcome-mat__content .slds-progress-bar__value{background:var(--slds-g-color-success-base-50,#2e844a)}.slds-welcome-mat__info{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:auto;padding:1rem 3rem 7.75rem;color:var(--slds-g-color-brand-base-20,#032d60);background-image:url(../images/welcome-mat/bg-info@2x.png);background-position:bottom center;background-repeat:no-repeat;background-size:contain;background-color:var(--sds-g-color-palette-cloud-blue-90,#cfe9fe);-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-welcome-mat__info-content{margin:auto;text-align:center}.slds-welcome-mat__info-title{margin-bottom:1.5rem;font-size:2.625rem;font-weight:700;line-height:1.25}.slds-welcome-mat__info-description{margin-bottom:1.5rem}.slds-welcome-mat__info-progress{margin-bottom:1rem}.slds-welcome-mat__tiles{background:var(--slds-g-color-neutral-base-95,#f3f3f3);overflow:auto;padding:1rem}.slds-welcome-mat__tile{margin:1rem 0}.slds-welcome-mat__tile .slds-media{padding:.5rem}.slds-welcome-mat__tile:not(.slds-welcome-mat__tile_complete):not(.slds-welcome-mat__tile_info-only){-webkit-box-shadow:0 2px 2px var(--slds-g-color-neutral-base-10,rgba(0,0,0,.05));box-shadow:0 2px 2px var(--slds-g-color-neutral-base-10,rgba(0,0,0,.05));border-radius:.25rem;background:var(--slds-g-color-neutral-base-100,#fff)}.slds-welcome-mat__tile:not(.slds-welcome-mat__tile_complete):not(.slds-welcome-mat__tile_info-only):hover{-webkit-box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset,0 2px 2px var(--slds-g-color-neutral-base-10,rgba(0,0,0,.05));box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset,0 2px 2px var(--slds-g-color-neutral-base-10,rgba(0,0,0,.05))}.slds-welcome-mat__tile:not(.slds-welcome-mat__tile_complete) .slds-icon-action-check{display:none}.slds-welcome-mat__tile:first-child{margin-top:0}.slds-welcome-mat__tile:last-child{margin-bottom:0}.slds-welcome-mat__tile-figure{margin-left:.25rem}.slds-welcome-mat__tile-title{font-weight:700}.slds-welcome-mat__tile-body{padding:.75rem;border-left:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-welcome-mat__tile-description{color:var(--slds-g-color-neutral-base-30,#444);font-size:.75rem;line-height:1.5}.slds-welcome-mat__tile-icon-container{position:relative}.slds-welcome-mat__tile_complete{background:0 0}.slds-welcome-mat__tile_complete .slds-icon{fill:var(--slds-g-color-neutral-base-80,#c9c9c9)}.slds-welcome-mat .slds-icon-action-check{position:absolute;bottom:-.625rem;right:-.625rem;height:1.25rem;width:1.25rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:.25rem;border:2px solid var(--slds-g-color-neutral-base-95,#f3f3f3);border-radius:1.25rem;line-height:0;background:var(--slds-g-color-success-base-60,#3ba755)}.slds-welcome-mat .slds-icon-action-check .slds-icon{fill:var(--slds-g-color-neutral-base-100,#fff)}.slds-welcome-mat_splash .slds-welcome-mat__content{height:37.5rem}.slds-welcome-mat_splash .slds-welcome-mat__info-content{max-width:37.5rem}.slds-welcome-mat_splash .slds-welcome-mat__info-title{font-size:2rem}.slds-welcome-mat_info-only .slds-welcome-mat__content{height:37.5rem}.slds-welcome-mat_info-only .slds-welcome-mat__info-title{font-size:2rem}.slds-welcome-mat__tiles_info-only{background-color:var(--slds-g-color-neutral-base-100,#fff)}.slds-welcome-mat__tile_info-only .slds-welcome-mat__tile-body{border-left:0}.slds-welcome-mat__info-badge-container{display:inline-block;position:relative}.slds-welcome-mat__info-badge-container .slds-icon-action-check{border-width:0;top:50%;right:0;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0);display:none}.slds-welcome-mat__info-badge{margin-bottom:.5rem}.slds-welcome-mat__info-progress_complete .slds-icon-action-check{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-summary-detail{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-summary-detail .slds-summary-detail__action-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.slds-summary-detail .slds-summary-detail__content{overflow:hidden;visibility:hidden;opacity:0;height:0}.slds-summary-detail.slds-is-open .slds-summary-detail__action-icon{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:45%;transform-origin:45%}.slds-summary-detail.slds-is-open .slds-summary-detail__content{padding-top:.75rem;overflow:visible;visibility:visible;opacity:1;height:auto}.slds-setup-assistant{padding:1rem}.slds-setup-assistant__item{border-bottom:1px var(--slds-g-color-border-base-1,#e5e5e5) solid;padding:2rem 0}.slds-setup-assistant__item:first-child{padding-top:0}.slds-setup-assistant__item:last-child{padding-bottom:0;border-bottom:0}.slds-setup-assistant__step-summary .slds-progress-ring_large{top:1px}.slds-setup-assistant__step-summary-content{margin-right:3rem}.slds-setup-assistant__step-summary-title{padding-bottom:.5rem;font-weight:700}.slds-setup-assistant__step-detail{padding-left:2.75rem}@media (min-width:30em){.slds-nowrap--small,.slds-nowrap_small{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}@media (min-width:48em){.slds-nowrap--medium,.slds-nowrap_medium{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}@media (min-width:64em){.slds-nowrap--large,.slds-nowrap_large{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}.slds-col--padded,.slds-col_padded{padding-right:.75rem;padding-left:.75rem}.slds-col--padded-medium,.slds-col_padded-medium{padding-right:1rem;padding-left:1rem}.slds-col--padded-large,.slds-col_padded-large{padding-right:1.5rem;padding-left:1.5rem}.slds-col--padded-around,.slds-col_padded-around{padding:.75rem}.slds-col--padded-around-medium,.slds-col_padded-around-medium{padding:1rem}.slds-col--padded-around-large,.slds-col_padded-around-large{padding:1.5rem}@media (min-width:64em){.slds-col-rule--top,.slds-col-rule_top{border-top:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-col-rule--right,.slds-col-rule_right{border-right:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-col-rule--bottom,.slds-col-rule_bottom{border-bottom:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-col-rule--left,.slds-col-rule_left{border-left:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}}.slds-align-content-center{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-item-align:center;align-self:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.slds-grid{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-grid--frame,.slds-grid_frame{min-width:100vw;min-height:100vh;overflow:hidden}.slds-grid--vertical,.slds-grid_vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.slds-grid--vertical-reverse,.slds-grid_vertical-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.slds-grid--reverse,.slds-grid_reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.slds-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-nowrap{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}@media (min-width:20em){.slds-x-small-nowrap{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}@media (min-width:30em){.slds-small-nowrap{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}@media (min-width:48em){.slds-medium-nowrap{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}@media (min-width:64em){.slds-large-nowrap{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}}.slds-gutters{margin-right:-.75rem;margin-left:-.75rem}.slds-gutters .slds-col{padding-right:.75rem;padding-left:.75rem}.slds-gutters_xxx-small{margin-right:-.125rem;margin-left:-.125rem}.slds-gutters_xxx-small .slds-col{padding-right:.125rem;padding-left:.125rem}.slds-gutters_xx-small{margin-right:-.25rem;margin-left:-.25rem}.slds-gutters_xx-small .slds-col{padding-right:.25rem;padding-left:.25rem}.slds-gutters_x-small{margin-right:-.5rem;margin-left:-.5rem}.slds-gutters_x-small .slds-col{padding-right:.5rem;padding-left:.5rem}.slds-gutters_small{margin-right:-.75rem;margin-left:-.75rem}.slds-gutters_small .slds-col{padding-right:.75rem;padding-left:.75rem}.slds-gutters_medium{margin-right:-1rem;margin-left:-1rem}.slds-gutters_medium .slds-col{padding-right:1rem;padding-left:1rem}.slds-gutters_large{margin-right:-1.5rem;margin-left:-1.5rem}.slds-gutters_large .slds-col{padding-right:1.5rem;padding-left:1.5rem}.slds-gutters_x-large{margin-right:-2rem;margin-left:-2rem}.slds-gutters_x-large .slds-col{padding-right:2rem;padding-left:2rem}.slds-gutters_xx-large{margin-right:-3rem;margin-left:-3rem}.slds-gutters_xx-large .slds-col{padding-right:3rem;padding-left:3rem}.slds-gutters_direct{margin-right:-.75rem;margin-left:-.75rem}.slds-gutters_direct>.slds-col{padding-right:.75rem;padding-left:.75rem}.slds-gutters_direct-xxx-small{margin-right:-.125rem;margin-left:-.125rem}.slds-gutters_direct-xxx-small>.slds-col{padding-right:.125rem;padding-left:.125rem}.slds-gutters_direct-xx-small{margin-right:-.25rem;margin-left:-.25rem}.slds-gutters_direct-xx-small>.slds-col{padding-right:.25rem;padding-left:.25rem}.slds-gutters_direct-x-small{margin-right:-.5rem;margin-left:-.5rem}.slds-gutters_direct-x-small>.slds-col{padding-right:.5rem;padding-left:.5rem}.slds-gutters_direct-small{margin-right:-.75rem;margin-left:-.75rem}.slds-gutters_direct-small>.slds-col{padding-right:.75rem;padding-left:.75rem}.slds-gutters_direct-medium{margin-right:-1rem;margin-left:-1rem}.slds-gutters_direct-medium>.slds-col{padding-right:1rem;padding-left:1rem}.slds-gutters_direct-large{margin-right:-1.5rem;margin-left:-1.5rem}.slds-gutters_direct-large>.slds-col{padding-right:1.5rem;padding-left:1.5rem}.slds-gutters_direct-x-large{margin-right:-2rem;margin-left:-2rem}.slds-gutters_direct-x-large>.slds-col{padding-right:2rem;padding-left:2rem}.slds-gutters_direct-xx-large{margin-right:-3rem;margin-left:-3rem}.slds-gutters_direct-xx-large>.slds-col{padding-right:3rem;padding-left:3rem}.slds-grid--pull-padded,.slds-grid_pull-padded{margin-right:-.75rem;margin-left:-.75rem}.slds-grid--pull-padded-xxx-small,.slds-grid_pull-padded-xxx-small{margin-right:-.125rem;margin-left:-.125rem}.slds-grid--pull-padded-xx-small,.slds-grid_pull-padded-xx-small{margin-right:-.25rem;margin-left:-.25rem}.slds-grid--pull-padded-x-small,.slds-grid_pull-padded-x-small{margin-right:-.5rem;margin-left:-.5rem}.slds-grid--pull-padded-small,.slds-grid_pull-padded-small{margin-right:-.75rem;margin-left:-.75rem}.slds-grid--pull-padded-medium,.slds-grid_pull-padded-medium{margin-right:-1rem;margin-left:-1rem}.slds-grid--pull-padded-large,.slds-grid_pull-padded-large{margin-right:-1.5rem;margin-left:-1.5rem}.slds-grid--pull-padded-x-large,.slds-grid_pull-padded-x-large{margin-right:-2rem;margin-left:-2rem}.slds-grid--pull-padded-xx-large,.slds-grid_pull-padded-xx-large{margin-right:-3rem;margin-left:-3rem}.slds-col,[class*=slds-col--padded],[class*=slds-col_padded]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}@media (min-width:64em){.slds-col--rule-top,.slds-col_rule-top{border-top:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}}@media (min-width:64em){.slds-col--rule-right,.slds-col_rule-right{border-right:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}}@media (min-width:64em){.slds-col--rule-bottom,.slds-col_rule-bottom{border-bottom:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}}@media (min-width:64em){.slds-col--rule-left,.slds-col_rule-left{border-left:1px solid var(--slds-g-color-neutral-base-95,#f3f3f3)}}.slds-has-flexi-truncate{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0}.slds-no-flex{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-no-space{min-width:0}.slds-grow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.slds-grow-none{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.slds-shrink{-ms-flex-negative:1;flex-shrink:1}.slds-shrink-none{-ms-flex-negative:0;flex-shrink:0}.slds-text-longform ul.slds-grid{margin-left:0;list-style:none}.slds-grid--align-center,.slds-grid_align-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.slds-grid--align-center .slds-col,.slds-grid--align-center [class*=slds-col--padded],.slds-grid--align-center [class*=slds-col_padded],.slds-grid_align-center .slds-col,.slds-grid_align-center [class*=slds-col--padded],.slds-grid_align-center [class*=slds-col_padded]{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.slds-grid--align-space,.slds-grid_align-space{-ms-flex-pack:distribute;justify-content:space-around}.slds-grid--align-space .slds-col,.slds-grid--align-space [class*=slds-col--padded],.slds-grid--align-space [class*=slds-col_padded],.slds-grid_align-space .slds-col,.slds-grid_align-space [class*=slds-col--padded],.slds-grid_align-space [class*=slds-col_padded]{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.slds-grid--align-spread,.slds-grid_align-spread{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.slds-grid--align-spread .slds-col,.slds-grid--align-spread [class*=slds-col--padded],.slds-grid--align-spread [class*=slds-col_padded],.slds-grid_align-spread .slds-col,.slds-grid_align-spread [class*=slds-col--padded],.slds-grid_align-spread [class*=slds-col_padded]{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.slds-grid--align-end,.slds-grid_align-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.slds-grid--align-end .slds-col,.slds-grid--align-end [class*=slds-col--padded],.slds-grid--align-end [class*=slds-col_padded],.slds-grid_align-end .slds-col,.slds-grid_align-end [class*=slds-col--padded],.slds-grid_align-end [class*=slds-col_padded]{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.slds-grid--vertical-align-start,.slds-grid_vertical-align-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}.slds-grid--vertical-align-center,.slds-grid_vertical-align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.slds-grid--vertical-align-end,.slds-grid_vertical-align-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}.slds-align-top{vertical-align:top;-ms-flex-item-align:start;align-self:flex-start}.slds-align-middle{vertical-align:middle;-ms-flex-item-align:center;align-self:center}.slds-align-bottom{vertical-align:bottom;-ms-flex-item-align:end;align-self:flex-end}.slds-col--bump-top,.slds-col_bump-top{margin-top:auto}.slds-col--bump-right,.slds-col_bump-right{margin-right:auto}.slds-col--bump-bottom,.slds-col_bump-bottom{margin-bottom:auto}.slds-col--bump-left,.slds-col_bump-left{margin-left:auto}.slds-grid--vertical-stretch,.slds-grid_vertical-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}.slds-container--small,.slds-container_small{max-width:30rem}.slds-container--medium,.slds-container_medium{max-width:48rem}.slds-container--large,.slds-container_large{max-width:64rem}.slds-container--x-large,.slds-container_x-large{max-width:80rem}.slds-container--fluid,.slds-container_fluid{width:100%}.slds-container--center,.slds-container_center{margin-left:auto;margin-right:auto}.slds-container--left,.slds-container_left{margin-right:auto}.slds-container--right,.slds-container_right{margin-left:auto}.slds-grid--overflow,.slds-grid_overflow{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.slds-grid--overflow .slds-col,.slds-grid_overflow .slds-col{min-width:11.25em;max-width:22.5em}.slds-align--absolute-center,.slds-align_absolute-center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:auto}.slds-media--reverse>.slds-media__figure,.slds-media_reverse>.slds-media__figure{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-media--reverse.slds-media--small .slds-media__figure,.slds-media--reverse.slds-media_small .slds-media__figure,.slds-media_reverse.slds-media--small .slds-media__figure,.slds-media_reverse.slds-media_small .slds-media__figure{margin-left:.25rem}.slds-media--double>.slds-media__figure,.slds-media_double>.slds-media__figure{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-media--double .slds-media__figure--reverse,.slds-media--double .slds-media__figure_reverse,.slds-media_double .slds-media__figure--reverse,.slds-media_double .slds-media__figure_reverse{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3;margin:0 0 0 1rem}.slds-media--double .slds-media__body,.slds-media_double .slds-media__body{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.slds-media__figure{-ms-flex-negative:0;flex-shrink:0;margin-right:.75rem}.slds-media__figure_fixed-width{min-width:3rem}.slds-media__body{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.slds-media__body,.slds-media__body>:last-child{margin-bottom:0}.slds-media-body-iefix{-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:auto;flex-basis:auto}.slds-media--small .slds-media__figure,.slds-media_small .slds-media__figure{margin-right:.25rem}.slds-media--small .slds-media__figure--reverse,.slds-media_small .slds-media__figure_reverse{margin-left:.25rem}.slds-media--large .slds-media__figure,.slds-media_large .slds-media__figure{margin-right:1.5rem}.slds-media--large .slds-media__figure--reverse,.slds-media_large .slds-media__figure_reverse{margin-left:1.5rem}.slds-media_inline .slds-media__body{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.slds-media--center,.slds-media_center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-media__figure--reverse,.slds-media__figure_reverse{margin:0 0 0 .75rem}@media (max-width:48em){.slds-media--responsive,.slds-media_responsive{display:block}.slds-media--responsive .slds-media__figure,.slds-media_responsive .slds-media__figure{margin:0 0 .75rem}}.slds-m-top--none,.slds-m-top_none{margin-top:0!important}.slds-m-top--xxx-small,.slds-m-top_xxx-small{margin-top:.125rem}.slds-m-top--xx-small,.slds-m-top_xx-small{margin-top:.25rem}.slds-m-top--x-small,.slds-m-top_x-small{margin-top:.5rem}.slds-m-top--small,.slds-m-top_small{margin-top:.75rem}.slds-m-top--medium,.slds-m-top_medium{margin-top:1rem}.slds-m-top--large,.slds-m-top_large{margin-top:1.5rem}.slds-m-top--x-large,.slds-m-top_x-large{margin-top:2rem}.slds-m-top--xx-large,.slds-m-top_xx-large{margin-top:3rem}.slds-var-m-top_xxx-small{margin-top:.125rem}.slds-var-m-top_xx-small{margin-top:.25rem}.slds-var-m-top_x-small{margin-top:.5rem}.slds-var-m-top_small{margin-top:.75rem}.slds-var-m-top_medium{margin-top:1rem}.slds-var-m-top_large{margin-top:1.5rem}.slds-var-m-top_x-large{margin-top:2rem}.slds-var-m-top_xx-large{margin-top:3rem}.slds-m-right--none,.slds-m-right_none{margin-right:0!important}.slds-m-right--xxx-small,.slds-m-right_xxx-small{margin-right:.125rem}.slds-m-right--xx-small,.slds-m-right_xx-small{margin-right:.25rem}.slds-m-right--x-small,.slds-m-right_x-small{margin-right:.5rem}.slds-m-right--small,.slds-m-right_small{margin-right:.75rem}.slds-m-right--medium,.slds-m-right_medium{margin-right:1rem}.slds-m-right--large,.slds-m-right_large{margin-right:1.5rem}.slds-m-right--x-large,.slds-m-right_x-large{margin-right:2rem}.slds-m-right--xx-large,.slds-m-right_xx-large{margin-right:3rem}.slds-var-m-right_xxx-small{margin-right:.125rem}.slds-var-m-right_xx-small{margin-right:.25rem}.slds-var-m-right_x-small{margin-right:.5rem}.slds-var-m-right_small{margin-right:.75rem}.slds-var-m-right_medium{margin-right:1rem}.slds-var-m-right_large{margin-right:1.5rem}.slds-var-m-right_x-large{margin-right:2rem}.slds-var-m-right_xx-large{margin-right:3rem}.slds-m-bottom--none,.slds-m-bottom_none{margin-bottom:0!important}.slds-m-bottom--xxx-small,.slds-m-bottom_xxx-small{margin-bottom:.125rem}.slds-m-bottom--xx-small,.slds-m-bottom_xx-small{margin-bottom:.25rem}.slds-m-bottom--x-small,.slds-m-bottom_x-small{margin-bottom:.5rem}.slds-m-bottom--small,.slds-m-bottom_small{margin-bottom:.75rem}.slds-m-bottom--medium,.slds-m-bottom_medium{margin-bottom:1rem}.slds-m-bottom--large,.slds-m-bottom_large{margin-bottom:1.5rem}.slds-m-bottom--x-large,.slds-m-bottom_x-large{margin-bottom:2rem}.slds-m-bottom--xx-large,.slds-m-bottom_xx-large{margin-bottom:3rem}.slds-var-m-bottom_xxx-small{margin-bottom:.125rem}.slds-var-m-bottom_xx-small{margin-bottom:.25rem}.slds-var-m-bottom_x-small{margin-bottom:.5rem}.slds-var-m-bottom_small{margin-bottom:.75rem}.slds-var-m-bottom_medium{margin-bottom:1rem}.slds-var-m-bottom_large{margin-bottom:1.5rem}.slds-var-m-bottom_x-large{margin-bottom:2rem}.slds-var-m-bottom_xx-large{margin-bottom:3rem}.slds-m-left--none,.slds-m-left_none{margin-left:0!important}.slds-m-left--xxx-small,.slds-m-left_xxx-small{margin-left:.125rem}.slds-m-left--xx-small,.slds-m-left_xx-small{margin-left:.25rem}.slds-m-left--x-small,.slds-m-left_x-small{margin-left:.5rem}.slds-m-left--small,.slds-m-left_small{margin-left:.75rem}.slds-m-left--medium,.slds-m-left_medium{margin-left:1rem}.slds-m-left--large,.slds-m-left_large{margin-left:1.5rem}.slds-m-left--x-large,.slds-m-left_x-large{margin-left:2rem}.slds-m-left--xx-large,.slds-m-left_xx-large{margin-left:3rem}.slds-var-m-left_xxx-small{margin-left:.125rem}.slds-var-m-left_xx-small{margin-left:.25rem}.slds-var-m-left_x-small{margin-left:.5rem}.slds-var-m-left_small{margin-left:.75rem}.slds-var-m-left_medium{margin-left:1rem}.slds-var-m-left_large{margin-left:1.5rem}.slds-var-m-left_x-large{margin-left:2rem}.slds-var-m-left_xx-large{margin-left:3rem}.slds-m-horizontal--none,.slds-m-horizontal_none{margin-left:0!important;margin-right:0!important}.slds-m-horizontal--xxx-small,.slds-m-horizontal_xxx-small{margin-left:.125rem;margin-right:.125rem}.slds-m-horizontal--xx-small,.slds-m-horizontal_xx-small{margin-left:.25rem;margin-right:.25rem}.slds-m-horizontal--x-small,.slds-m-horizontal_x-small{margin-left:.5rem;margin-right:.5rem}.slds-m-horizontal--small,.slds-m-horizontal_small{margin-left:.75rem;margin-right:.75rem}.slds-m-horizontal--medium,.slds-m-horizontal_medium{margin-left:1rem;margin-right:1rem}.slds-m-horizontal--large,.slds-m-horizontal_large{margin-left:1.5rem;margin-right:1.5rem}.slds-m-horizontal--x-large,.slds-m-horizontal_x-large{margin-left:2rem;margin-right:2rem}.slds-m-horizontal--xx-large,.slds-m-horizontal_xx-large{margin-left:3rem;margin-right:3rem}.slds-var-m-horizontal_xxx-small{margin-left:.125rem;margin-right:.125rem}.slds-var-m-horizontal_xx-small{margin-left:.25rem;margin-right:.25rem}.slds-var-m-horizontal_x-small{margin-left:.5rem;margin-right:.5rem}.slds-var-m-horizontal_small{margin-left:.75rem;margin-right:.75rem}.slds-var-m-horizontal_medium{margin-left:1rem;margin-right:1rem}.slds-var-m-horizontal_large{margin-left:1.5rem;margin-right:1.5rem}.slds-var-m-horizontal_x-large{margin-left:2rem;margin-right:2rem}.slds-var-m-horizontal_xx-large{margin-left:3rem;margin-right:3rem}.slds-m-vertical--none,.slds-m-vertical_none{margin-top:0!important;margin-bottom:0!important}.slds-m-vertical--xxx-small,.slds-m-vertical_xxx-small{margin-top:.125rem;margin-bottom:.125rem}.slds-m-vertical--xx-small,.slds-m-vertical_xx-small{margin-top:.25rem;margin-bottom:.25rem}.slds-m-vertical--x-small,.slds-m-vertical_x-small{margin-top:.5rem;margin-bottom:.5rem}.slds-m-vertical--small,.slds-m-vertical_small{margin-top:.75rem;margin-bottom:.75rem}.slds-m-vertical--medium,.slds-m-vertical_medium{margin-top:1rem;margin-bottom:1rem}.slds-m-vertical--large,.slds-m-vertical_large{margin-top:1.5rem;margin-bottom:1.5rem}.slds-m-vertical--x-large,.slds-m-vertical_x-large{margin-top:2rem;margin-bottom:2rem}.slds-m-vertical--xx-large,.slds-m-vertical_xx-large{margin-top:3rem;margin-bottom:3rem}.slds-var-m-vertical_xxx-small{margin-top:.125rem;margin-bottom:.125rem}.slds-var-m-vertical_xx-small{margin-top:.25rem;margin-bottom:.25rem}.slds-var-m-vertical_x-small{margin-top:.5rem;margin-bottom:.5rem}.slds-var-m-vertical_small{margin-top:.75rem;margin-bottom:.75rem}.slds-var-m-vertical_medium{margin-top:1rem;margin-bottom:1rem}.slds-var-m-vertical_large{margin-top:1.5rem;margin-bottom:1.5rem}.slds-var-m-vertical_x-large{margin-top:2rem;margin-bottom:2rem}.slds-var-m-vertical_xx-large{margin-top:3rem;margin-bottom:3rem}.slds-m-around--none,.slds-m-around_none{margin:0!important}.slds-m-around--xxx-small,.slds-m-around_xxx-small{margin:.125rem}.slds-m-around--xx-small,.slds-m-around_xx-small{margin:.25rem}.slds-m-around--x-small,.slds-m-around_x-small{margin:.5rem}.slds-m-around--small,.slds-m-around_small{margin:.75rem}.slds-m-around--medium,.slds-m-around_medium{margin:1rem}.slds-m-around--large,.slds-m-around_large{margin:1.5rem}.slds-m-around--x-large,.slds-m-around_x-large{margin:2rem}.slds-m-around--xx-large,.slds-m-around_xx-large{margin:3rem}.slds-var-m-around_xxx-small{margin:.125rem}.slds-var-m-around_xx-small{margin:.25rem}.slds-var-m-around_x-small{margin:.5rem}.slds-var-m-around_small{margin:.75rem}.slds-var-m-around_medium{margin:1rem}.slds-var-m-around_large{margin:1.5rem}.slds-var-m-around_x-large{margin:2rem}.slds-var-m-around_xx-large{margin:3rem}.slds-has-cushion{padding:1rem}.slds-p-top--none,.slds-p-top_none{padding-top:0!important}.slds-p-top--xxx-small,.slds-p-top_xxx-small{padding-top:.125rem}.slds-p-top--xx-small,.slds-p-top_xx-small{padding-top:.25rem}.slds-p-top--x-small,.slds-p-top_x-small{padding-top:.5rem}.slds-p-top--small,.slds-p-top_small{padding-top:.75rem}.slds-p-top--medium,.slds-p-top_medium{padding-top:1rem}.slds-p-top--large,.slds-p-top_large{padding-top:1.5rem}.slds-p-top--x-large,.slds-p-top_x-large{padding-top:2rem}.slds-p-top--xx-large,.slds-p-top_xx-large{padding-top:3rem}.slds-var-p-top_xxx-small{padding-top:.125rem}.slds-var-p-top_xx-small{padding-top:.25rem}.slds-var-p-top_x-small{padding-top:.5rem}.slds-var-p-top_small{padding-top:.75rem}.slds-var-p-top_medium{padding-top:1rem}.slds-var-p-top_large{padding-top:1.5rem}.slds-var-p-top_x-large{padding-top:2rem}.slds-var-p-top_xx-large{padding-top:3rem}.slds-p-right--none,.slds-p-right_none{padding-right:0!important}.slds-p-right--xxx-small,.slds-p-right_xxx-small{padding-right:.125rem}.slds-p-right--xx-small,.slds-p-right_xx-small{padding-right:.25rem}.slds-p-right--x-small,.slds-p-right_x-small{padding-right:.5rem}.slds-p-right--small,.slds-p-right_small{padding-right:.75rem}.slds-p-right--medium,.slds-p-right_medium{padding-right:1rem}.slds-p-right--large,.slds-p-right_large{padding-right:1.5rem}.slds-p-right--x-large,.slds-p-right_x-large{padding-right:2rem}.slds-p-right--xx-large,.slds-p-right_xx-large{padding-right:3rem}.slds-var-p-right_xxx-small{padding-right:.125rem}.slds-var-p-right_xx-small{padding-right:.25rem}.slds-var-p-right_x-small{padding-right:.5rem}.slds-var-p-right_small{padding-right:.75rem}.slds-var-p-right_medium{padding-right:1rem}.slds-var-p-right_large{padding-right:1.5rem}.slds-var-p-right_x-large{padding-right:2rem}.slds-var-p-right_xx-large{padding-right:3rem}.slds-p-bottom--none,.slds-p-bottom_none{padding-bottom:0!important}.slds-p-bottom--xxx-small,.slds-p-bottom_xxx-small{padding-bottom:.125rem}.slds-p-bottom--xx-small,.slds-p-bottom_xx-small{padding-bottom:.25rem}.slds-p-bottom--x-small,.slds-p-bottom_x-small{padding-bottom:.5rem}.slds-p-bottom--small,.slds-p-bottom_small{padding-bottom:.75rem}.slds-p-bottom--medium,.slds-p-bottom_medium{padding-bottom:1rem}.slds-p-bottom--large,.slds-p-bottom_large{padding-bottom:1.5rem}.slds-p-bottom--x-large,.slds-p-bottom_x-large{padding-bottom:2rem}.slds-p-bottom--xx-large,.slds-p-bottom_xx-large{padding-bottom:3rem}.slds-var-p-bottom_xxx-small{padding-bottom:.125rem}.slds-var-p-bottom_xx-small{padding-bottom:.25rem}.slds-var-p-bottom_x-small{padding-bottom:.5rem}.slds-var-p-bottom_small{padding-bottom:.75rem}.slds-var-p-bottom_medium{padding-bottom:1rem}.slds-var-p-bottom_large{padding-bottom:1.5rem}.slds-var-p-bottom_x-large{padding-bottom:2rem}.slds-var-p-bottom_xx-large{padding-bottom:3rem}.slds-p-left--none,.slds-p-left_none{padding-left:0!important}.slds-p-left--xxx-small,.slds-p-left_xxx-small{padding-left:.125rem}.slds-p-left--xx-small,.slds-p-left_xx-small{padding-left:.25rem}.slds-p-left--x-small,.slds-p-left_x-small{padding-left:.5rem}.slds-p-left--small,.slds-p-left_small{padding-left:.75rem}.slds-p-left--medium,.slds-p-left_medium{padding-left:1rem}.slds-p-left--large,.slds-p-left_large{padding-left:1.5rem}.slds-p-left--x-large,.slds-p-left_x-large{padding-left:2rem}.slds-p-left--xx-large,.slds-p-left_xx-large{padding-left:3rem}.slds-var-p-left_xxx-small{padding-left:.125rem}.slds-var-p-left_xx-small{padding-left:.25rem}.slds-var-p-left_x-small{padding-left:.5rem}.slds-var-p-left_small{padding-left:.75rem}.slds-var-p-left_medium{padding-left:1rem}.slds-var-p-left_large{padding-left:1.5rem}.slds-var-p-left_x-large{padding-left:2rem}.slds-var-p-left_xx-large{padding-left:3rem}.slds-p-horizontal--none,.slds-p-horizontal_none{padding-left:0!important;padding-right:0!important}.slds-p-horizontal--xxx-small,.slds-p-horizontal_xxx-small{padding-left:.125rem;padding-right:.125rem}.slds-p-horizontal--xx-small,.slds-p-horizontal_xx-small{padding-left:.25rem;padding-right:.25rem}.slds-p-horizontal--x-small,.slds-p-horizontal_x-small{padding-left:.5rem;padding-right:.5rem}.slds-p-horizontal--small,.slds-p-horizontal_small{padding-left:.75rem;padding-right:.75rem}.slds-p-horizontal--medium,.slds-p-horizontal_medium{padding-left:1rem;padding-right:1rem}.slds-p-horizontal--large,.slds-p-horizontal_large{padding-left:1.5rem;padding-right:1.5rem}.slds-p-horizontal--x-large,.slds-p-horizontal_x-large{padding-left:2rem;padding-right:2rem}.slds-p-horizontal--xx-large,.slds-p-horizontal_xx-large{padding-left:3rem;padding-right:3rem}.slds-var-p-horizontal_xxx-small{padding-left:.125rem;padding-right:.125rem}.slds-var-p-horizontal_xx-small{padding-left:.25rem;padding-right:.25rem}.slds-var-p-horizontal_x-small{padding-left:.5rem;padding-right:.5rem}.slds-var-p-horizontal_small{padding-left:.75rem;padding-right:.75rem}.slds-var-p-horizontal_medium{padding-left:1rem;padding-right:1rem}.slds-var-p-horizontal_large{padding-left:1.5rem;padding-right:1.5rem}.slds-var-p-horizontal_x-large{padding-left:2rem;padding-right:2rem}.slds-var-p-horizontal_xx-large{padding-left:3rem;padding-right:3rem}.slds-p-vertical--none,.slds-p-vertical_none{padding-top:0!important;padding-bottom:0!important}.slds-p-vertical--xxx-small,.slds-p-vertical_xxx-small{padding-top:.125rem;padding-bottom:.125rem}.slds-p-vertical--xx-small,.slds-p-vertical_xx-small{padding-top:.25rem;padding-bottom:.25rem}.slds-p-vertical--x-small,.slds-p-vertical_x-small{padding-top:.5rem;padding-bottom:.5rem}.slds-p-vertical--small,.slds-p-vertical_small{padding-top:.75rem;padding-bottom:.75rem}.slds-p-vertical--medium,.slds-p-vertical_medium{padding-top:1rem;padding-bottom:1rem}.slds-p-vertical--large,.slds-p-vertical_large{padding-top:1.5rem;padding-bottom:1.5rem}.slds-p-vertical--x-large,.slds-p-vertical_x-large{padding-top:2rem;padding-bottom:2rem}.slds-p-vertical--xx-large,.slds-p-vertical_xx-large{padding-top:3rem;padding-bottom:3rem}.slds-var-p-vertical_xxx-small{padding-top:.125rem;padding-bottom:.125rem}.slds-var-p-vertical_xx-small{padding-top:.25rem;padding-bottom:.25rem}.slds-var-p-vertical_x-small{padding-top:.5rem;padding-bottom:.5rem}.slds-var-p-vertical_small{padding-top:.75rem;padding-bottom:.75rem}.slds-var-p-vertical_medium{padding-top:1rem;padding-bottom:1rem}.slds-var-p-vertical_large{padding-top:1.5rem;padding-bottom:1.5rem}.slds-var-p-vertical_x-large{padding-top:2rem;padding-bottom:2rem}.slds-var-p-vertical_xx-large{padding-top:3rem;padding-bottom:3rem}.slds-p-around--none,.slds-p-around_none{padding:0!important}.slds-p-around--xxx-small,.slds-p-around_xxx-small{padding:.125rem}.slds-p-around--xx-small,.slds-p-around_xx-small{padding:.25rem}.slds-p-around--x-small,.slds-p-around_x-small{padding:.5rem}.slds-p-around--small,.slds-p-around_small{padding:.75rem}.slds-p-around--medium,.slds-p-around_medium{padding:1rem}.slds-p-around--large,.slds-p-around_large{padding:1.5rem}.slds-p-around--x-large,.slds-p-around_x-large{padding:2rem}.slds-p-around--xx-large,.slds-p-around_xx-large{padding:3rem}.slds-var-p-around_xxx-small{padding:.125rem}.slds-var-p-around_xx-small{padding:.25rem}.slds-var-p-around_x-small{padding:.5rem}.slds-var-p-around_small{padding:.75rem}.slds-var-p-around_medium{padding:1rem}.slds-var-p-around_large{padding:1.5rem}.slds-var-p-around_x-large{padding:2rem}.slds-var-p-around_xx-large{padding:3rem}.slds-clearfix:after{content:"";display:table;clear:both}.slds-clear{clear:both}.slds-float--left,.slds-float_left{float:left}.slds-float--none,.slds-float_none{float:none}.slds-float--right,.slds-float_right{float:right}.slds-text-link--reset,.slds-text-link_reset{cursor:pointer;line-height:inherit;font-size:inherit}.slds-text-link--reset:active,.slds-text-link_reset:active{outline:0}.slds-text-link--reset,.slds-text-link--reset:active,.slds-text-link--reset:focus,.slds-text-link--reset:hover,.slds-text-link_reset,.slds-text-link_reset:active,.slds-text-link_reset:focus,.slds-text-link_reset:hover{color:inherit;text-decoration:inherit}.slds-text-link{color:#0176d3;text-decoration:none;-webkit-transition:color .1s linear;transition:color .1s linear}.slds-text-link:focus,.slds-text-link:hover{text-decoration:underline;color:#014486}.slds-text-link:active{color:#014486}.slds-text-link--faux,.slds-text-link_faux,.slds-type-focus{border-bottom:1px solid transparent;border-radius:0;color:currentColor;cursor:pointer}.slds-text-link--faux:focus,.slds-text-link--faux:hover,.slds-text-link_faux:focus,.slds-text-link_faux:hover,.slds-type-focus:focus,.slds-type-focus:hover{color:currentColor;border-bottom:1px solid currentColor}.slds-has-blur-focus{color:currentColor}.slds-has-blur-focus:active,.slds-has-blur-focus:focus,.slds-has-blur-focus:hover{color:currentColor;text-decoration:none}.slds-has-blur-focus:focus{outline:0;-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-has-input-focus{outline:0;border-color:var(--slds-g-color-brand-base-60,#1b96ff);background-color:var(--slds-g-color-neutral-base-100,#fff);-webkit-box-shadow:0 0 3px #0176d3;box-shadow:0 0 3px #0176d3}.slds-list--vertical.slds-has-dividers>.slds-list__item,.slds-list_vertical.slds-has-dividers>.slds-list__item{padding:.5rem;border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-list--vertical.slds-has-dividers>.slds-list__item:hover,.slds-list_vertical.slds-has-dividers>.slds-list__item:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#e5e5e5);cursor:pointer}.slds-list--vertical.slds-has-dividers>.slds-list__item:active,.slds-list_vertical.slds-has-dividers>.slds-list__item:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) 0 -1px 0 inset;box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) 0 -1px 0 inset}.slds-list--vertical.slds-has-dividers>.slds-list__item.slds-is-selected,.slds-list_vertical.slds-has-dividers>.slds-list__item.slds-is-selected{-webkit-box-shadow:var(--slds-g-color-brand-base-50,#0176d3) 0 0 0 1px inset;box-shadow:var(--slds-g-color-brand-base-50,#0176d3) 0 0 0 1px inset;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-list--vertical.slds-has-dividers>.slds-list__item.slds-is-selected:focus,.slds-list--vertical.slds-has-dividers>.slds-list__item.slds-is-selected:hover,.slds-list_vertical.slds-has-dividers>.slds-list__item.slds-is-selected:focus,.slds-list_vertical.slds-has-dividers>.slds-list__item.slds-is-selected:hover{-webkit-box-shadow:var(--slds-g-color-border-brand-2,#1b96ff) 0 -2px 0 inset,var(--slds-g-color-border-brand-2,#1b96ff) 0 0 0 1px inset;box-shadow:var(--slds-g-color-border-brand-2,#1b96ff) 0 -2px 0 inset,var(--slds-g-color-border-brand-2,#1b96ff) 0 0 0 1px inset}.slds-has-cards>.slds-list__item{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;background-clip:padding-box}.slds-has-cards>.slds-list__item+.slds-list__item{margin-top:.5rem}.slds-has-cards--space>.slds-list__item,.slds-has-cards_space>.slds-list__item{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;background-clip:padding-box;padding:.75rem}@media (min-width:30em){.slds-has-cards--space>.slds-list__item,.slds-has-cards_space>.slds-list__item{padding:.5rem}}.slds-has-cards--space>.slds-list__item+.slds-list__item,.slds-has-cards_space>.slds-list__item+.slds-list__item{margin-top:.5rem}.slds-has-divider{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-has-block-links a{display:block;text-decoration:none}.slds-has-block-links .slds-is-nested{margin-left:1rem}.slds-has-block-links--space .slds-item,.slds-has-block-links--space .slds-list__item,.slds-has-block-links_space .slds-item,.slds-has-block-links_space .slds-list__item{padding:0}.slds-has-block-links--space a,.slds-has-block-links_space a{display:block;text-decoration:none;padding:.75rem}@media (min-width:48em){.slds-has-block-links--space a,.slds-has-block-links_space a{padding:.5rem}}.slds-has-inline-block-links a{display:inline-block;text-decoration:none}.slds-has-inline-block-links--space a,.slds-has-inline-block-links_space a{display:inline-block;text-decoration:none;padding:.75rem}@media (min-width:48em){.slds-has-inline-block-links--space a,.slds-has-inline-block-links_space a{padding:.5rem}}.slds-list--vertical-space .slds-item+.slds-item,.slds-list--vertical-space .slds-list__item+.slds-list__item,.slds-list_vertical-space .slds-item+.slds-item,.slds-list_vertical-space .slds-list__item+.slds-list__item{margin-top:.5rem}.slds-list--vertical-space-medium .slds-item+.slds-item,.slds-list--vertical-space-medium .slds-list__item+.slds-list__item,.slds-list_vertical-space-medium .slds-item+.slds-item,.slds-list_vertical-space-medium .slds-list__item+.slds-list__item{margin-top:1rem}.slds-is-nested{margin-left:1rem}.slds-list--dotted,.slds-list_dotted{margin-left:1.5rem;list-style:disc}.slds-list--ordered,.slds-list_ordered{margin-left:1.5rem;list-style:decimal}.slds-has-dividers--top>.slds-item,.slds-has-dividers--top>.slds-list__item,.slds-has-dividers_top>.slds-item,.slds-has-dividers_top>.slds-list__item{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-has-dividers--top-space>.slds-item,.slds-has-dividers--top-space>.slds-list__item,.slds-has-dividers_top-space>.slds-item,.slds-has-dividers_top-space>.slds-list__item{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);padding:.75rem}@media (min-width:30em){.slds-has-dividers--top-space>.slds-item,.slds-has-dividers--top-space>.slds-list__item,.slds-has-dividers_top-space>.slds-item,.slds-has-dividers_top-space>.slds-list__item{padding:.5rem}}.slds-has-dividers--bottom>.slds-item,.slds-has-dividers--bottom>.slds-list__item,.slds-has-dividers_bottom>.slds-item,.slds-has-dividers_bottom>.slds-list__item{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-has-dividers--bottom-space>.slds-item,.slds-has-dividers--bottom-space>.slds-list__item,.slds-has-dividers_bottom-space>.slds-item,.slds-has-dividers_bottom-space>.slds-list__item{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);padding:.75rem}@media (min-width:30em){.slds-has-dividers--bottom-space>.slds-item,.slds-has-dividers--bottom-space>.slds-list__item,.slds-has-dividers_bottom-space>.slds-item,.slds-has-dividers_bottom-space>.slds-list__item{padding:.5rem}}.slds-has-dividers--around>.slds-item,.slds-has-dividers_around>.slds-item{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;background-clip:padding-box}.slds-has-dividers--around>.slds-item+.slds-item,.slds-has-dividers_around>.slds-item+.slds-item{margin-top:.5rem}.slds-has-dividers--around-space>.slds-item,.slds-has-dividers_around-space>.slds-item{border:1px solid var(--slds-g-color-border-base-1,#e5e5e5);border-radius:.25rem;background-clip:padding-box;padding:.75rem}@media (min-width:30em){.slds-has-dividers--around-space>.slds-item,.slds-has-dividers_around-space>.slds-item{padding:.5rem}}.slds-has-dividers--around-space>.slds-item+.slds-item,.slds-has-dividers_around-space>.slds-item+.slds-item{margin-top:.5rem}.slds-has-list-interactions>.slds-item:hover,.slds-has-list-interactions>.slds-list__item:hover{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);border-color:var(--slds-g-color-border-base-1,#e5e5e5);cursor:pointer}.slds-has-list-interactions>.slds-item:active,.slds-has-list-interactions>.slds-list__item:active{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3);-webkit-box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) 0 -1px 0 inset;box-shadow:var(--slds-g-color-border-base-1,#e5e5e5) 0 -1px 0 inset}.slds-has-list-interactions>.slds-item.slds-is-selected,.slds-has-list-interactions>.slds-list__item.slds-is-selected{-webkit-box-shadow:var(--slds-g-color-brand-base-50,#0176d3) 0 0 0 1px inset;box-shadow:var(--slds-g-color-brand-base-50,#0176d3) 0 0 0 1px inset;background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-has-list-interactions>.slds-item.slds-is-selected:focus,.slds-has-list-interactions>.slds-item.slds-is-selected:hover,.slds-has-list-interactions>.slds-list__item.slds-is-selected:focus,.slds-has-list-interactions>.slds-list__item.slds-is-selected:hover{-webkit-box-shadow:var(--slds-g-color-border-brand-2,#1b96ff) 0 -2px 0 inset,var(--slds-g-color-border-brand-2,#1b96ff) 0 0 0 1px inset;box-shadow:var(--slds-g-color-border-brand-2,#1b96ff) 0 -2px 0 inset,var(--slds-g-color-border-brand-2,#1b96ff) 0 0 0 1px inset}.slds-has-divider--top,.slds-has-divider_top{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-has-divider--top-space,.slds-has-divider_top-space{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5);margin-top:.5rem;padding-top:.5rem}.slds-has-divider--right,.slds-has-divider_right{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-has-divider--right:after,.slds-has-divider_right:after{width:2px;height:2px;content:"";margin-left:.5rem;margin-right:.5rem;border-radius:50%;background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-has-divider--right:last-child,.slds-has-divider_right:last-child{margin-right:0;padding-right:0}.slds-has-divider--right:last-child:after,.slds-has-divider_right:last-child:after{content:none}.slds-has-divider--bottom,.slds-has-divider_bottom{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-has-divider--bottom-space,.slds-has-divider_bottom-space{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5);margin-bottom:.5rem;padding-bottom:.5rem}.slds-has-divider--left,.slds-has-divider_left{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-has-divider--left:before,.slds-has-divider_left:before{width:2px;height:2px;content:"";display:inline-block;vertical-align:middle;margin-left:.5rem;margin-right:.5rem;border-radius:50%;background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-has-divider--left:first-child,.slds-has-divider_left:first-child{margin-right:0;padding-right:0}.slds-has-divider--left:first-child:before,.slds-has-divider_left:first-child:before{content:none}.slds-list--horizontal.slds-has-dividers>.slds-list__item,.slds-list_horizontal.slds-has-dividers>.slds-list__item{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-list--horizontal.slds-has-dividers>.slds-list__item:after,.slds-list_horizontal.slds-has-dividers>.slds-list__item:after{width:2px;height:2px;content:"";margin-left:.5rem;margin-right:.5rem;border-radius:50%;background-color:#032d60}.slds-list--horizontal.slds-has-dividers>.slds-list__item:last-child,.slds-list_horizontal.slds-has-dividers>.slds-list__item:last-child{margin-right:0;padding-right:0}.slds-list--horizontal.slds-has-dividers>.slds-list__item:last-child:after,.slds-list_horizontal.slds-has-dividers>.slds-list__item:last-child:after{content:none}.slds-list--horizontal,.slds-list_horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.slds-list--horizontal>.slds-list__item,.slds-list_horizontal>.slds-list__item{-ms-flex-item-align:center;align-self:center}.slds-list--horizontal-large>.slds-item>a,.slds-list--horizontal-large>.slds-list__item>a,.slds-list_horizontal-large>.slds-item>a,.slds-list_horizontal-large>.slds-list__item>a{padding:.75rem 1rem}.slds-has-dividers--left>.slds-item,.slds-has-dividers--left>.slds-list__item,.slds-has-dividers_left>.slds-item,.slds-has-dividers_left>.slds-list__item{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-has-dividers--left>.slds-item:before,.slds-has-dividers--left>.slds-list__item:before,.slds-has-dividers_left>.slds-item:before,.slds-has-dividers_left>.slds-list__item:before{width:2px;height:2px;content:"";display:inline-block;vertical-align:middle;margin-left:.5rem;margin-right:.5rem;border-radius:50%;background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-has-dividers--left>.slds-item:first-child,.slds-has-dividers--left>.slds-list__item:first-child,.slds-has-dividers_left>.slds-item:first-child,.slds-has-dividers_left>.slds-list__item:first-child{margin-right:0;padding-right:0}.slds-has-dividers--left>.slds-item:first-child:before,.slds-has-dividers--left>.slds-list__item:first-child:before,.slds-has-dividers_left>.slds-item:first-child:before,.slds-has-dividers_left>.slds-list__item:first-child:before{content:none}.slds-has-dividers--right>.slds-item,.slds-has-dividers--right>.slds-list__item,.slds-has-dividers_right>.slds-item,.slds-has-dividers_right>.slds-list__item{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.slds-has-dividers--right>.slds-item:after,.slds-has-dividers--right>.slds-list__item:after,.slds-has-dividers_right>.slds-item:after,.slds-has-dividers_right>.slds-list__item:after{width:2px;height:2px;content:"";margin-left:.5rem;margin-right:.5rem;border-radius:50%;background-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-has-dividers--right>.slds-item:last-child,.slds-has-dividers--right>.slds-list__item:last-child,.slds-has-dividers_right>.slds-item:last-child,.slds-has-dividers_right>.slds-list__item:last-child{margin-right:0;padding-right:0}.slds-has-dividers--right>.slds-item:last-child:after,.slds-has-dividers--right>.slds-list__item:last-child:after,.slds-has-dividers_right>.slds-item:last-child:after,.slds-has-dividers_right>.slds-list__item:last-child:after{content:none}.slds-dl--inline:after,.slds-dl_inline:after{content:"";display:table;clear:both}@media (min-width:30em){.slds-dl--inline__label,.slds-dl_inline__label{float:left;clear:left}.slds-dl--inline__detail,.slds-dl_inline__detail{float:left;padding-left:.25rem}}.slds-region_narrow .slds-dl_inline__detail,.slds-region_narrow .slds-dl_inline__label{float:left}.slds-region_narrow .slds-dl_inline__label{clear:left}.slds-region_narrow .slds-dl_inline__detail{padding-left:.25rem}@media (min-width:30em){.slds-dl--horizontal,.slds-dl_horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.slds-dl--horizontal__label,.slds-dl_horizontal__label{width:30%;padding-right:.75rem}.slds-dl--horizontal__detail,.slds-dl_horizontal__detail{width:70%}}.slds-region_narrow .slds-dl_horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.slds-region_narrow .slds-dl_horizontal .slds-dl_horizontal__label{width:30%;padding-right:.75rem}.slds-region_narrow .slds-dl_horizontal .slds-dl_horizontal__detail{width:70%}.slds-list--horizontal .slds-item--label,.slds-list--horizontal .slds-item_label,.slds-list_horizontal .slds-item--label,.slds-list_horizontal .slds-item_label{width:30%;padding-right:.75rem}.slds-list--horizontal .slds-item--detail,.slds-list--horizontal .slds-item_detail,.slds-list_horizontal .slds-item--detail,.slds-list_horizontal .slds-item_detail{width:70%}.slds-list--vertical .slds-item--detail,.slds-list--vertical .slds-item--label,.slds-list--vertical .slds-item_detail,.slds-list--vertical .slds-item_label,.slds-list_vertical .slds-item--detail,.slds-list_vertical .slds-item--label,.slds-list_vertical .slds-item_detail,.slds-list_vertical .slds-item_label{display:block}.slds-list--inline,.slds-list_inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;max-width:100%}.slds-list--inline .slds-item--label,.slds-list--inline .slds-item_label,.slds-list_inline .slds-item--label,.slds-list_inline .slds-item_label{max-width:180px;padding-right:.75rem;-ms-flex-negative:0;flex-shrink:0}.slds-list--inline .slds-item--label~.slds-item--label,.slds-list--inline .slds-item--label~.slds-item_label,.slds-list--inline .slds-item_label~.slds-item--label,.slds-list--inline .slds-item_label~.slds-item_label,.slds-list_inline .slds-item--label~.slds-item--label,.slds-list_inline .slds-item--label~.slds-item_label,.slds-list_inline .slds-item_label~.slds-item--label,.slds-list_inline .slds-item_label~.slds-item_label{padding-left:1rem}.slds-list--inline .slds-item--detail,.slds-list--inline .slds-item_detail,.slds-list_inline .slds-item--detail,.slds-list_inline .slds-item_detail{min-width:0}.slds-border--bottom,.slds-border_bottom{border-bottom:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-border--left,.slds-border_left{border-left:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-border--right,.slds-border_right{border-right:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-border--top,.slds-border_top{border-top:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slds-truncate_container--25,.slds-truncate_container_25{max-width:25%}.slds-truncate_container--50,.slds-truncate_container_50{max-width:50%}.slds-truncate_container--75,.slds-truncate_container_75{max-width:75%}.slds-truncate_container--33,.slds-truncate_container_33{max-width:33%}.slds-truncate_container--66,.slds-truncate_container_66{max-width:66%}.slds-hyphenate{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.slds-box{padding:1rem;border-radius:.25rem;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-box--xx-small,.slds-box_xx-small{padding:.25rem}.slds-box--x-small,.slds-box_x-small{padding:.5rem}.slds-box--small,.slds-box_small{padding:.75rem}.slds-box--border,.slds-box_border{padding:0;border-radius:.25rem;border:1px solid var(--slds-g-color-border-base-1,#e5e5e5)}.slds-box_link,.slds-box_link:active,.slds-box_link:focus,.slds-box_link:hover{color:inherit;text-decoration:inherit}.slds-box_link:focus,.slds-box_link:hover{cursor:pointer;outline:0;border:1px solid var(--slds-g-color-border-brand-2,#1b96ff);-webkit-box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset;box-shadow:0 0 0 1px var(--slds-g-color-border-brand-2,#1b96ff) inset}.slds-theme--default,.slds-theme_default{background-color:var(--slds-g-color-neutral-base-100,#fff);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-theme--shade,.slds-theme_shade{background-color:var(--slds-g-color-neutral-base-95,#f3f3f3)}.slds-theme--inverse,.slds-theme_inverse{color:var(--slds-g-color-neutral-base-100,#fff);background-color:var(--slds-g-color-brand-base-10,#001639);border-color:var(--slds-g-color-brand-base-10,#001639)}.slds-theme--inverse a:not(.slds-button--neutral),.slds-theme_inverse a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--inverse a:not(.slds-button--neutral):link,.slds-theme--inverse a:not(.slds-button--neutral):visited,.slds-theme_inverse a:not(.slds-button--neutral):link,.slds-theme_inverse a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--inverse a:not(.slds-button--neutral):focus,.slds-theme--inverse a:not(.slds-button--neutral):hover,.slds-theme_inverse a:not(.slds-button--neutral):focus,.slds-theme_inverse a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--inverse a:not(.slds-button--neutral):active,.slds-theme_inverse a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--inverse a:not(.slds-button--neutral)[disabled],.slds-theme_inverse a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-theme--alt-inverse,.slds-theme_alt-inverse{color:var(--slds-g-color-neutral-base-100,#fff);background-color:var(--slds-g-color-brand-base-20,#032d60);border-color:var(--slds-g-color-brand-base-20,#032d60)}.slds-theme--alt-inverse a:not(.slds-button--neutral),.slds-theme_alt-inverse a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--alt-inverse a:not(.slds-button--neutral):link,.slds-theme--alt-inverse a:not(.slds-button--neutral):visited,.slds-theme_alt-inverse a:not(.slds-button--neutral):link,.slds-theme_alt-inverse a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--alt-inverse a:not(.slds-button--neutral):focus,.slds-theme--alt-inverse a:not(.slds-button--neutral):hover,.slds-theme_alt-inverse a:not(.slds-button--neutral):focus,.slds-theme_alt-inverse a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--alt-inverse a:not(.slds-button--neutral):active,.slds-theme_alt-inverse a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--alt-inverse a:not(.slds-button--neutral)[disabled],.slds-theme_alt-inverse a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-theme--success,.slds-theme_success{color:var(--slds-g-color-neutral-base-100,#fff);background-color:var(--slds-g-color-success-base-50,#2e844a)}.slds-theme--success a:not(.slds-button--neutral),.slds-theme_success a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--success a:not(.slds-button--neutral):link,.slds-theme--success a:not(.slds-button--neutral):visited,.slds-theme_success a:not(.slds-button--neutral):link,.slds-theme_success a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--success a:not(.slds-button--neutral):focus,.slds-theme--success a:not(.slds-button--neutral):hover,.slds-theme_success a:not(.slds-button--neutral):focus,.slds-theme_success a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--success a:not(.slds-button--neutral):active,.slds-theme_success a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--success a:not(.slds-button--neutral)[disabled],.slds-theme_success a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-theme--info,.slds-theme_info{color:var(--slds-g-color-neutral-base-100,#fff);background-color:var(--slds-g-color-neutral-base-50,#747474)}.slds-theme--info a:not(.slds-button--neutral),.slds-theme_info a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--info a:not(.slds-button--neutral):link,.slds-theme--info a:not(.slds-button--neutral):visited,.slds-theme_info a:not(.slds-button--neutral):link,.slds-theme_info a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--info a:not(.slds-button--neutral):focus,.slds-theme--info a:not(.slds-button--neutral):hover,.slds-theme_info a:not(.slds-button--neutral):focus,.slds-theme_info a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--info a:not(.slds-button--neutral):active,.slds-theme_info a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--info a:not(.slds-button--neutral)[disabled],.slds-theme_info a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-theme--warning,.slds-theme_warning{background-color:var(--slds-g-color-warning-base-60,#fe9339);color:var(--slds-g-color-neutral-base-10,#181818)}.slds-theme--warning a,.slds-theme_warning a{color:var(--slds-g-color-neutral-base-10,#181818);text-decoration:underline}.slds-theme--warning a:link,.slds-theme--warning a:visited,.slds-theme_warning a:link,.slds-theme_warning a:visited{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-theme--warning a:focus,.slds-theme--warning a:hover,.slds-theme_warning a:focus,.slds-theme_warning a:hover{text-decoration:none}.slds-theme--warning a:focus,.slds-theme_warning a:focus{-webkit-box-shadow:0 0 3px var(--slds-g-color-neutral-base-30,#514f4d);box-shadow:0 0 3px var(--slds-g-color-neutral-base-30,#514f4d);border:1px solid var(--slds-g-color-neutral-base-30,#514f4d)}.slds-theme--warning a:active,.slds-theme_warning a:active{color:var(--slds-g-color-neutral-base-30,#514f4d)}.slds-theme--warning a[disabled],.slds-theme_warning a[disabled]{color:var(--slds-g-color-neutral-base-30,#514f4d)}.slds-theme--warning button,.slds-theme_warning button{color:var(--slds-g-color-neutral-base-30,#514f4d);text-decoration:underline}.slds-theme--warning button:hover,.slds-theme_warning button:hover{color:var(--slds-g-color-neutral-base-50,#706e6b)}.slds-theme--warning button:focus,.slds-theme_warning button:focus{color:var(--slds-g-color-neutral-base-30,#514f4d);-webkit-box-shadow:0 0 3px var(--slds-g-color-neutral-base-30,#514f4d);box-shadow:0 0 3px var(--slds-g-color-neutral-base-30,#514f4d);border:1px solid var(--slds-g-color-neutral-base-30,#514f4d)}.slds-theme--warning button:active,.slds-theme_warning button:active{color:var(--slds-g-color-neutral-base-50,#706e6b)}.slds-theme--warning .slds-button__icon,.slds-theme--warning .slds-icon,.slds-theme_warning .slds-button__icon,.slds-theme_warning .slds-icon{fill:var(--slds-g-color-neutral-base-30,#514f4d)}.slds-theme--error,.slds-theme_error{color:var(--slds-g-color-neutral-base-100,#fff);background-color:var(--slds-g-color-error-base-40,#ea001e)}.slds-theme--error a:not(.slds-button--neutral),.slds-theme_error a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--error a:not(.slds-button--neutral):link,.slds-theme--error a:not(.slds-button--neutral):visited,.slds-theme_error a:not(.slds-button--neutral):link,.slds-theme_error a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--error a:not(.slds-button--neutral):focus,.slds-theme--error a:not(.slds-button--neutral):hover,.slds-theme_error a:not(.slds-button--neutral):focus,.slds-theme_error a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--error a:not(.slds-button--neutral):active,.slds-theme_error a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--error a:not(.slds-button--neutral)[disabled],.slds-theme_error a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-theme--offline,.slds-theme_offline{color:var(--slds-g-color-neutral-base-100,#fff);background-color:var(--slds-g-color-neutral-base-30,#444)}.slds-theme--offline a:not(.slds-button--neutral),.slds-theme_offline a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--offline a:not(.slds-button--neutral):link,.slds-theme--offline a:not(.slds-button--neutral):visited,.slds-theme_offline a:not(.slds-button--neutral):link,.slds-theme_offline a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--offline a:not(.slds-button--neutral):focus,.slds-theme--offline a:not(.slds-button--neutral):hover,.slds-theme_offline a:not(.slds-button--neutral):focus,.slds-theme_offline a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--offline a:not(.slds-button--neutral):active,.slds-theme_offline a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--offline a:not(.slds-button--neutral)[disabled],.slds-theme_offline a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-theme--alert-texture,.slds-theme_alert-texture{background-image:linear-gradient(45deg,rgba(0,0,0,.025) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.025) 50%,rgba(0,0,0,.025) 75%,transparent 75%,transparent);background-size:64px 64px}.slds-theme--inverse-text,.slds-theme_inverse-text{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--inverse-text a:not(.slds-button--neutral),.slds-theme_inverse-text a:not(.slds-button--neutral){color:var(--slds-g-color-neutral-base-100,#fff);text-decoration:underline}.slds-theme--inverse-text a:not(.slds-button--neutral):link,.slds-theme--inverse-text a:not(.slds-button--neutral):visited,.slds-theme_inverse-text a:not(.slds-button--neutral):link,.slds-theme_inverse-text a:not(.slds-button--neutral):visited{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-theme--inverse-text a:not(.slds-button--neutral):focus,.slds-theme--inverse-text a:not(.slds-button--neutral):hover,.slds-theme_inverse-text a:not(.slds-button--neutral):focus,.slds-theme_inverse-text a:not(.slds-button--neutral):hover{text-decoration:none}.slds-theme--inverse-text a:not(.slds-button--neutral):active,.slds-theme_inverse-text a:not(.slds-button--neutral):active{color:rgba(255,255,255,.5)}.slds-theme--inverse-text a:not(.slds-button--neutral)[disabled],.slds-theme_inverse-text a:not(.slds-button--neutral)[disabled]{color:rgba(255,255,255,.15)}.slds-text-body--regular,.slds-text-body_regular{font-size:.8125rem}.slds-text-body--small,.slds-text-body_small{font-size:.75rem}.slds-text-heading--large,.slds-text-heading_large{font-size:1.75rem;line-height:1.25}.slds-text-heading--medium,.slds-text-heading_medium{font-size:1.25rem;line-height:1.25}.slds-text-heading--small,.slds-text-heading_small{font-size:1rem;line-height:1.25}.slds-text-heading--label,.slds-text-heading_label{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444);text-transform:uppercase;letter-spacing:.0625rem;font-weight:400}.slds-text-heading--label-normal,.slds-text-heading_label-normal{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444)}.slds-text-title{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444)}.slds-text-title--caps,.slds-text-title_caps{font-size:.75rem;line-height:1.25;color:var(--slds-g-color-neutral-base-30,#444);font-weight:400;text-transform:uppercase;letter-spacing:.0625rem}.slds-text-title_bold{font-size:.875rem;font-weight:700}.slds-line-height--reset,.slds-line-height_reset{line-height:1}.slds-text-color--default,.slds-text-color_default{color:var(--slds-g-color-neutral-base-10,#181818)}.slds-text-color--weak,.slds-text-color_weak{color:var(--slds-g-color-neutral-base-30,#444)}.slds-text-color--error,.slds-text-color_error{color:var(--slds-g-color-error-base-40,#ea001e)}.slds-text-color_destructive{color:var(--slds-g-color-error-base-30,#ea001e)}.slds-text-color_success{color:var(--slds-g-color-success-base-50,#2e844a)}.slds-text-color--inverse,.slds-text-color_inverse{color:var(--slds-g-color-neutral-base-100,#fff)}.slds-text-color--inverse-weak,.slds-text-color_inverse-weak{color:var(--slds-g-color-neutral-base-70,#aeaeae)}.slds-text-align--left,.slds-text-align_left{text-align:left}.slds-text-align--center,.slds-text-align_center{text-align:center}.slds-text-align--right,.slds-text-align_right{text-align:right}.slds-text-longform dl,.slds-text-longform h1,.slds-text-longform h2,.slds-text-longform h3,.slds-text-longform img,.slds-text-longform ol,.slds-text-longform p,.slds-text-longform ul{margin-bottom:.75rem}.slds-text-longform ul{margin-left:1.5rem;list-style:disc}.slds-text-longform ul ul{list-style:circle}.slds-text-longform ul ul ul{list-style:square}.slds-text-longform ol{margin-left:1.5rem;list-style:decimal}.slds-text-longform ol ol{list-style:lower-alpha}.slds-text-longform ol ol ol{list-style:lower-roman}.slds-text-longform .slds-video{display:block;max-width:100%}.slds-text-longform .slds-video.slds-video--center,.slds-text-longform .slds-video.slds-video_center{margin:0 auto}.slds-text-longform .slds-video.slds-video--right,.slds-text-longform .slds-video.slds-video_right{margin:0 0 0 auto}.slds-text-font_monospace{font-family:Consolas,Menlo,Monaco,Courier,monospace}.slds-color__text_gray-1{color:var(--slds-g-color-neutral-base-100,#fff)!important}.slds-color__text_gray-2{color:var(--slds-g-color-neutral-base-95,#fafaf9)!important}.slds-color__text_gray-3{color:var(--slds-g-color-neutral-base-95,#f3f2f2)!important}.slds-color__text_gray-4{color:var(--slds-g-color-neutral-base-90,#ecebea)!important}.slds-color__text_gray-5{color:var(--slds-g-color-neutral-base-90,#dddbda)!important}.slds-color__text_gray-6{color:var(--slds-g-color-neutral-base-80,#c9c7c5)!important}.slds-color__text_gray-7{color:var(--slds-g-color-neutral-base-70,#b0adab)!important}.slds-color__text_gray-8{color:var(--slds-g-color-neutral-base-60,#969492)!important}.slds-color__text_gray-9{color:var(--slds-g-color-neutral-base-50,#706e6b)!important}.slds-color__text_gray-10{color:var(--slds-g-color-neutral-base-30,#514f4d)!important}.slds-color__text_gray-11{color:var(--slds-g-color-neutral-base-30,#3e3e3c)!important}.slds-color__text_gray-12{color:var(--slds-g-color-neutral-base-20,#2b2826)!important}.slds-color__background_gray-1{background-color:var(--slds-g-color-neutral-base-100,#fff)!important}.slds-color__background_gray-2{background-color:var(--slds-g-color-neutral-base-95,#fafaf9)!important}.slds-color__background_gray-3{background-color:var(--slds-g-color-neutral-base-95,#f3f2f2)!important}.slds-color__background_gray-4{background-color:var(--slds-g-color-neutral-base-90,#ecebea)!important}.slds-color__background_gray-5{background-color:var(--slds-g-color-neutral-base-90,#dddbda)!important}.slds-color__background_gray-6{background-color:var(--slds-g-color-neutral-base-80,#c9c7c5)!important}.slds-color__background_gray-7{background-color:var(--slds-g-color-neutral-base-70,#b0adab)!important}.slds-color__background_gray-8{background-color:var(--slds-g-color-neutral-base-60,#969492)!important}.slds-color__background_gray-9{background-color:var(--slds-g-color-neutral-base-50,#706e6b)!important}.slds-color__background_gray-10{background-color:var(--slds-g-color-neutral-base-30,#514f4d)!important}.slds-color__background_gray-11{background-color:var(--slds-g-color-neutral-base-30,#3e3e3c)!important}.slds-color__background_gray-12{background-color:var(--slds-g-color-neutral-base-20,#2b2826)!important}.slds-color__border_gray-1{border-color:var(--slds-g-color-neutral-base-100,#fff)!important}.slds-color__border_gray-2{border-color:var(--slds-g-color-neutral-base-95,#fafaf9)!important}.slds-color__border_gray-3{border-color:var(--slds-g-color-neutral-base-95,#f3f2f2)!important}.slds-color__border_gray-4{border-color:var(--slds-g-color-neutral-base-90,#ecebea)!important}.slds-color__border_gray-5{border-color:var(--slds-g-color-neutral-base-90,#dddbda)!important}.slds-color__border_gray-6{border-color:var(--slds-g-color-neutral-base-80,#c9c7c5)!important}.slds-color__border_gray-7{border-color:var(--slds-g-color-neutral-base-70,#b0adab)!important}.slds-color__border_gray-8{border-color:var(--slds-g-color-neutral-base-60,#969492)!important}.slds-color__border_gray-9{border-color:var(--slds-g-color-neutral-base-50,#706e6b)!important}.slds-color__border_gray-10{border-color:var(--slds-g-color-neutral-base-30,#514f4d)!important}.slds-color__border_gray-11{border-color:var(--slds-g-color-neutral-base-30,#3e3e3c)!important}.slds-color__border_gray-12{border-color:var(--slds-g-color-neutral-base-20,#2b2826)!important}.slds-color__fill_gray-1{fill:var(--slds-g-color-neutral-base-100,#fff)!important}.slds-color__fill_gray-2{fill:var(--slds-g-color-neutral-base-95,#fafaf9)!important}.slds-color__fill_gray-3{fill:var(--slds-g-color-neutral-base-95,#f3f2f2)!important}.slds-color__fill_gray-4{fill:var(--slds-g-color-neutral-base-90,#ecebea)!important}.slds-color__fill_gray-5{fill:var(--slds-g-color-neutral-base-90,#dddbda)!important}.slds-color__fill_gray-6{fill:var(--slds-g-color-neutral-base-80,#c9c7c5)!important}.slds-color__fill_gray-7{fill:var(--slds-g-color-neutral-base-70,#b0adab)!important}.slds-color__fill_gray-8{fill:var(--slds-g-color-neutral-base-60,#969492)!important}.slds-color__fill_gray-9{fill:var(--slds-g-color-neutral-base-50,#706e6b)!important}.slds-color__fill_gray-10{fill:var(--slds-g-color-neutral-base-30,#514f4d)!important}.slds-color__fill_gray-11{fill:var(--slds-g-color-neutral-base-30,#3e3e3c)!important}.slds-color__fill_gray-12{fill:var(--slds-g-color-neutral-base-20,#2b2826)!important}.slds-scrollable{-webkit-overflow-scrolling:touch;overflow:auto}.slds-scrollable--none,.slds-scrollable_none{overflow:hidden}.slds-scrollable--y,.slds-scrollable_y{-webkit-overflow-scrolling:touch;max-height:100%;overflow:hidden;overflow-y:auto}.slds-scrollable--x,.slds-scrollable_x{-webkit-overflow-scrolling:touch;max-width:100%;overflow:hidden;overflow-x:auto}.slds-size--xxx-small,.slds-size_xxx-small{width:3rem}.slds-size--xx-small,.slds-size_xx-small{width:6rem}.slds-size--x-small,.slds-size_x-small{width:12rem}.slds-size--small,.slds-size_small{width:15rem}.slds-size--medium,.slds-size_medium{width:20rem}.slds-size--large,.slds-size_large{width:25rem}.slds-size--x-large,.slds-size_x-large{width:40rem}.slds-size--xx-large,.slds-size_xx-large{width:60rem}.slds-size_full{width:100%}.slds-size--1-of-1,.slds-size_1-of-1{width:100%}.slds-size--1-of-2,.slds-size_1-of-2{width:50%}.slds-size--2-of-2,.slds-size_2-of-2{width:100%}.slds-size--1-of-3,.slds-size_1-of-3{width:33.3333333333%}.slds-size--2-of-3,.slds-size_2-of-3{width:66.6666666667%}.slds-size--3-of-3,.slds-size_3-of-3{width:100%}.slds-size--1-of-4,.slds-size_1-of-4{width:25%}.slds-size--2-of-4,.slds-size_2-of-4{width:50%}.slds-size--3-of-4,.slds-size_3-of-4{width:75%}.slds-size--4-of-4,.slds-size_4-of-4{width:100%}.slds-size--1-of-5,.slds-size_1-of-5{width:20%}.slds-size--2-of-5,.slds-size_2-of-5{width:40%}.slds-size--3-of-5,.slds-size_3-of-5{width:60%}.slds-size--4-of-5,.slds-size_4-of-5{width:80%}.slds-size--5-of-5,.slds-size_5-of-5{width:100%}.slds-size--1-of-6,.slds-size_1-of-6{width:16.6666666667%}.slds-size--2-of-6,.slds-size_2-of-6{width:33.3333333333%}.slds-size--3-of-6,.slds-size_3-of-6{width:50%}.slds-size--4-of-6,.slds-size_4-of-6{width:66.6666666667%}.slds-size--5-of-6,.slds-size_5-of-6{width:83.3333333333%}.slds-size--6-of-6,.slds-size_6-of-6{width:100%}.slds-size--1-of-7,.slds-size_1-of-7{width:14.2857142857%}.slds-size--2-of-7,.slds-size_2-of-7{width:28.5714285714%}.slds-size--3-of-7,.slds-size_3-of-7{width:42.8571428571%}.slds-size--4-of-7,.slds-size_4-of-7{width:57.1428571429%}.slds-size--5-of-7,.slds-size_5-of-7{width:71.4285714286%}.slds-size--6-of-7,.slds-size_6-of-7{width:85.7142857143%}.slds-size--7-of-7,.slds-size_7-of-7{width:100%}.slds-size--1-of-8,.slds-size_1-of-8{width:12.5%}.slds-size--2-of-8,.slds-size_2-of-8{width:25%}.slds-size--3-of-8,.slds-size_3-of-8{width:37.5%}.slds-size--4-of-8,.slds-size_4-of-8{width:50%}.slds-size--5-of-8,.slds-size_5-of-8{width:62.5%}.slds-size--6-of-8,.slds-size_6-of-8{width:75%}.slds-size--7-of-8,.slds-size_7-of-8{width:87.5%}.slds-size--8-of-8,.slds-size_8-of-8{width:100%}.slds-size--1-of-12,.slds-size_1-of-12{width:8.3333333333%}.slds-size--2-of-12,.slds-size_2-of-12{width:16.6666666667%}.slds-size--3-of-12,.slds-size_3-of-12{width:25%}.slds-size--4-of-12,.slds-size_4-of-12{width:33.3333333333%}.slds-size--5-of-12,.slds-size_5-of-12{width:41.6666666667%}.slds-size--6-of-12,.slds-size_6-of-12{width:50%}.slds-size--7-of-12,.slds-size_7-of-12{width:58.3333333333%}.slds-size--8-of-12,.slds-size_8-of-12{width:66.6666666667%}.slds-size--9-of-12,.slds-size_9-of-12{width:75%}.slds-size--10-of-12,.slds-size_10-of-12{width:83.3333333333%}.slds-size--11-of-12,.slds-size_11-of-12{width:91.6666666667%}.slds-size--12-of-12,.slds-size_12-of-12{width:100%}.slds-order--1,.slds-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-order--2,.slds-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-order--3,.slds-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-order--4,.slds-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-order--5,.slds-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-order--6,.slds-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-order--7,.slds-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-order--8,.slds-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-order--9,.slds-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-order--10,.slds-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-order--11,.slds-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-order--12,.slds-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}@media (min-width:20em){[class*=slds-x-small-size--],[class*=slds-x-small-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-x-small-size--xxx-small,.slds-x-small-size_xxx-small{width:3rem}.slds-x-small-size--xx-small,.slds-x-small-size_xx-small{width:6rem}.slds-x-small-size--x-small,.slds-x-small-size_x-small{width:12rem}.slds-x-small-size--small,.slds-x-small-size_small{width:15rem}.slds-x-small-size--medium,.slds-x-small-size_medium{width:20rem}.slds-x-small-size--large,.slds-x-small-size_large{width:25rem}.slds-x-small-size--x-large,.slds-x-small-size_x-large{width:40rem}.slds-x-small-size--xx-large,.slds-x-small-size_xx-large{width:60rem}.slds-x-small-size--1-of-1,.slds-x-small-size_1-of-1{width:100%}.slds-x-small-size--1-of-2,.slds-x-small-size_1-of-2{width:50%}.slds-x-small-size--2-of-2,.slds-x-small-size_2-of-2{width:100%}.slds-x-small-size--1-of-3,.slds-x-small-size_1-of-3{width:33.3333333333%}.slds-x-small-size--2-of-3,.slds-x-small-size_2-of-3{width:66.6666666667%}.slds-x-small-size--3-of-3,.slds-x-small-size_3-of-3{width:100%}.slds-x-small-size--1-of-4,.slds-x-small-size_1-of-4{width:25%}.slds-x-small-size--2-of-4,.slds-x-small-size_2-of-4{width:50%}.slds-x-small-size--3-of-4,.slds-x-small-size_3-of-4{width:75%}.slds-x-small-size--4-of-4,.slds-x-small-size_4-of-4{width:100%}.slds-x-small-size--1-of-5,.slds-x-small-size_1-of-5{width:20%}.slds-x-small-size--2-of-5,.slds-x-small-size_2-of-5{width:40%}.slds-x-small-size--3-of-5,.slds-x-small-size_3-of-5{width:60%}.slds-x-small-size--4-of-5,.slds-x-small-size_4-of-5{width:80%}.slds-x-small-size--5-of-5,.slds-x-small-size_5-of-5{width:100%}.slds-x-small-size--1-of-6,.slds-x-small-size_1-of-6{width:16.6666666667%}.slds-x-small-size--2-of-6,.slds-x-small-size_2-of-6{width:33.3333333333%}.slds-x-small-size--3-of-6,.slds-x-small-size_3-of-6{width:50%}.slds-x-small-size--4-of-6,.slds-x-small-size_4-of-6{width:66.6666666667%}.slds-x-small-size--5-of-6,.slds-x-small-size_5-of-6{width:83.3333333333%}.slds-x-small-size--6-of-6,.slds-x-small-size_6-of-6{width:100%}.slds-x-small-size--1-of-7,.slds-x-small-size_1-of-7{width:14.2857142857%}.slds-x-small-size--2-of-7,.slds-x-small-size_2-of-7{width:28.5714285714%}.slds-x-small-size--3-of-7,.slds-x-small-size_3-of-7{width:42.8571428571%}.slds-x-small-size--4-of-7,.slds-x-small-size_4-of-7{width:57.1428571429%}.slds-x-small-size--5-of-7,.slds-x-small-size_5-of-7{width:71.4285714286%}.slds-x-small-size--6-of-7,.slds-x-small-size_6-of-7{width:85.7142857143%}.slds-x-small-size--7-of-7,.slds-x-small-size_7-of-7{width:100%}.slds-x-small-size--1-of-8,.slds-x-small-size_1-of-8{width:12.5%}.slds-x-small-size--2-of-8,.slds-x-small-size_2-of-8{width:25%}.slds-x-small-size--3-of-8,.slds-x-small-size_3-of-8{width:37.5%}.slds-x-small-size--4-of-8,.slds-x-small-size_4-of-8{width:50%}.slds-x-small-size--5-of-8,.slds-x-small-size_5-of-8{width:62.5%}.slds-x-small-size--6-of-8,.slds-x-small-size_6-of-8{width:75%}.slds-x-small-size--7-of-8,.slds-x-small-size_7-of-8{width:87.5%}.slds-x-small-size--8-of-8,.slds-x-small-size_8-of-8{width:100%}.slds-x-small-size--1-of-12,.slds-x-small-size_1-of-12{width:8.3333333333%}.slds-x-small-size--2-of-12,.slds-x-small-size_2-of-12{width:16.6666666667%}.slds-x-small-size--3-of-12,.slds-x-small-size_3-of-12{width:25%}.slds-x-small-size--4-of-12,.slds-x-small-size_4-of-12{width:33.3333333333%}.slds-x-small-size--5-of-12,.slds-x-small-size_5-of-12{width:41.6666666667%}.slds-x-small-size--6-of-12,.slds-x-small-size_6-of-12{width:50%}.slds-x-small-size--7-of-12,.slds-x-small-size_7-of-12{width:58.3333333333%}.slds-x-small-size--8-of-12,.slds-x-small-size_8-of-12{width:66.6666666667%}.slds-x-small-size--9-of-12,.slds-x-small-size_9-of-12{width:75%}.slds-x-small-size--10-of-12,.slds-x-small-size_10-of-12{width:83.3333333333%}.slds-x-small-size--11-of-12,.slds-x-small-size_11-of-12{width:91.6666666667%}.slds-x-small-size--12-of-12,.slds-x-small-size_12-of-12{width:100%}.slds-x-small-order--1,.slds-x-small-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-x-small-order--2,.slds-x-small-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-x-small-order--3,.slds-x-small-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-x-small-order--4,.slds-x-small-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-x-small-order--5,.slds-x-small-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-x-small-order--6,.slds-x-small-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-x-small-order--7,.slds-x-small-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-x-small-order--8,.slds-x-small-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-x-small-order--9,.slds-x-small-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-x-small-order--10,.slds-x-small-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-x-small-order--11,.slds-x-small-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-x-small-order--12,.slds-x-small-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (max-width:20em){[class*=slds-max-x-small-size--],[class*=slds-max-x-small-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-max-x-small-size--xxx-small,.slds-max-x-small-size_xxx-small{width:3rem}.slds-max-x-small-size--xx-small,.slds-max-x-small-size_xx-small{width:6rem}.slds-max-x-small-size--x-small,.slds-max-x-small-size_x-small{width:12rem}.slds-max-x-small-size--small,.slds-max-x-small-size_small{width:15rem}.slds-max-x-small-size--medium,.slds-max-x-small-size_medium{width:20rem}.slds-max-x-small-size--large,.slds-max-x-small-size_large{width:25rem}.slds-max-x-small-size--x-large,.slds-max-x-small-size_x-large{width:40rem}.slds-max-x-small-size--xx-large,.slds-max-x-small-size_xx-large{width:60rem}.slds-max-x-small-size--1-of-1,.slds-max-x-small-size_1-of-1{width:100%}.slds-max-x-small-size--1-of-2,.slds-max-x-small-size_1-of-2{width:50%}.slds-max-x-small-size--2-of-2,.slds-max-x-small-size_2-of-2{width:100%}.slds-max-x-small-size--1-of-3,.slds-max-x-small-size_1-of-3{width:33.3333333333%}.slds-max-x-small-size--2-of-3,.slds-max-x-small-size_2-of-3{width:66.6666666667%}.slds-max-x-small-size--3-of-3,.slds-max-x-small-size_3-of-3{width:100%}.slds-max-x-small-size--1-of-4,.slds-max-x-small-size_1-of-4{width:25%}.slds-max-x-small-size--2-of-4,.slds-max-x-small-size_2-of-4{width:50%}.slds-max-x-small-size--3-of-4,.slds-max-x-small-size_3-of-4{width:75%}.slds-max-x-small-size--4-of-4,.slds-max-x-small-size_4-of-4{width:100%}.slds-max-x-small-size--1-of-5,.slds-max-x-small-size_1-of-5{width:20%}.slds-max-x-small-size--2-of-5,.slds-max-x-small-size_2-of-5{width:40%}.slds-max-x-small-size--3-of-5,.slds-max-x-small-size_3-of-5{width:60%}.slds-max-x-small-size--4-of-5,.slds-max-x-small-size_4-of-5{width:80%}.slds-max-x-small-size--5-of-5,.slds-max-x-small-size_5-of-5{width:100%}.slds-max-x-small-size--1-of-6,.slds-max-x-small-size_1-of-6{width:16.6666666667%}.slds-max-x-small-size--2-of-6,.slds-max-x-small-size_2-of-6{width:33.3333333333%}.slds-max-x-small-size--3-of-6,.slds-max-x-small-size_3-of-6{width:50%}.slds-max-x-small-size--4-of-6,.slds-max-x-small-size_4-of-6{width:66.6666666667%}.slds-max-x-small-size--5-of-6,.slds-max-x-small-size_5-of-6{width:83.3333333333%}.slds-max-x-small-size--6-of-6,.slds-max-x-small-size_6-of-6{width:100%}.slds-max-x-small-size--1-of-7,.slds-max-x-small-size_1-of-7{width:14.2857142857%}.slds-max-x-small-size--2-of-7,.slds-max-x-small-size_2-of-7{width:28.5714285714%}.slds-max-x-small-size--3-of-7,.slds-max-x-small-size_3-of-7{width:42.8571428571%}.slds-max-x-small-size--4-of-7,.slds-max-x-small-size_4-of-7{width:57.1428571429%}.slds-max-x-small-size--5-of-7,.slds-max-x-small-size_5-of-7{width:71.4285714286%}.slds-max-x-small-size--6-of-7,.slds-max-x-small-size_6-of-7{width:85.7142857143%}.slds-max-x-small-size--7-of-7,.slds-max-x-small-size_7-of-7{width:100%}.slds-max-x-small-size--1-of-8,.slds-max-x-small-size_1-of-8{width:12.5%}.slds-max-x-small-size--2-of-8,.slds-max-x-small-size_2-of-8{width:25%}.slds-max-x-small-size--3-of-8,.slds-max-x-small-size_3-of-8{width:37.5%}.slds-max-x-small-size--4-of-8,.slds-max-x-small-size_4-of-8{width:50%}.slds-max-x-small-size--5-of-8,.slds-max-x-small-size_5-of-8{width:62.5%}.slds-max-x-small-size--6-of-8,.slds-max-x-small-size_6-of-8{width:75%}.slds-max-x-small-size--7-of-8,.slds-max-x-small-size_7-of-8{width:87.5%}.slds-max-x-small-size--8-of-8,.slds-max-x-small-size_8-of-8{width:100%}.slds-max-x-small-size--1-of-12,.slds-max-x-small-size_1-of-12{width:8.3333333333%}.slds-max-x-small-size--2-of-12,.slds-max-x-small-size_2-of-12{width:16.6666666667%}.slds-max-x-small-size--3-of-12,.slds-max-x-small-size_3-of-12{width:25%}.slds-max-x-small-size--4-of-12,.slds-max-x-small-size_4-of-12{width:33.3333333333%}.slds-max-x-small-size--5-of-12,.slds-max-x-small-size_5-of-12{width:41.6666666667%}.slds-max-x-small-size--6-of-12,.slds-max-x-small-size_6-of-12{width:50%}.slds-max-x-small-size--7-of-12,.slds-max-x-small-size_7-of-12{width:58.3333333333%}.slds-max-x-small-size--8-of-12,.slds-max-x-small-size_8-of-12{width:66.6666666667%}.slds-max-x-small-size--9-of-12,.slds-max-x-small-size_9-of-12{width:75%}.slds-max-x-small-size--10-of-12,.slds-max-x-small-size_10-of-12{width:83.3333333333%}.slds-max-x-small-size--11-of-12,.slds-max-x-small-size_11-of-12{width:91.6666666667%}.slds-max-x-small-size--12-of-12,.slds-max-x-small-size_12-of-12{width:100%}.slds-max-x-small-order--1,.slds-max-x-small-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-max-x-small-order--2,.slds-max-x-small-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-max-x-small-order--3,.slds-max-x-small-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-max-x-small-order--4,.slds-max-x-small-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-max-x-small-order--5,.slds-max-x-small-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-max-x-small-order--6,.slds-max-x-small-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-max-x-small-order--7,.slds-max-x-small-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-max-x-small-order--8,.slds-max-x-small-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-max-x-small-order--9,.slds-max-x-small-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-max-x-small-order--10,.slds-max-x-small-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-max-x-small-order--11,.slds-max-x-small-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-max-x-small-order--12,.slds-max-x-small-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (min-width:30em){[class*=slds-small-size--],[class*=slds-small-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-small-size--xxx-small,.slds-small-size_xxx-small{width:3rem}.slds-small-size--xx-small,.slds-small-size_xx-small{width:6rem}.slds-small-size--x-small,.slds-small-size_x-small{width:12rem}.slds-small-size--small,.slds-small-size_small{width:15rem}.slds-small-size--medium,.slds-small-size_medium{width:20rem}.slds-small-size--large,.slds-small-size_large{width:25rem}.slds-small-size--x-large,.slds-small-size_x-large{width:40rem}.slds-small-size--xx-large,.slds-small-size_xx-large{width:60rem}.slds-small-size--1-of-1,.slds-small-size_1-of-1{width:100%}.slds-small-size--1-of-2,.slds-small-size_1-of-2{width:50%}.slds-small-size--2-of-2,.slds-small-size_2-of-2{width:100%}.slds-small-size--1-of-3,.slds-small-size_1-of-3{width:33.3333333333%}.slds-small-size--2-of-3,.slds-small-size_2-of-3{width:66.6666666667%}.slds-small-size--3-of-3,.slds-small-size_3-of-3{width:100%}.slds-small-size--1-of-4,.slds-small-size_1-of-4{width:25%}.slds-small-size--2-of-4,.slds-small-size_2-of-4{width:50%}.slds-small-size--3-of-4,.slds-small-size_3-of-4{width:75%}.slds-small-size--4-of-4,.slds-small-size_4-of-4{width:100%}.slds-small-size--1-of-5,.slds-small-size_1-of-5{width:20%}.slds-small-size--2-of-5,.slds-small-size_2-of-5{width:40%}.slds-small-size--3-of-5,.slds-small-size_3-of-5{width:60%}.slds-small-size--4-of-5,.slds-small-size_4-of-5{width:80%}.slds-small-size--5-of-5,.slds-small-size_5-of-5{width:100%}.slds-small-size--1-of-6,.slds-small-size_1-of-6{width:16.6666666667%}.slds-small-size--2-of-6,.slds-small-size_2-of-6{width:33.3333333333%}.slds-small-size--3-of-6,.slds-small-size_3-of-6{width:50%}.slds-small-size--4-of-6,.slds-small-size_4-of-6{width:66.6666666667%}.slds-small-size--5-of-6,.slds-small-size_5-of-6{width:83.3333333333%}.slds-small-size--6-of-6,.slds-small-size_6-of-6{width:100%}.slds-small-size--1-of-7,.slds-small-size_1-of-7{width:14.2857142857%}.slds-small-size--2-of-7,.slds-small-size_2-of-7{width:28.5714285714%}.slds-small-size--3-of-7,.slds-small-size_3-of-7{width:42.8571428571%}.slds-small-size--4-of-7,.slds-small-size_4-of-7{width:57.1428571429%}.slds-small-size--5-of-7,.slds-small-size_5-of-7{width:71.4285714286%}.slds-small-size--6-of-7,.slds-small-size_6-of-7{width:85.7142857143%}.slds-small-size--7-of-7,.slds-small-size_7-of-7{width:100%}.slds-small-size--1-of-8,.slds-small-size_1-of-8{width:12.5%}.slds-small-size--2-of-8,.slds-small-size_2-of-8{width:25%}.slds-small-size--3-of-8,.slds-small-size_3-of-8{width:37.5%}.slds-small-size--4-of-8,.slds-small-size_4-of-8{width:50%}.slds-small-size--5-of-8,.slds-small-size_5-of-8{width:62.5%}.slds-small-size--6-of-8,.slds-small-size_6-of-8{width:75%}.slds-small-size--7-of-8,.slds-small-size_7-of-8{width:87.5%}.slds-small-size--8-of-8,.slds-small-size_8-of-8{width:100%}.slds-small-size--1-of-12,.slds-small-size_1-of-12{width:8.3333333333%}.slds-small-size--2-of-12,.slds-small-size_2-of-12{width:16.6666666667%}.slds-small-size--3-of-12,.slds-small-size_3-of-12{width:25%}.slds-small-size--4-of-12,.slds-small-size_4-of-12{width:33.3333333333%}.slds-small-size--5-of-12,.slds-small-size_5-of-12{width:41.6666666667%}.slds-small-size--6-of-12,.slds-small-size_6-of-12{width:50%}.slds-small-size--7-of-12,.slds-small-size_7-of-12{width:58.3333333333%}.slds-small-size--8-of-12,.slds-small-size_8-of-12{width:66.6666666667%}.slds-small-size--9-of-12,.slds-small-size_9-of-12{width:75%}.slds-small-size--10-of-12,.slds-small-size_10-of-12{width:83.3333333333%}.slds-small-size--11-of-12,.slds-small-size_11-of-12{width:91.6666666667%}.slds-small-size--12-of-12,.slds-small-size_12-of-12{width:100%}.slds-small-order--1,.slds-small-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-small-order--2,.slds-small-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-small-order--3,.slds-small-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-small-order--4,.slds-small-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-small-order--5,.slds-small-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-small-order--6,.slds-small-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-small-order--7,.slds-small-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-small-order--8,.slds-small-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-small-order--9,.slds-small-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-small-order--10,.slds-small-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-small-order--11,.slds-small-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-small-order--12,.slds-small-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (max-width:30em){[class*=slds-max-small-size--],[class*=slds-max-small-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-max-small-size--xxx-small,.slds-max-small-size_xxx-small{width:3rem}.slds-max-small-size--xx-small,.slds-max-small-size_xx-small{width:6rem}.slds-max-small-size--x-small,.slds-max-small-size_x-small{width:12rem}.slds-max-small-size--small,.slds-max-small-size_small{width:15rem}.slds-max-small-size--medium,.slds-max-small-size_medium{width:20rem}.slds-max-small-size--large,.slds-max-small-size_large{width:25rem}.slds-max-small-size--x-large,.slds-max-small-size_x-large{width:40rem}.slds-max-small-size--xx-large,.slds-max-small-size_xx-large{width:60rem}.slds-max-small-size--1-of-1,.slds-max-small-size_1-of-1{width:100%}.slds-max-small-size--1-of-2,.slds-max-small-size_1-of-2{width:50%}.slds-max-small-size--2-of-2,.slds-max-small-size_2-of-2{width:100%}.slds-max-small-size--1-of-3,.slds-max-small-size_1-of-3{width:33.3333333333%}.slds-max-small-size--2-of-3,.slds-max-small-size_2-of-3{width:66.6666666667%}.slds-max-small-size--3-of-3,.slds-max-small-size_3-of-3{width:100%}.slds-max-small-size--1-of-4,.slds-max-small-size_1-of-4{width:25%}.slds-max-small-size--2-of-4,.slds-max-small-size_2-of-4{width:50%}.slds-max-small-size--3-of-4,.slds-max-small-size_3-of-4{width:75%}.slds-max-small-size--4-of-4,.slds-max-small-size_4-of-4{width:100%}.slds-max-small-size--1-of-5,.slds-max-small-size_1-of-5{width:20%}.slds-max-small-size--2-of-5,.slds-max-small-size_2-of-5{width:40%}.slds-max-small-size--3-of-5,.slds-max-small-size_3-of-5{width:60%}.slds-max-small-size--4-of-5,.slds-max-small-size_4-of-5{width:80%}.slds-max-small-size--5-of-5,.slds-max-small-size_5-of-5{width:100%}.slds-max-small-size--1-of-6,.slds-max-small-size_1-of-6{width:16.6666666667%}.slds-max-small-size--2-of-6,.slds-max-small-size_2-of-6{width:33.3333333333%}.slds-max-small-size--3-of-6,.slds-max-small-size_3-of-6{width:50%}.slds-max-small-size--4-of-6,.slds-max-small-size_4-of-6{width:66.6666666667%}.slds-max-small-size--5-of-6,.slds-max-small-size_5-of-6{width:83.3333333333%}.slds-max-small-size--6-of-6,.slds-max-small-size_6-of-6{width:100%}.slds-max-small-size--1-of-7,.slds-max-small-size_1-of-7{width:14.2857142857%}.slds-max-small-size--2-of-7,.slds-max-small-size_2-of-7{width:28.5714285714%}.slds-max-small-size--3-of-7,.slds-max-small-size_3-of-7{width:42.8571428571%}.slds-max-small-size--4-of-7,.slds-max-small-size_4-of-7{width:57.1428571429%}.slds-max-small-size--5-of-7,.slds-max-small-size_5-of-7{width:71.4285714286%}.slds-max-small-size--6-of-7,.slds-max-small-size_6-of-7{width:85.7142857143%}.slds-max-small-size--7-of-7,.slds-max-small-size_7-of-7{width:100%}.slds-max-small-size--1-of-8,.slds-max-small-size_1-of-8{width:12.5%}.slds-max-small-size--2-of-8,.slds-max-small-size_2-of-8{width:25%}.slds-max-small-size--3-of-8,.slds-max-small-size_3-of-8{width:37.5%}.slds-max-small-size--4-of-8,.slds-max-small-size_4-of-8{width:50%}.slds-max-small-size--5-of-8,.slds-max-small-size_5-of-8{width:62.5%}.slds-max-small-size--6-of-8,.slds-max-small-size_6-of-8{width:75%}.slds-max-small-size--7-of-8,.slds-max-small-size_7-of-8{width:87.5%}.slds-max-small-size--8-of-8,.slds-max-small-size_8-of-8{width:100%}.slds-max-small-size--1-of-12,.slds-max-small-size_1-of-12{width:8.3333333333%}.slds-max-small-size--2-of-12,.slds-max-small-size_2-of-12{width:16.6666666667%}.slds-max-small-size--3-of-12,.slds-max-small-size_3-of-12{width:25%}.slds-max-small-size--4-of-12,.slds-max-small-size_4-of-12{width:33.3333333333%}.slds-max-small-size--5-of-12,.slds-max-small-size_5-of-12{width:41.6666666667%}.slds-max-small-size--6-of-12,.slds-max-small-size_6-of-12{width:50%}.slds-max-small-size--7-of-12,.slds-max-small-size_7-of-12{width:58.3333333333%}.slds-max-small-size--8-of-12,.slds-max-small-size_8-of-12{width:66.6666666667%}.slds-max-small-size--9-of-12,.slds-max-small-size_9-of-12{width:75%}.slds-max-small-size--10-of-12,.slds-max-small-size_10-of-12{width:83.3333333333%}.slds-max-small-size--11-of-12,.slds-max-small-size_11-of-12{width:91.6666666667%}.slds-max-small-size--12-of-12,.slds-max-small-size_12-of-12{width:100%}.slds-max-small-order--1,.slds-max-small-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-max-small-order--2,.slds-max-small-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-max-small-order--3,.slds-max-small-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-max-small-order--4,.slds-max-small-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-max-small-order--5,.slds-max-small-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-max-small-order--6,.slds-max-small-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-max-small-order--7,.slds-max-small-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-max-small-order--8,.slds-max-small-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-max-small-order--9,.slds-max-small-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-max-small-order--10,.slds-max-small-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-max-small-order--11,.slds-max-small-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-max-small-order--12,.slds-max-small-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (min-width:48em){[class*=slds-medium-size--],[class*=slds-medium-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-medium-size--xxx-small,.slds-medium-size_xxx-small{width:3rem}.slds-medium-size--xx-small,.slds-medium-size_xx-small{width:6rem}.slds-medium-size--x-small,.slds-medium-size_x-small{width:12rem}.slds-medium-size--small,.slds-medium-size_small{width:15rem}.slds-medium-size--medium,.slds-medium-size_medium{width:20rem}.slds-medium-size--large,.slds-medium-size_large{width:25rem}.slds-medium-size--x-large,.slds-medium-size_x-large{width:40rem}.slds-medium-size--xx-large,.slds-medium-size_xx-large{width:60rem}.slds-medium-size--1-of-1,.slds-medium-size_1-of-1{width:100%}.slds-medium-size--1-of-2,.slds-medium-size_1-of-2{width:50%}.slds-medium-size--2-of-2,.slds-medium-size_2-of-2{width:100%}.slds-medium-size--1-of-3,.slds-medium-size_1-of-3{width:33.3333333333%}.slds-medium-size--2-of-3,.slds-medium-size_2-of-3{width:66.6666666667%}.slds-medium-size--3-of-3,.slds-medium-size_3-of-3{width:100%}.slds-medium-size--1-of-4,.slds-medium-size_1-of-4{width:25%}.slds-medium-size--2-of-4,.slds-medium-size_2-of-4{width:50%}.slds-medium-size--3-of-4,.slds-medium-size_3-of-4{width:75%}.slds-medium-size--4-of-4,.slds-medium-size_4-of-4{width:100%}.slds-medium-size--1-of-5,.slds-medium-size_1-of-5{width:20%}.slds-medium-size--2-of-5,.slds-medium-size_2-of-5{width:40%}.slds-medium-size--3-of-5,.slds-medium-size_3-of-5{width:60%}.slds-medium-size--4-of-5,.slds-medium-size_4-of-5{width:80%}.slds-medium-size--5-of-5,.slds-medium-size_5-of-5{width:100%}.slds-medium-size--1-of-6,.slds-medium-size_1-of-6{width:16.6666666667%}.slds-medium-size--2-of-6,.slds-medium-size_2-of-6{width:33.3333333333%}.slds-medium-size--3-of-6,.slds-medium-size_3-of-6{width:50%}.slds-medium-size--4-of-6,.slds-medium-size_4-of-6{width:66.6666666667%}.slds-medium-size--5-of-6,.slds-medium-size_5-of-6{width:83.3333333333%}.slds-medium-size--6-of-6,.slds-medium-size_6-of-6{width:100%}.slds-medium-size--1-of-7,.slds-medium-size_1-of-7{width:14.2857142857%}.slds-medium-size--2-of-7,.slds-medium-size_2-of-7{width:28.5714285714%}.slds-medium-size--3-of-7,.slds-medium-size_3-of-7{width:42.8571428571%}.slds-medium-size--4-of-7,.slds-medium-size_4-of-7{width:57.1428571429%}.slds-medium-size--5-of-7,.slds-medium-size_5-of-7{width:71.4285714286%}.slds-medium-size--6-of-7,.slds-medium-size_6-of-7{width:85.7142857143%}.slds-medium-size--7-of-7,.slds-medium-size_7-of-7{width:100%}.slds-medium-size--1-of-8,.slds-medium-size_1-of-8{width:12.5%}.slds-medium-size--2-of-8,.slds-medium-size_2-of-8{width:25%}.slds-medium-size--3-of-8,.slds-medium-size_3-of-8{width:37.5%}.slds-medium-size--4-of-8,.slds-medium-size_4-of-8{width:50%}.slds-medium-size--5-of-8,.slds-medium-size_5-of-8{width:62.5%}.slds-medium-size--6-of-8,.slds-medium-size_6-of-8{width:75%}.slds-medium-size--7-of-8,.slds-medium-size_7-of-8{width:87.5%}.slds-medium-size--8-of-8,.slds-medium-size_8-of-8{width:100%}.slds-medium-size--1-of-12,.slds-medium-size_1-of-12{width:8.3333333333%}.slds-medium-size--2-of-12,.slds-medium-size_2-of-12{width:16.6666666667%}.slds-medium-size--3-of-12,.slds-medium-size_3-of-12{width:25%}.slds-medium-size--4-of-12,.slds-medium-size_4-of-12{width:33.3333333333%}.slds-medium-size--5-of-12,.slds-medium-size_5-of-12{width:41.6666666667%}.slds-medium-size--6-of-12,.slds-medium-size_6-of-12{width:50%}.slds-medium-size--7-of-12,.slds-medium-size_7-of-12{width:58.3333333333%}.slds-medium-size--8-of-12,.slds-medium-size_8-of-12{width:66.6666666667%}.slds-medium-size--9-of-12,.slds-medium-size_9-of-12{width:75%}.slds-medium-size--10-of-12,.slds-medium-size_10-of-12{width:83.3333333333%}.slds-medium-size--11-of-12,.slds-medium-size_11-of-12{width:91.6666666667%}.slds-medium-size--12-of-12,.slds-medium-size_12-of-12{width:100%}.slds-medium-order--1,.slds-medium-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-medium-order--2,.slds-medium-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-medium-order--3,.slds-medium-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-medium-order--4,.slds-medium-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-medium-order--5,.slds-medium-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-medium-order--6,.slds-medium-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-medium-order--7,.slds-medium-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-medium-order--8,.slds-medium-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-medium-order--9,.slds-medium-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-medium-order--10,.slds-medium-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-medium-order--11,.slds-medium-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-medium-order--12,.slds-medium-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (max-width:48em){[class*=slds-max-medium-size--],[class*=slds-max-medium-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-max-medium-size--xxx-small,.slds-max-medium-size_xxx-small{width:3rem}.slds-max-medium-size--xx-small,.slds-max-medium-size_xx-small{width:6rem}.slds-max-medium-size--x-small,.slds-max-medium-size_x-small{width:12rem}.slds-max-medium-size--small,.slds-max-medium-size_small{width:15rem}.slds-max-medium-size--medium,.slds-max-medium-size_medium{width:20rem}.slds-max-medium-size--large,.slds-max-medium-size_large{width:25rem}.slds-max-medium-size--x-large,.slds-max-medium-size_x-large{width:40rem}.slds-max-medium-size--xx-large,.slds-max-medium-size_xx-large{width:60rem}.slds-max-medium-size--1-of-1,.slds-max-medium-size_1-of-1{width:100%}.slds-max-medium-size--1-of-2,.slds-max-medium-size_1-of-2{width:50%}.slds-max-medium-size--2-of-2,.slds-max-medium-size_2-of-2{width:100%}.slds-max-medium-size--1-of-3,.slds-max-medium-size_1-of-3{width:33.3333333333%}.slds-max-medium-size--2-of-3,.slds-max-medium-size_2-of-3{width:66.6666666667%}.slds-max-medium-size--3-of-3,.slds-max-medium-size_3-of-3{width:100%}.slds-max-medium-size--1-of-4,.slds-max-medium-size_1-of-4{width:25%}.slds-max-medium-size--2-of-4,.slds-max-medium-size_2-of-4{width:50%}.slds-max-medium-size--3-of-4,.slds-max-medium-size_3-of-4{width:75%}.slds-max-medium-size--4-of-4,.slds-max-medium-size_4-of-4{width:100%}.slds-max-medium-size--1-of-5,.slds-max-medium-size_1-of-5{width:20%}.slds-max-medium-size--2-of-5,.slds-max-medium-size_2-of-5{width:40%}.slds-max-medium-size--3-of-5,.slds-max-medium-size_3-of-5{width:60%}.slds-max-medium-size--4-of-5,.slds-max-medium-size_4-of-5{width:80%}.slds-max-medium-size--5-of-5,.slds-max-medium-size_5-of-5{width:100%}.slds-max-medium-size--1-of-6,.slds-max-medium-size_1-of-6{width:16.6666666667%}.slds-max-medium-size--2-of-6,.slds-max-medium-size_2-of-6{width:33.3333333333%}.slds-max-medium-size--3-of-6,.slds-max-medium-size_3-of-6{width:50%}.slds-max-medium-size--4-of-6,.slds-max-medium-size_4-of-6{width:66.6666666667%}.slds-max-medium-size--5-of-6,.slds-max-medium-size_5-of-6{width:83.3333333333%}.slds-max-medium-size--6-of-6,.slds-max-medium-size_6-of-6{width:100%}.slds-max-medium-size--1-of-7,.slds-max-medium-size_1-of-7{width:14.2857142857%}.slds-max-medium-size--2-of-7,.slds-max-medium-size_2-of-7{width:28.5714285714%}.slds-max-medium-size--3-of-7,.slds-max-medium-size_3-of-7{width:42.8571428571%}.slds-max-medium-size--4-of-7,.slds-max-medium-size_4-of-7{width:57.1428571429%}.slds-max-medium-size--5-of-7,.slds-max-medium-size_5-of-7{width:71.4285714286%}.slds-max-medium-size--6-of-7,.slds-max-medium-size_6-of-7{width:85.7142857143%}.slds-max-medium-size--7-of-7,.slds-max-medium-size_7-of-7{width:100%}.slds-max-medium-size--1-of-8,.slds-max-medium-size_1-of-8{width:12.5%}.slds-max-medium-size--2-of-8,.slds-max-medium-size_2-of-8{width:25%}.slds-max-medium-size--3-of-8,.slds-max-medium-size_3-of-8{width:37.5%}.slds-max-medium-size--4-of-8,.slds-max-medium-size_4-of-8{width:50%}.slds-max-medium-size--5-of-8,.slds-max-medium-size_5-of-8{width:62.5%}.slds-max-medium-size--6-of-8,.slds-max-medium-size_6-of-8{width:75%}.slds-max-medium-size--7-of-8,.slds-max-medium-size_7-of-8{width:87.5%}.slds-max-medium-size--8-of-8,.slds-max-medium-size_8-of-8{width:100%}.slds-max-medium-size--1-of-12,.slds-max-medium-size_1-of-12{width:8.3333333333%}.slds-max-medium-size--2-of-12,.slds-max-medium-size_2-of-12{width:16.6666666667%}.slds-max-medium-size--3-of-12,.slds-max-medium-size_3-of-12{width:25%}.slds-max-medium-size--4-of-12,.slds-max-medium-size_4-of-12{width:33.3333333333%}.slds-max-medium-size--5-of-12,.slds-max-medium-size_5-of-12{width:41.6666666667%}.slds-max-medium-size--6-of-12,.slds-max-medium-size_6-of-12{width:50%}.slds-max-medium-size--7-of-12,.slds-max-medium-size_7-of-12{width:58.3333333333%}.slds-max-medium-size--8-of-12,.slds-max-medium-size_8-of-12{width:66.6666666667%}.slds-max-medium-size--9-of-12,.slds-max-medium-size_9-of-12{width:75%}.slds-max-medium-size--10-of-12,.slds-max-medium-size_10-of-12{width:83.3333333333%}.slds-max-medium-size--11-of-12,.slds-max-medium-size_11-of-12{width:91.6666666667%}.slds-max-medium-size--12-of-12,.slds-max-medium-size_12-of-12{width:100%}.slds-max-medium-order--1,.slds-max-medium-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-max-medium-order--2,.slds-max-medium-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-max-medium-order--3,.slds-max-medium-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-max-medium-order--4,.slds-max-medium-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-max-medium-order--5,.slds-max-medium-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-max-medium-order--6,.slds-max-medium-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-max-medium-order--7,.slds-max-medium-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-max-medium-order--8,.slds-max-medium-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-max-medium-order--9,.slds-max-medium-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-max-medium-order--10,.slds-max-medium-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-max-medium-order--11,.slds-max-medium-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-max-medium-order--12,.slds-max-medium-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (min-width:64em){[class*=slds-large-size--],[class*=slds-large-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-large-size--xxx-small,.slds-large-size_xxx-small{width:3rem}.slds-large-size--xx-small,.slds-large-size_xx-small{width:6rem}.slds-large-size--x-small,.slds-large-size_x-small{width:12rem}.slds-large-size--small,.slds-large-size_small{width:15rem}.slds-large-size--medium,.slds-large-size_medium{width:20rem}.slds-large-size--large,.slds-large-size_large{width:25rem}.slds-large-size--x-large,.slds-large-size_x-large{width:40rem}.slds-large-size--xx-large,.slds-large-size_xx-large{width:60rem}.slds-large-size--1-of-1,.slds-large-size_1-of-1{width:100%}.slds-large-size--1-of-2,.slds-large-size_1-of-2{width:50%}.slds-large-size--2-of-2,.slds-large-size_2-of-2{width:100%}.slds-large-size--1-of-3,.slds-large-size_1-of-3{width:33.3333333333%}.slds-large-size--2-of-3,.slds-large-size_2-of-3{width:66.6666666667%}.slds-large-size--3-of-3,.slds-large-size_3-of-3{width:100%}.slds-large-size--1-of-4,.slds-large-size_1-of-4{width:25%}.slds-large-size--2-of-4,.slds-large-size_2-of-4{width:50%}.slds-large-size--3-of-4,.slds-large-size_3-of-4{width:75%}.slds-large-size--4-of-4,.slds-large-size_4-of-4{width:100%}.slds-large-size--1-of-5,.slds-large-size_1-of-5{width:20%}.slds-large-size--2-of-5,.slds-large-size_2-of-5{width:40%}.slds-large-size--3-of-5,.slds-large-size_3-of-5{width:60%}.slds-large-size--4-of-5,.slds-large-size_4-of-5{width:80%}.slds-large-size--5-of-5,.slds-large-size_5-of-5{width:100%}.slds-large-size--1-of-6,.slds-large-size_1-of-6{width:16.6666666667%}.slds-large-size--2-of-6,.slds-large-size_2-of-6{width:33.3333333333%}.slds-large-size--3-of-6,.slds-large-size_3-of-6{width:50%}.slds-large-size--4-of-6,.slds-large-size_4-of-6{width:66.6666666667%}.slds-large-size--5-of-6,.slds-large-size_5-of-6{width:83.3333333333%}.slds-large-size--6-of-6,.slds-large-size_6-of-6{width:100%}.slds-large-size--1-of-7,.slds-large-size_1-of-7{width:14.2857142857%}.slds-large-size--2-of-7,.slds-large-size_2-of-7{width:28.5714285714%}.slds-large-size--3-of-7,.slds-large-size_3-of-7{width:42.8571428571%}.slds-large-size--4-of-7,.slds-large-size_4-of-7{width:57.1428571429%}.slds-large-size--5-of-7,.slds-large-size_5-of-7{width:71.4285714286%}.slds-large-size--6-of-7,.slds-large-size_6-of-7{width:85.7142857143%}.slds-large-size--7-of-7,.slds-large-size_7-of-7{width:100%}.slds-large-size--1-of-8,.slds-large-size_1-of-8{width:12.5%}.slds-large-size--2-of-8,.slds-large-size_2-of-8{width:25%}.slds-large-size--3-of-8,.slds-large-size_3-of-8{width:37.5%}.slds-large-size--4-of-8,.slds-large-size_4-of-8{width:50%}.slds-large-size--5-of-8,.slds-large-size_5-of-8{width:62.5%}.slds-large-size--6-of-8,.slds-large-size_6-of-8{width:75%}.slds-large-size--7-of-8,.slds-large-size_7-of-8{width:87.5%}.slds-large-size--8-of-8,.slds-large-size_8-of-8{width:100%}.slds-large-size--1-of-12,.slds-large-size_1-of-12{width:8.3333333333%}.slds-large-size--2-of-12,.slds-large-size_2-of-12{width:16.6666666667%}.slds-large-size--3-of-12,.slds-large-size_3-of-12{width:25%}.slds-large-size--4-of-12,.slds-large-size_4-of-12{width:33.3333333333%}.slds-large-size--5-of-12,.slds-large-size_5-of-12{width:41.6666666667%}.slds-large-size--6-of-12,.slds-large-size_6-of-12{width:50%}.slds-large-size--7-of-12,.slds-large-size_7-of-12{width:58.3333333333%}.slds-large-size--8-of-12,.slds-large-size_8-of-12{width:66.6666666667%}.slds-large-size--9-of-12,.slds-large-size_9-of-12{width:75%}.slds-large-size--10-of-12,.slds-large-size_10-of-12{width:83.3333333333%}.slds-large-size--11-of-12,.slds-large-size_11-of-12{width:91.6666666667%}.slds-large-size--12-of-12,.slds-large-size_12-of-12{width:100%}.slds-large-order--1,.slds-large-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-large-order--2,.slds-large-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-large-order--3,.slds-large-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-large-order--4,.slds-large-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-large-order--5,.slds-large-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-large-order--6,.slds-large-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-large-order--7,.slds-large-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-large-order--8,.slds-large-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-large-order--9,.slds-large-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-large-order--10,.slds-large-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-large-order--11,.slds-large-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-large-order--12,.slds-large-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}@media (max-width:64em){[class*=slds-max-large-size--],[class*=slds-max-large-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-max-large-size--xxx-small,.slds-max-large-size_xxx-small{width:3rem}.slds-max-large-size--xx-small,.slds-max-large-size_xx-small{width:6rem}.slds-max-large-size--x-small,.slds-max-large-size_x-small{width:12rem}.slds-max-large-size--small,.slds-max-large-size_small{width:15rem}.slds-max-large-size--medium,.slds-max-large-size_medium{width:20rem}.slds-max-large-size--large,.slds-max-large-size_large{width:25rem}.slds-max-large-size--x-large,.slds-max-large-size_x-large{width:40rem}.slds-max-large-size--xx-large,.slds-max-large-size_xx-large{width:60rem}.slds-max-large-size--1-of-1,.slds-max-large-size_1-of-1{width:100%}.slds-max-large-size--1-of-2,.slds-max-large-size_1-of-2{width:50%}.slds-max-large-size--2-of-2,.slds-max-large-size_2-of-2{width:100%}.slds-max-large-size--1-of-3,.slds-max-large-size_1-of-3{width:33.3333333333%}.slds-max-large-size--2-of-3,.slds-max-large-size_2-of-3{width:66.6666666667%}.slds-max-large-size--3-of-3,.slds-max-large-size_3-of-3{width:100%}.slds-max-large-size--1-of-4,.slds-max-large-size_1-of-4{width:25%}.slds-max-large-size--2-of-4,.slds-max-large-size_2-of-4{width:50%}.slds-max-large-size--3-of-4,.slds-max-large-size_3-of-4{width:75%}.slds-max-large-size--4-of-4,.slds-max-large-size_4-of-4{width:100%}.slds-max-large-size--1-of-5,.slds-max-large-size_1-of-5{width:20%}.slds-max-large-size--2-of-5,.slds-max-large-size_2-of-5{width:40%}.slds-max-large-size--3-of-5,.slds-max-large-size_3-of-5{width:60%}.slds-max-large-size--4-of-5,.slds-max-large-size_4-of-5{width:80%}.slds-max-large-size--5-of-5,.slds-max-large-size_5-of-5{width:100%}.slds-max-large-size--1-of-6,.slds-max-large-size_1-of-6{width:16.6666666667%}.slds-max-large-size--2-of-6,.slds-max-large-size_2-of-6{width:33.3333333333%}.slds-max-large-size--3-of-6,.slds-max-large-size_3-of-6{width:50%}.slds-max-large-size--4-of-6,.slds-max-large-size_4-of-6{width:66.6666666667%}.slds-max-large-size--5-of-6,.slds-max-large-size_5-of-6{width:83.3333333333%}.slds-max-large-size--6-of-6,.slds-max-large-size_6-of-6{width:100%}.slds-max-large-size--1-of-7,.slds-max-large-size_1-of-7{width:14.2857142857%}.slds-max-large-size--2-of-7,.slds-max-large-size_2-of-7{width:28.5714285714%}.slds-max-large-size--3-of-7,.slds-max-large-size_3-of-7{width:42.8571428571%}.slds-max-large-size--4-of-7,.slds-max-large-size_4-of-7{width:57.1428571429%}.slds-max-large-size--5-of-7,.slds-max-large-size_5-of-7{width:71.4285714286%}.slds-max-large-size--6-of-7,.slds-max-large-size_6-of-7{width:85.7142857143%}.slds-max-large-size--7-of-7,.slds-max-large-size_7-of-7{width:100%}.slds-max-large-size--1-of-8,.slds-max-large-size_1-of-8{width:12.5%}.slds-max-large-size--2-of-8,.slds-max-large-size_2-of-8{width:25%}.slds-max-large-size--3-of-8,.slds-max-large-size_3-of-8{width:37.5%}.slds-max-large-size--4-of-8,.slds-max-large-size_4-of-8{width:50%}.slds-max-large-size--5-of-8,.slds-max-large-size_5-of-8{width:62.5%}.slds-max-large-size--6-of-8,.slds-max-large-size_6-of-8{width:75%}.slds-max-large-size--7-of-8,.slds-max-large-size_7-of-8{width:87.5%}.slds-max-large-size--8-of-8,.slds-max-large-size_8-of-8{width:100%}.slds-max-large-size--1-of-12,.slds-max-large-size_1-of-12{width:8.3333333333%}.slds-max-large-size--2-of-12,.slds-max-large-size_2-of-12{width:16.6666666667%}.slds-max-large-size--3-of-12,.slds-max-large-size_3-of-12{width:25%}.slds-max-large-size--4-of-12,.slds-max-large-size_4-of-12{width:33.3333333333%}.slds-max-large-size--5-of-12,.slds-max-large-size_5-of-12{width:41.6666666667%}.slds-max-large-size--6-of-12,.slds-max-large-size_6-of-12{width:50%}.slds-max-large-size--7-of-12,.slds-max-large-size_7-of-12{width:58.3333333333%}.slds-max-large-size--8-of-12,.slds-max-large-size_8-of-12{width:66.6666666667%}.slds-max-large-size--9-of-12,.slds-max-large-size_9-of-12{width:75%}.slds-max-large-size--10-of-12,.slds-max-large-size_10-of-12{width:83.3333333333%}.slds-max-large-size--11-of-12,.slds-max-large-size_11-of-12{width:91.6666666667%}.slds-max-large-size--12-of-12,.slds-max-large-size_12-of-12{width:100%}.slds-max-large-order--1,.slds-max-large-order_1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.slds-max-large-order--2,.slds-max-large-order_2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.slds-max-large-order--3,.slds-max-large-order_3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.slds-max-large-order--4,.slds-max-large-order_4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.slds-max-large-order--5,.slds-max-large-order_5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.slds-max-large-order--6,.slds-max-large-order_6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.slds-max-large-order--7,.slds-max-large-order_7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.slds-max-large-order--8,.slds-max-large-order_8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.slds-max-large-order--9,.slds-max-large-order_9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.slds-max-large-order--10,.slds-max-large-order_10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.slds-max-large-order--11,.slds-max-large-order_11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.slds-max-large-order--12,.slds-max-large-order_12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}}[class*=slds-size--],[class*=slds-size_]{-webkit-box-flex:0;-ms-flex:none;flex:none}.slds-has-buffer{margin:.75rem}.slds-has-full-bleed{margin:0}.slds-has-bottom-magnet{margin-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.slds-has-top-magnet{margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.slds-has-top-magnet.slds-has-buffer{margin-bottom:0;border-radius:0;border-top:0;-webkit-box-shadow:none;box-shadow:none}.slds-is-static{position:static}.slds-is-relative{position:relative}.slds-is-fixed{position:fixed}.slds-is-absolute{position:absolute}@media print{.slds-no-print{display:none}}.slds-collapsed{height:0;overflow:hidden}.slds-expanded{height:auto;overflow:visible}.slds-assistive-text{position:absolute!important;margin:-1px!important;border:0!important;padding:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;text-transform:none!important;white-space:nowrap!important}.slds-assistive-text--focus:focus,.slds-assistive-text_focus:focus{margin:inherit!important;border:inherit!important;padding:inherit!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important}.slds-is-collapsed{height:0;overflow:hidden}.slds-is-expanded{height:auto;overflow:visible}.slds-hidden{visibility:hidden!important}.slds-visible{visibility:visible}.slds-hide{display:none!important}.slds-show{display:block}.slds-show--inline-block,.slds-show_inline-block{display:inline-block}.slds-show--inline,.slds-show_inline{display:inline}.slds-transition-hide{opacity:0}.slds-transition-show{opacity:1}.slds-x-small-show{display:none}@media (min-width:320px){.slds-x-small-show{display:block}.slds-x-small-show--inline-block,.slds-x-small-show_inline-block{display:inline-block}.slds-x-small-show--inline,.slds-x-small-show_inline{display:inline}}.slds-x-small-show-only{display:none}@media (min-width:320px) and (max-width:479px){.slds-x-small-show-only{display:block}.slds-x-small-show-only--inline-block,.slds-x-small-show-only_inline-block{display:inline-block}.slds-x-small-show-only--inline,.slds-x-small-show-only_inline{display:inline}}@media (max-width:479px){.slds-max-x-small-hide{display:none}}.slds-small-show{display:none}@media (min-width:480px){.slds-small-show{display:block}.slds-small-show--inline-block,.slds-small-show_inline-block{display:inline-block}.slds-small-show--inline,.slds-small-show_inline{display:inline}}.slds-small-show-only{display:none}@media (min-width:480px) and (max-width:767px){.slds-small-show-only{display:block}.slds-small-show-only--inline-block,.slds-small-show-only_inline-block{display:inline-block}.slds-small-show-only--inline,.slds-small-show-only_inline{display:inline}}@media (max-width:767px){.slds-max-small-hide{display:none}}.slds-medium-show{display:none}@media (min-width:768px){.slds-medium-show{display:block}.slds-medium-show--inline-block,.slds-medium-show_inline-block{display:inline-block}.slds-medium-show--inline,.slds-medium-show_inline{display:inline}}.slds-medium-show-only{display:none}@media (min-width:768px) and (max-width:1023px){.slds-medium-show-only{display:block}.slds-medium-show-only--inline-block,.slds-medium-show-only_inline-block{display:inline-block}.slds-medium-show-only--inline,.slds-medium-show-only_inline{display:inline}}@media (max-width:1023px){.slds-max-medium-hide{display:none}}.slds-large-show{display:none}@media (min-width:1024px){.slds-large-show{display:block}.slds-large-show--inline-block,.slds-large-show_inline-block{display:inline-block}.slds-large-show--inline,.slds-large-show_inline{display:inline}}@media (min-width:320px){.slds-hide--x-small,.slds-hide_x-small{display:none!important}}@media (max-width:319px){.slds-show--x-small,.slds-show_x-small{display:none!important}}@media (min-width:480px){.slds-hide--small,.slds-hide_small{display:none!important}}@media (max-width:479px){.slds-show--small,.slds-show_small{display:none!important}}@media (min-width:768px){.slds-hide--medium,.slds-hide_medium{display:none!important}}@media (max-width:767px){.slds-show--medium,.slds-show_medium{display:none!important}}@media (min-width:1024px){.slds-hide--large,.slds-hide_large{display:none!important}}@media (max-width:1023px){.slds-show--large,.slds-show_large{display:none!important}}@media (min-width:1280px){.slds-hide--x-large,.slds-hide_x-large{display:none!important}}@media (max-width:1279px){.slds-show--x-large,.slds-show_x-large{display:none!important}}.slds-is-visually-empty{visibility:hidden!important;width:0}.slds-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}.slds-line-clamp_x-small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}.slds-line-clamp_small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}.slds-line-clamp_medium{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}.slds-line-clamp_large{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden;text-overflow:ellipsis;white-space:pre-line}/*! HTML5 Boilerplate v5.2.0 | MIT License | https://html5boilerplate.com/ */@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}} \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts index 4049ce9..1389663 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -21,7 +21,7 @@ export async function init(context: ExtensionContext){ // } }else{ // show prequisites installation page - prerequisites.noPrerequisitesHandler(missingPrerequisites); + prerequisites.noPrerequisitesHandler(context.extensionPath, missingPrerequisites); } }catch(exception){ console.error(exception); // TODO diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index d5b13ad..fc2df12 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -1,36 +1,61 @@ -import { execInTerminal } from "../shared/utils/terminal"; +import { prerequisitesConfig, NoPrerequisitesResponseOptions } from "../config/prerequisites.config"; +import { executeSyncTerminalCommand } from "../shared/utils/terminal"; +import { editorInput } from "../editor/editorInput"; +import { editorWebview } from "../editor/editorWebview"; -const PREREQUISITES: { [key: string]: { cmdVersion: string, isValidVersion: (version: string) => RegExpMatchArray } } = { - node: { - cmdVersion: 'node --version', - isValidVersion: (version: string) => version.match(/v\d*.\d*.\d*/) - }, - git: { - cmdVersion: 'git --version', - isValidVersion: (version: string) => version.match(/git version \d*.\d*.\d*.*/) - } +type PrerequisitesInstalledReturn = { + prerequisitesInstalled: boolean, + missingPrerequisites: string[] }; -async function arePreRequisitesInstalled(command: string): Promise{ - let prerequisitesList: Array = []; - if(!command){ - prerequisitesList = await Promise.all(Object.keys(PREREQUISITES).map(async (res) => { - const result: string = await execInTerminal(PREREQUISITES[res].cmdVersion); - return PREREQUISITES[res].isValidVersion(result) !== null; - })); - }else{ - let result: string = await execInTerminal(PREREQUISITES[command].cmdVersion); - prerequisitesList.push(PREREQUISITES[command].isValidVersion(result) !== null); - } - return prerequisitesList.every((res: boolean) => res === true); +function arePrerequisitesInstalled(): PrerequisitesInstalledReturn { + let prerequisiteResult: PrerequisitesInstalledReturn = { prerequisitesInstalled: true, missingPrerequisites: []}; + Object.entries(prerequisitesConfig.packages).forEach(([prerequisite, command]: string[]) => { + try{ + // executes each prerequisite command to check if they are installed in the system + // if not installed throws exception + executeSyncTerminalCommand(command); + }catch(error){ + prerequisiteResult = { + prerequisitesInstalled: false, + missingPrerequisites: [...prerequisiteResult["missingPrerequisites"], prerequisite] + }; + } + }); + return prerequisiteResult; }; -async function isDevToolsInstalled(): Promise { - const result: string = await execInTerminal('mcdev --version'); - return result.match(/\d*.\d*.\d*/) !== null; +async function noPrerequisitesHandler(extensionPath: string, missingPrerequisites: string[]): Promise { + // checks if the one or more prerequisites are missing to show the correct message. + const missingPrerequisitesMessage: string = missingPrerequisites.length === 1 ? + prerequisitesConfig.titles["onePrerequisiteMissing"].replace("{{prerequisites}}", missingPrerequisites[0]) : + prerequisitesConfig.titles["multiplePrerequisitesMissing"].replace("{{prerequisites}}", missingPrerequisites.join(" and ")); + + const message: string = `${missingPrerequisitesMessage} ${prerequisitesConfig.titles.askPrerequisitesToUser}`; + + // Asks if user wishes to follow the guide of how to install the prerequisites + const userResponse: string = await editorInput.handleShowInformationMessage( + message, + Object.keys(NoPrerequisitesResponseOptions).filter((v) => isNaN(Number(v))) + ); + + // If yes creates an webview in vscode with a installation guide + if(userResponse && NoPrerequisitesResponseOptions[userResponse as keyof typeof NoPrerequisitesResponseOptions]){ + editorWebview.create({ + id: prerequisitesConfig.webview.id, + title: prerequisitesConfig.webview.title, + extensionPath: extensionPath, + filename: prerequisitesConfig.webview.filename, + handler: ({ command }: { command: string }) => { + if(command === "install"){ + return { dispose: true }; + } + } + }); + } } -export { - arePreRequisitesInstalled, - isDevToolsInstalled +export const prerequisites = { + arePrerequisitesInstalled, + noPrerequisitesHandler }; \ No newline at end of file diff --git a/src/editor/editorWebview.ts b/src/editor/editorWebview.ts new file mode 100644 index 0000000..048dc97 --- /dev/null +++ b/src/editor/editorWebview.ts @@ -0,0 +1,63 @@ +import { window, WebviewPanel, Uri, ViewColumn } from "vscode"; +import { file } from "../shared/utils/file"; + +interface WebviewConfig { + id: string, + title: string, + extensionPath: string, + filename: string, + handler: (data: any) => { dispose: boolean } +}; + +function create(config: WebviewConfig){ + try { + const panel: WebviewPanel = window.createWebviewPanel( + config.id, + config.title, + ViewColumn.One, + { enableScripts: true } + ); + + let html: string = file.readFileSync(file.createFilePath([ + config.extensionPath, + "src", + "html", + `${config.filename}.html` + ])); + + const sldsPath: string = file.createFilePath([ + config.extensionPath, + "src", + "css", + "salesforce-lightning-design-system.min.css" + ]); + + const jsPath: string = file.createFilePath([ + config.extensionPath, + "src", + "js", + `${config.filename}.js` + ]); + + const sldsUriPath: Uri = panel.webview.asWebviewUri(Uri.file(sldsPath)); + const jsUriPath: Uri = panel.webview.asWebviewUri(Uri.file(jsPath)); + + html = html.replace("{{styleUri}}", sldsUriPath.toString()); + html = html.replace("{{jsUri}}", jsUriPath.toString()); + + panel.webview.onDidReceiveMessage((data: any) => { + const { dispose }: { dispose: boolean } = config.handler(data); + if(dispose){ + panel.dispose(); + } + }); + panel.webview.html = html; + + }catch(error){ + console.error(error); // TODO + } +} + +export const editorWebview = { + create +}; \ No newline at end of file diff --git a/src/html/mcdev_prerequisites.html b/src/html/devtoolsPrerequisites.html similarity index 98% rename from src/html/mcdev_prerequisites.html rename to src/html/devtoolsPrerequisites.html index 2e19401..6f3e81f 100644 --- a/src/html/mcdev_prerequisites.html +++ b/src/html/devtoolsPrerequisites.html @@ -11,7 +11,7 @@
-

Pre-Requisites Installation

+

Prerequisites Installation

  1. diff --git a/src/js/mcdev_prerequisites.js b/src/js/devtoolsPrerequisites.js similarity index 100% rename from src/js/mcdev_prerequisites.js rename to src/js/devtoolsPrerequisites.js diff --git a/src/shared/utils/file.ts b/src/shared/utils/file.ts index f74a852..34e7e88 100644 --- a/src/shared/utils/file.ts +++ b/src/shared/utils/file.ts @@ -1,4 +1,6 @@ import { TextDocument, Uri, workspace } from 'vscode'; +import * as fs from 'fs'; +import * as path from 'path'; export async function readFile(filename: string): Promise{ const [{ uri }] = workspace.workspaceFolders; @@ -12,4 +14,21 @@ export async function readFile(filename: string): Promise{ export async function isFileInFolder(filename: string): Promise { const fileArray: Array = await workspace.findFiles(filename); return fileArray.length > 0; -} \ No newline at end of file +} + +function readFileSync(path: string): string { + try{ + return fs.readFileSync(path, "utf-8"); + }catch(error){ + throw error; + } +} + +function createFilePath(pathArray: string[]): string { + return path.join(...pathArray); +} + +export const file = { + createFilePath, + readFileSync +}; \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 4176e80..74cf868 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,7 +3,6 @@ 'use strict'; const path = require('path'); -const CopyPlugin = require('copy-webpack-plugin'); /**@type {import('webpack').Configuration}*/ const config = { @@ -35,16 +34,6 @@ const config = { } ] }, - plugins: [ - // @ts-ignore - new CopyPlugin({ - patterns: [ - { - from: path.resolve(__dirname, './node_modules/@salesforce-ux/design-system/assets'), - to: path.resolve(__dirname, 'dist/design-system') - }, - ] - }) - ] + plugins: [] }; module.exports = config; \ No newline at end of file From 16efcbaf4a01f4d904b1eced10506d691fa84bdf Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Wed, 31 May 2023 12:28:40 +0200 Subject: [PATCH 04/24] added some testing for prerequisites --- .gitignore | 5 +- jest.config.js | 6 + package-lock.json | 13874 +++++++++++----- package.json | 22 +- src/config/prerequisites.config.ts | 4 +- .../commands/DevToolsAdminCommands.ts | 106 +- src/devtools/commands/DevToolsCommands.ts | 6 +- .../commands/DevToolsStandardCommands.ts | 4 +- src/devtools/extension.ts | 433 +- src/devtools/helpers/initHelper.ts | 142 +- src/devtools/helpers/installHelper.ts | 111 +- src/devtools/init.ts | 4 +- src/devtools/installer.ts | 1 + src/devtools/prerequisites.ts | 9 +- src/editor/editorInput.ts | 2 +- src/editor/editorSettings.ts | 106 +- ...nitialize.html => devtoolsInitialize.html} | 0 ...ev_initialize.js => devtoolsInitialize.js} | 0 src/shared/utils/file.ts | 20 +- src/shared/utils/terminal.ts | 23 +- test/__mocks__/vscode.ts | 35 + test/__unit__/prerequisites.test.ts | 31 + tsconfig.json | 30 +- tsconfig.test.json | 8 + webpack.config.js | 10 +- 25 files changed, 10548 insertions(+), 4444 deletions(-) create mode 100644 jest.config.js create mode 100644 src/devtools/installer.ts rename src/html/{mcdev_initialize.html => devtoolsInitialize.html} (100%) rename src/js/{mcdev_initialize.js => devtoolsInitialize.js} (100%) create mode 100644 test/__mocks__/vscode.ts create mode 100644 test/__unit__/prerequisites.test.ts create mode 100644 tsconfig.test.json diff --git a/.gitignore b/.gitignore index c849bff..901c232 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ node_modules +out dist logs -.vscode \ No newline at end of file +.vscode +.vscode-test +coverage \ No newline at end of file diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..775899e --- /dev/null +++ b/jest.config.js @@ -0,0 +1,6 @@ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + modulePathIgnorePatterns: ["/dist", "/test"], + testMatch: ["/out/test/**/*.test.js"] +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 77ea485..61b1242 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,19 +11,28 @@ "@salesforce-ux/design-system": "^2.8.1" }, "devDependencies": { + "@types/chai": "^4.3.5", "@types/glob": "^7.1.3", - "@types/mocha": "^8.2.2", + "@types/jest": "^29.5.1", "@types/node": "14.x", + "@types/sinon": "^10.0.15", "@types/vscode": "^1.60.0", "@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/parser": "^4.26.0", + "@vscode/test-electron": "^2.3.2", + "chai": "^4.3.7", "copy-webpack-plugin": "^11.0.0", "eslint": "^7.27.0", "glob": "^7.1.7", + "jest": "^29.5.0", + "jest-environment-node": "^29.5.0", "mocha": "^10.2.0", + "nyc": "^15.1.0", + "sinon": "^15.1.0", + "ts-jest": "^29.1.0", "ts-loader": "^9.2.2", + "ts-node": "^10.9.1", "typescript": "^4.3.2", - "vscode-test": "^1.5.2", "webpack": "^5.38.1", "webpack-cli": "^4.7.0" }, @@ -31,6 +40,19 @@ "vscode": "^1.60.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -40,6 +62,216 @@ "@babel/highlight": "^7.10.4" } }, + "node_modules/@babel/compat-data": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.9.tgz", + "integrity": "sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", @@ -49,6 +281,29 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/highlight": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", @@ -134,1796 +389,2032 @@ "node": ">=4" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=10.0.0" + "node": ">=6.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "engines": { - "node": ">= 4" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=10.10.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "engines": { - "node": ">= 8" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@salesforce-ux/design-system": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/@salesforce-ux/design-system/-/design-system-2.20.1.tgz", - "integrity": "sha512-MZbOfmTOPZD6JOARmW+Co83Ypge5zNAXiu/C2RuVVSa14xS/kqcYuuyPgGPITu7TNMdQ706oQFJRqSj1HH6uZA==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, "peerDependencies": { - "postcss": "^8.3.5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">= 6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/eslint": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", - "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", "dev": true, "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "node_modules/@babel/template": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", "dev": true, "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "14.18.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", - "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", - "dev": true - }, - "node_modules/@types/vscode": { - "version": "1.76.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz", - "integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@babel/highlight": "^7.18.6" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" + "node": ">=6.9.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=12" } }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 4" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "engines": { + "node": ">=6" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "@xtuc/long": "4.2.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "node_modules/@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "node_modules/@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", "dev": true, "dependencies": { - "envinfo": "^7.7.3" + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "webpack-dev-server": { + "node-notifier": { "optional": true } } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "node_modules/@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", "dev": true, "dependencies": { - "debug": "4" + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" }, "engines": { - "node": ">= 6.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", "dev": true, "dependencies": { - "ajv": "^8.0.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "ajv": "^8.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "ajv": { + "node-notifier": { "optional": true } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=8" } }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/@jest/reporters/node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/@jest/reporters/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/astral-regex": { + "node_modules/@jest/transform/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, "engines": { - "node": ">=0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": "*" + "node": ">=6.0.0" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">= 8" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/@salesforce-ux/design-system": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@salesforce-ux/design-system/-/design-system-2.20.1.tgz", + "integrity": "sha512-MZbOfmTOPZD6JOARmW+Co83Ypge5zNAXiu/C2RuVVSa14xS/kqcYuuyPgGPITu7TNMdQ706oQFJRqSj1HH6uZA==", + "peerDependencies": { + "postcss": "^8.3.5" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, - "engines": { - "node": ">=0.10" + "dependencies": { + "type-detect": "4.0.8" } }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", + "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", "dev": true, - "engines": { - "node": ">=0.2.0" + "dependencies": { + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@sinonjs/samsam": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "type-detect": "4.0.8" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, "engines": { - "node": "*" + "node": ">= 6" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "@babel/types": "^7.0.0" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "node_modules/@types/babel__traverse": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.0.tgz", + "integrity": "sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q==", "dev": true, - "engines": { - "node": ">=6.0" + "dependencies": { + "@babel/types": "^7.20.7" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.21.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", + "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@types/minimatch": "*", + "@types/node": "*" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", + "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "node_modules/@types/node": { + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", "dev": true }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/sinon": { + "version": "10.0.15", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", + "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", "dev": true, "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", + "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/vscode": { + "version": "1.76.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz", + "integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">= 14.15.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "webpack": "^5.1.0" + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": "*" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" }, "engines": { - "node": ">= 8" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" }, "engines": { - "node": ">=6.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", "dev": true, "engines": { - "node": ">=10" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, "engines": { - "node": ">=0.3.1" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/@vscode/test-electron": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.2.tgz", + "integrity": "sha512-CRfQIs5Wi5Ok5SUCC3PTvRRXa74LD43cSXHC8EuNlmHHEPaJa/AGrv76brcA1hVSxrdja9tiYwp95Lq8kwY0tw==", "dev": true, "dependencies": { - "esutils": "^2.0.2" + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "jszip": "^3.10.1", + "semver": "^7.3.8" }, "engines": { - "node": ">=6.0.0" + "node": ">=16" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "dependencies": { - "readable-stream": "^2.0.2" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" + "dependencies": { + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@xtuc/long": "4.2.2" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", "dev": true, - "engines": { - "node": ">=4" + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "envinfo": "^7.7.3" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "webpack-cli": "4.x.x" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", "dev": true, - "engines": { - "node": ">= 4" + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } } }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.4.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "dependencies": { + "debug": "4" }, "engines": { - "node": ">=4" + "node": ">= 6.0.0" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { - "estraverse": "^5.1.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "engines": { - "node": ">=4.0" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "dependencies": { - "estraverse": "^5.2.0" + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, "engines": { - "node": ">=4.0" + "node": ">=6" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, "engines": { - "node": ">=4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.8.x" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/fast-deep-equal": { + "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=8.6.0" + "node": ">= 8" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "default-require-extensions": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { - "node": ">= 4.9.1" + "node": ">=8" } }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" + "engines": { + "node": "*" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "flat": "cli.js" + "semver": "bin/semver.js" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=8" } }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.6" + "node": ">=8" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fast-json-stable-stringify": "2.x" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 6" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" + "node-int64": "^0.4.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, "engines": { "node": ">=10" }, @@ -1931,1127 +2422,1023 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "node_modules/caniuse-lite": { + "version": "1.0.30001465", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", + "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" }, "engines": { - "node": ">= 0.4.0" + "node": ">=4" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "bin": { - "he": "bin/he" + "engines": { + "node": ">=10" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": "*" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "agent-base": "6", - "debug": "4" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 6" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">= 4" + "node": ">= 6" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { - "node": ">=0.8.19" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "dependencies": { - "has": "^1.0.3" + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "ms": "2.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "strip-bom": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=8" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.3.1" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, "engines": { - "node": ">= 0.8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "dev": true - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { - "node": ">=6.11.5" + "node": ">=8" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0.0" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "node_modules/electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", "dev": true }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node": ">=10.13.0" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "ansi-colors": "^4.1.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8.6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "bin": { + "envinfo": "dist/cli.js" }, "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "is-arrayish": "^0.2.1" } }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true }, - "node_modules/mocha/node_modules/ansi-colors": { + "node_modules/es6-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": "*" + "node": "^10.12.0 || >=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": "*" + "node": ">=8.0.0" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "eslint-visitor-keys": "^2.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { "node": ">=10" } }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=4" } }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">= 6" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" + "node": ">=4" } }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=4.0" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">=4.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.x" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", "dev": true, - "engines": { - "node": ">=8.6" + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "peer": true, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=8.6.0" } }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 6" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">= 4.9.1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { - "safe-buffer": "^5.1.0" + "reusify": "^1.0.4" } }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "bser": "2.1.1" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=8.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "resolve": "^1.9.0" + "to-regex-range": "^5.0.1" }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "flat": "cli.js" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true, "funding": [ { @@ -3066,1723 +3453,6451 @@ "type": "consulting", "url": "https://feross.org/support" } + ] + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" ], - "dependencies": { - "queue-microtask": "^1.2.2" + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=6.9.0" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "engines": { + "node": "*" } }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "randombytes": "^2.1.0" + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { - "kind-of": "^6.0.2" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.4.0" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "peer": true, - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "bin": { + "he": "bin/he" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.17.0" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "node": ">=8" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/terser": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", - "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, "engines": { - "node": ">=10" + "node": ">= 0.10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "node": ">=8" } }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" + "has": "^1.0.3" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terser/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" + "node": ">=0.10.0" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "node": ">=8" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "isobject": "^3.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=4.2.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/unzipper/node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" + "append-transform": "^2.0.0" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=8" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "dependencies": { - "punycode": "^2.1.0" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", - "deprecated": "This package has been renamed to @vscode/test-electron, please update to the new name", + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, "dependencies": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" }, "engines": { - "node": ">=8.9.3" + "node": ">=8" } }, - "node_modules/vscode-test/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=8" } }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=10.13.0" + "node": ">=10" } }, - "node_modules/webpack": { - "version": "5.76.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", - "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "node": ">=8" } }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "node_modules/jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", "dev": true, "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" + "jest-cli": "^29.5.0" }, "bin": { - "webpack-cli": "bin/cli.js" + "jest": "bin/jest.js" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { + "node-notifier": { "optional": true } } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, "engines": { - "node": ">= 10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "node_modules/jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "node_modules/jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", "dev": true, + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, "peerDependencies": { - "acorn": "^8" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "node_modules/jest-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=12" + } + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "engines": { + "node": ">=12" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, - "bin": { - "node-which": "bin/node-which" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "node_modules/jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "node_modules/jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "node_modules/jest-message-util/node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dev": true, "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" + "@babel/highlight": "^7.18.6" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" } }, - "node_modules/yargs/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { - "node": ">=10" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true + "node_modules/jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": 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", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nise": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sinon": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", + "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.2.0", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.6.tgz", + "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", + "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.76.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", + "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.9.tgz", + "integrity": "sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ==", + "dev": true + }, + "@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/template": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + } + } + }, + "@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + } + }, + "@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "dev": true, + "requires": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + } + }, + "@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3" + } + }, + "@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + } + }, + "@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "dev": true, + "requires": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + } + } + }, + "@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@salesforce-ux/design-system": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@salesforce-ux/design-system/-/design-system-2.20.1.tgz", + "integrity": "sha512-MZbOfmTOPZD6JOARmW+Co83Ypge5zNAXiu/C2RuVVSa14xS/kqcYuuyPgGPITu7TNMdQ706oQFJRqSj1HH6uZA==", + "requires": {} + }, + "@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", + "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@sinonjs/samsam": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" } } } }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.0.tgz", + "integrity": "sha512-TBOjqAGf0hmaqRwpii5LLkJLg7c6OMm4nHLmpsUxwk9bBHtoTC6dAHdVWdGv4TBxj2CZOZY8Xfq8WmfoVi7n4Q==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "@types/eslint": { + "version": "8.21.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", + "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.5.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", + "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "dev": true, + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "@types/node": { + "version": "14.18.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", + "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", + "dev": true + }, + "@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "@types/sinon": { + "version": "10.0.15", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", + "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", + "dev": true, + "requires": { + "@types/sinonjs__fake-timers": "*" + } + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", + "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/vscode": { + "version": "1.76.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz", + "integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + } + }, + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@vscode/test-electron": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.2.tgz", + "integrity": "sha512-CRfQIs5Wi5Ok5SUCC3PTvRRXa74LD43cSXHC8EuNlmHHEPaJa/AGrv76brcA1hVSxrdja9tiYwp95Lq8kwY0tw==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "jszip": "^3.10.1", + "semver": "^7.3.8" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "envinfo": "^7.7.3" } }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "debug": "4" } }, - "@jridgewell/resolve-uri": { + "aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "color-convert": "^2.0.1" } }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "sprintf-js": "~1.0.2" } }, - "@salesforce-ux/design-system": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/@salesforce-ux/design-system/-/design-system-2.20.1.tgz", - "integrity": "sha512-MZbOfmTOPZD6JOARmW+Co83Ypge5zNAXiu/C2RuVVSa14xS/kqcYuuyPgGPITu7TNMdQ706oQFJRqSj1HH6uZA==", - "requires": {} + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "@types/eslint": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", - "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", "dev": true, "requires": { - "@types/estree": "*", - "@types/json-schema": "*" + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" } }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { - "@types/eslint": "*", - "@types/estree": "*" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" } }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } }, - "@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true + "babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + } }, - "@types/node": { - "version": "14.18.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", - "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "@types/vscode": { - "version": "1.76.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz", - "integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==", + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "fill-range": "^7.0.1" } }, - "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - } + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true }, - "@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" } }, - "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "fast-json-stable-stringify": "2.x" } }, - "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "node-int64": "^0.4.0" } }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "caniuse-lite": { + "version": "1.0.30001465", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", + "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", "dev": true }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "@xtuc/long": "4.2.2" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" } }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "color-name": "~1.1.4" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } } }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "ms": "2.1.2" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" + "type-detect": "^4.0.0" } }, - "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "requires": {} + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "requires": { - "envinfo": "^7.7.3" + "strip-bom": "^4.0.0" } }, - "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "path-type": "^4.0.0" } }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "esutils": "^2.0.2" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "dev": true }, - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "ansi-colors": "^4.1.1" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "is-arrayish": "^0.2.1" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "eslint-visitor-keys": "^2.0.0" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "caniuse-lite": { - "version": "1.0.30001465", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", - "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "traverse": ">=0.3.0 <0.4" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" } }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "dependencies": { "glob-parent": { @@ -4796,850 +9911,1095 @@ } } }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "reusify": "^1.0.4" } }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "bser": "2.1.1" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "color-name": "~1.1.4" + "flat-cache": "^3.0.4" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "requires": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "dependencies": { - "globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" } }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { - "esutils": "^2.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "readable-stream": "^2.0.2" + "is-glob": "^4.0.3" } }, - "electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "type-fest": "^0.20.2" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } }, - "escape-string-regexp": { + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" }, "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { - "eslint-visitor-keys": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" } }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "once": "^1.3.0", + "wrappy": "1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "binary-extensions": "^2.0.0" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "has": "^1.0.3" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } + "isobject": "^3.0.1" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { - "reusify": "^1.0.4" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "glob": "^7.1.3" + "yocto-queue": "^0.1.0" } } } }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", "dev": true, - "optional": true + "requires": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" } }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "requires": { - "is-glob": "^4.0.3" + "detect-newline": "^3.0.0" } }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", "dev": true, "requires": { - "type-fest": "^0.20.2" + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", "dev": true, "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "dependencies": { + "jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true + "jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", "dev": true, "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + } } }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, "requires": { - "agent-base": "6", - "debug": "4" + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" } }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "jest-pnp-resolver": { + "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": {} + }, + "jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "dev": true }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" } }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", "dev": true, "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + } + }, + "jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "yocto-queue": "^0.1.0" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "find-up": "^4.0.0" + "has-flag": "^4.0.0" } } } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" } }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dev": true, "requires": { - "has": "^1.0.3" + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", "dev": true, "requires": { - "isobject": "^3.0.1" + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" } }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -5678,6 +11038,12 @@ "esprima": "^4.0.0" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5696,12 +11062,48 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -5712,10 +11114,19 @@ "type-check": "~0.4.0" } }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "loader-runner": { @@ -5733,6 +11144,24 @@ "p-locate": "^5.0.0" } }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -5755,6 +11184,56 @@ "is-unicode-supported": "^0.1.0" } }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5792,6 +11271,12 @@ "mime-db": "1.52.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5801,21 +11286,6 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, "mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -5961,6 +11431,45 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "nise": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, "node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", @@ -5973,6 +11482,155 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -5982,6 +11640,15 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -6025,12 +11692,39 @@ } } }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6040,6 +11734,18 @@ "callsites": "^3.0.0" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6064,12 +11770,35 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + } + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -6081,6 +11810,51 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, "postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -6106,24 +11880,68 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, "punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, + "pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6139,6 +11957,12 @@ "safe-buffer": "^5.1.0" } }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -6178,6 +12002,15 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6190,6 +12023,12 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -6224,6 +12063,12 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -6231,9 +12076,9 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -6330,6 +12175,12 @@ "randombytes": "^2.1.0" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -6360,6 +12211,40 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sinon": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", + "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.2.0", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", + "supports-color": "^7.2.0" + }, + "dependencies": { + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6399,12 +12284,43 @@ "source-map": "^0.6.0" } }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -6414,6 +12330,16 @@ "safe-buffer": "~5.1.0" } }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -6434,6 +12360,18 @@ "ansi-regex": "^5.0.1" } }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -6540,12 +12478,35 @@ } } }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6555,11 +12516,29 @@ "is-number": "^7.0.0" } }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "dev": true + "ts-jest": { + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", + "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } }, "ts-loader": { "version": "9.4.2", @@ -6573,6 +12552,41 @@ "semver": "^7.3.4" } }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -6597,44 +12611,33 @@ "prelude-ls": "^1.2.1" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "dev": true - } - } - }, "update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -6660,33 +12663,42 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, "requires": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" } }, "watchpack": { @@ -6810,6 +12822,12 @@ "isexe": "^2.0.0" } }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -6845,6 +12863,30 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -6858,14 +12900,6 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" - }, - "dependencies": { - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - } } }, "yargs-parser": { @@ -6886,6 +12920,12 @@ "is-plain-obj": "^2.1.0" } }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 13ac259..64f8ebe 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "categories": [ "Other" ], - "main": "./dist/extension.js", + "main": "./dist/extension.bundle.js", "activationEvents": [ "onStartupFinished" ], @@ -50,26 +50,34 @@ "compile": "webpack", "watch": "webpack --watch", "package": "webpack --mode production --devtool hidden-source-map", - "test-compile": "tsc -p ./", - "test-watch": "tsc -watch -p ./", - "pretest": "npm run test-compile && npm run lint", "lint": "eslint src --ext ts", - "test": "node ./out/test/runTest.js" + "pretest": "tsc -p tsconfig.test.json", + "test": "jest --coverage", + "coverage": "nyc npm run test" }, "devDependencies": { + "@types/chai": "^4.3.5", "@types/glob": "^7.1.3", - "@types/mocha": "^8.2.2", + "@types/jest": "^29.5.1", "@types/node": "14.x", + "@types/sinon": "^10.0.15", "@types/vscode": "^1.60.0", "@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/parser": "^4.26.0", + "@vscode/test-electron": "^2.3.2", + "chai": "^4.3.7", "copy-webpack-plugin": "^11.0.0", "eslint": "^7.27.0", "glob": "^7.1.7", + "jest": "^29.5.0", + "jest-environment-node": "^29.5.0", "mocha": "^10.2.0", + "nyc": "^15.1.0", + "sinon": "^15.1.0", + "ts-jest": "^29.1.0", "ts-loader": "^9.2.2", + "ts-node": "^10.9.1", "typescript": "^4.3.2", - "vscode-test": "^1.5.2", "webpack": "^5.38.1", "webpack-cli": "^4.7.0" }, diff --git a/src/config/prerequisites.config.ts b/src/config/prerequisites.config.ts index ead1f88..2ca9df2 100644 --- a/src/config/prerequisites.config.ts +++ b/src/config/prerequisites.config.ts @@ -5,7 +5,7 @@ export enum NoPrerequisitesResponseOptions { }; export const prerequisitesConfig: { packages: { node: string, git: string }, - titles: { + messages: { onePrerequisiteMissing: string, multiplePrerequisitesMissing: string, askPrerequisitesToUser: string @@ -16,7 +16,7 @@ export const prerequisitesConfig: { node: "node -v", git: "git --version" }, - titles: { + messages: { onePrerequisiteMissing: "Unfortunately the prerequesite {{prerequisites}} is missing.", multiplePrerequisitesMissing: "Unfortunately the prerequesites {{prerequisites}} are missing.", askPrerequisitesToUser: "Do you want to open the installation guide?" diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts index a1589a0..ebe6e5c 100644 --- a/src/devtools/commands/DevToolsAdminCommands.ts +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -1,52 +1,54 @@ -import { parseArrayJsonStringToArray } from "../../shared/utils/lib"; -import DevToolsCommands from "./DevToolsCommands"; - -class DevToolsAdminCommands extends DevToolsCommands { - - private readonly type: string = "admin"; - private commandsConfig; - private supportedMdType: {}[]; - private commandsList: { [key: string]: (...args: any) => void; } = { - init: this.init, - etypes: this.explainTypes - }; - - constructor(){ - super(); - this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); - this.supportedMdType = []; - } - - getCommand(id: string): () => void { - return this.commandsList[id]; - } - - setSupportedMdTypes(mdTypes: {}[]): void { - this.supportedMdType = mdTypes; - }; - - getSupportedMdTypes(): {}[] { - return this.supportedMdType; - }; - - run(id: string, args: {[key: string]: string }, handleResult: (res: any) => void): void { - this.runDTCommand(this.getCommand(id), args, handleResult); - } - - init(args: {[key: string]: string}){ - console.log("Admin - Init Command - args = ", args); - } - - async explainTypes(args: {[key: string]: string}, handleResult?: (res: any) => void){ - console.log("Admin - Explain Types Command - args = ", args); - let [{ command }] = this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "etypes"); - if(!command){ - // throw error - } - command = command.replace("{{json}}", args["json"] ? "--json" : ""); - const mdTypes: string = await this.executeCommand(command, false); - handleResult(parseArrayJsonStringToArray(mdTypes)); - } -} - -export default DevToolsAdminCommands; \ No newline at end of file +// import { parseArrayJsonStringToArray } from "../../shared/utils/lib"; +// import DevToolsCommands from "./DevToolsCommands"; + +// class DevToolsAdminCommands extends DevToolsCommands { + +// private readonly type: string = "admin"; +// private commandsConfig; +// private supportedMdType: {}[]; +// private commandsList: { [key: string]: (...args: any) => void; } = { +// init: this.init, +// etypes: this.explainTypes +// }; + +// constructor(){ +// super(); +// this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); +// this.supportedMdType = []; +// } + +// getCommand(id: string): () => void { +// return this.commandsList[id]; +// } + +// setSupportedMdTypes(mdTypes: {}[]): void { +// this.supportedMdType = mdTypes; +// }; + +// getSupportedMdTypes(): {}[] { +// return this.supportedMdType; +// }; + +// run(id: string, args: {[key: string]: string }, handleResult: (res: any) => void): void { +// this.runDTCommand(this.getCommand(id), args, handleResult); +// } + +// init(args: {[key: string]: string}){ +// console.log("Admin - Init Command - args = ", args); +// } + +// // async explainTypes(args: {[key: string]: string}, handleResult?: (res: any) => void){ +// // console.log("Admin - Explain Types Command - args = ", args); +// // let [{ command }] = this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "etypes"); +// // if(!command){ +// // // throw error +// // } +// // command = command.replace("{{json}}", args["json"] ? "--json" : ""); +// // const mdTypes: string = await this.executeCommand(command, false); +// // if(handleResult !== undefined ){ +// // handleResult(parseArrayJsonStringToArray(mdTypes)); +// // } +// // } +// } + +// export default DevToolsAdminCommands; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index de1d158..97c0fe7 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -1,4 +1,4 @@ -import { execInTerminal } from "../../shared/utils/terminal"; +// import { execInTerminal } from "../../shared/utils/terminal"; import * as commandsConfig from "./commands.config.json"; interface DevToolsCommandSetting { @@ -16,7 +16,7 @@ interface IDevToolsCommand { } abstract class DevToolsCommands implements IDevToolsCommand { - name: string; + name: string | undefined; abstract getCommand(id: string): void; abstract setSupportedMdTypes(mdTypes: {}[]): void; @@ -36,7 +36,7 @@ abstract class DevToolsCommands implements IDevToolsCommand { if(runWindowTerminal){ //execInWindowTerminal(command); }else{ - return execInTerminal(command); + // return execInTerminal(command); } } diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index 1087c9a..c293271 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -47,8 +47,8 @@ class DevToolsStandardCommands extends DevToolsCommands { }else{ // request user console.log(this.getSupportedMdTypes()); - const supportedMdTypes = this.getSupportedMdTypes() - .filter(mdType => mdType.supports.retrieve); + // const supportedMdTypes = this.getSupportedMdTypes() + // .filter(mdType => mdType.supports.retrieve); } }); } diff --git a/src/devtools/extension.ts b/src/devtools/extension.ts index 5ed365d..752d970 100644 --- a/src/devtools/extension.ts +++ b/src/devtools/extension.ts @@ -1,216 +1,219 @@ -import DevToolsCommands from "./commands/DevToolsCommands"; -import DevToolsAdminCommands from "./commands/DevToolsAdminCommands"; -import DevToolsStandardCommands from "./commands/DevToolsStandardCommands"; -import { readFile } from "../shared/utils/file"; -import { editorInput } from "../editor/editorInput"; -import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; - -interface DTStatusBarSettings { - dtCredential: { - command: string, - title: string - }, - dtCommand: { - command: string, - title: string - } -}; - -const DEVTOOLS_STATUS_BAR_CREDBU: DTStatusBarSettings = { - dtCredential: { - command: "sfmc-devtools-vscode.credbu", - title: "DT:Credential/BU" - }, - dtCommand: { - command: "sfmc-devtools-vscode.command", - title: "DT:Command" - } -}; - -const DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE: string = "sfmc-devtools-vscode.devToolsMenuActionRetrieve"; -const DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY: string = "sfmc-devtools-vscode.devToolsMenuActionDeploy"; - -const COMMAND_INPUT_TITLES: { [key: string]: string } = { - credentialsName: "Select one of the credentials...", - bussinessUnit: "Select one of the business units...", - selectType: "Select the DevTools Command Type...", - selectCmd: "Select the DevTools Command...", - metaDataType: "Select one or more metadata types..." -}; - -const DEVTOOLS_EXTENSION_CONFIG: {[key: string]: any } = { - mcdevrcFile: ".mcdevrc.json", - allPlaceholder: "*All*", - devToolsClasses: [ - DevToolsAdminCommands, - DevToolsStandardCommands - ], - getClassName: (type: string) => `DevTools${type}Commands` -}; - -// eslint-disable-next-line @typescript-eslint/naming-convention -let devTools_commands_types_map: {[key: string]: DevToolsCommands} = {}; - -async function init(): Promise { - devTools_commands_types_map = DevToolsCommands.getAllCommandTypes() - .reduce((prev: {}, type: string) => { - const [ dtCommand ] = DEVTOOLS_EXTENSION_CONFIG.devToolsClasses - .filter((dtClass: DevToolsCommands) => - dtClass.name.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.getClassName(type).toLowerCase()); - if(dtCommand !== undefined){ - return { - ...prev, - [type.toLowerCase()]: new dtCommand(editorInput) - }; - } - return {...prev}; - }, {}); - const mdTypes: SupportedMetadataTypes[] = await getSupportedMetadataTypes(); - Object.values(devTools_commands_types_map).forEach( - (command: DevToolsCommands) => command.setSupportedMdTypes(mdTypes) - ); -} - -function convertToCmdOptSettings(options: Array){ - return options.map(opt => { - if(typeof opt === "string"){ - return {id: opt.toLowerCase(), label: opt, detail: ""}; - } - if(typeof opt === "object"){ - return {id: opt.id.toLowerCase(), label: opt.title, detail: opt.description}; - } - }).filter(val => val !== undefined); -} - -async function getAllCredentials(): Promise<{ [key: string]: string[]; }> { - const { credentials }: { credentials: any } = JSON.parse(await readFile(DEVTOOLS_EXTENSION_CONFIG.mcdevrcFile)); - if(Object.keys(credentials).length){ - const credentialsList: {[key: string]: Array} = Object.keys(credentials) - .reduce((prev, curr) => { - // get business units - const { businessUnits } = credentials[curr]; - const buList = businessUnits ? Object.keys(businessUnits) : []; - return {...prev, [curr]: buList}; - }, {}); - return credentialsList; - } - return {}; -} - -async function handleCredentialChange(){ - const { allPlaceholder } = DEVTOOLS_EXTENSION_CONFIG; - const credentials: {[key: string]: Array} = await getAllCredentials(); - const selectedCredentialName = await editorInput.handleQuickPickSelection( - convertToCmdOptSettings([allPlaceholder, ...Object.keys(credentials)]), - COMMAND_INPUT_TITLES["credentialsName"], - false - ); - if(selectedCredentialName && selectedCredentialName.id && selectedCredentialName.label){ - if(selectedCredentialName.id === allPlaceholder.toLowerCase()){ - return allPlaceholder; - } - const selectedBusinessUnit = await editorInput.handleQuickPickSelection( - convertToCmdOptSettings([ allPlaceholder ,...credentials[selectedCredentialName.label]]), - COMMAND_INPUT_TITLES["bussinessUnit"], - false - ); - if(selectedBusinessUnit && selectedBusinessUnit.id && selectedBusinessUnit.label){ - return `${selectedCredentialName.label}/`+ - `${selectedBusinessUnit.id === allPlaceholder.toLowerCase() ? allPlaceholder : selectedBusinessUnit.label}`; - } - } -} - -function handleSupportedMetadataTypes(){ +// import DevToolsCommands from "./commands/DevToolsCommands"; +// import DevToolsAdminCommands from "./commands/DevToolsAdminCommands"; +// import DevToolsStandardCommands from "./commands/DevToolsStandardCommands"; +// // import { readFile } from "../shared/utils/file"; +// import { editorInput } from "../editor/editorInput"; +// import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; + +// interface DTStatusBarSettings { +// dtCredential: { +// command: string, +// title: string +// }, +// dtCommand: { +// command: string, +// title: string +// } +// }; + +// const DEVTOOLS_STATUS_BAR_CREDBU: DTStatusBarSettings = { +// dtCredential: { +// command: "sfmc-devtools-vscode.credbu", +// title: "DT:Credential/BU" +// }, +// dtCommand: { +// command: "sfmc-devtools-vscode.command", +// title: "DT:Command" +// } +// }; + +// const DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE: string = "sfmc-devtools-vscode.devToolsMenuActionRetrieve"; +// const DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY: string = "sfmc-devtools-vscode.devToolsMenuActionDeploy"; + +// const COMMAND_INPUT_TITLES: { [key: string]: string } = { +// credentialsName: "Select one of the credentials...", +// bussinessUnit: "Select one of the business units...", +// selectType: "Select the DevTools Command Type...", +// selectCmd: "Select the DevTools Command...", +// metaDataType: "Select one or more metadata types..." +// }; + +// const DEVTOOLS_EXTENSION_CONFIG: {[key: string]: any } = { +// mcdevrcFile: ".mcdevrc.json", +// allPlaceholder: "*All*", +// devToolsClasses: [ +// DevToolsAdminCommands, +// DevToolsStandardCommands +// ], +// getClassName: (type: string) => `DevTools${type}Commands` +// }; + +// // eslint-disable-next-line @typescript-eslint/naming-convention +// let devTools_commands_types_map: {[key: string]: DevToolsCommands} = {}; + +// async function init(): Promise { +// devTools_commands_types_map = DevToolsCommands.getAllCommandTypes() +// .reduce((prev: {}, type: string) => { +// const [ dtCommand ] = DEVTOOLS_EXTENSION_CONFIG.devToolsClasses +// .filter((dtClass: DevToolsCommands) => dtClass.name !== undefined && +// dtClass.name.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.getClassName(type).toLowerCase()); +// if(dtCommand !== undefined){ +// return { +// ...prev, +// [type.toLowerCase()]: new dtCommand(editorInput) +// }; +// } +// return {...prev}; +// }, {}); +// const mdTypes: SupportedMetadataTypes[] | undefined = await getSupportedMetadataTypes(); +// if(mdTypes){ +// Object.values(devTools_commands_types_map).forEach( +// (command: DevToolsCommands) => command.setSupportedMdTypes(mdTypes) +// ); +// } +// } + +// function convertToCmdOptSettings(options: Array){ +// return options.map((opt: string | {id: string, title: string, description: string}) => { +// if(typeof opt === "string"){ +// return {id: opt.toLowerCase(), label: opt, detail: ""}; +// } +// if(typeof opt === "object"){ +// return {id: opt.id.toLowerCase(), label: opt.title, detail: opt.description}; +// } +// return undefined; +// }).filter(val => val !== undefined); +// } + +// async function getAllCredentials(): Promise<{ [key: string]: string[]; }> { +// const { credentials }: { credentials: any } = JSON.parse(await readFile(DEVTOOLS_EXTENSION_CONFIG.mcdevrcFile)); +// if(Object.keys(credentials).length){ +// const credentialsList: {[key: string]: Array} = Object.keys(credentials) +// .reduce((prev, curr) => { +// // get business units +// const { businessUnits } = credentials[curr]; +// const buList = businessUnits ? Object.keys(businessUnits) : []; +// return {...prev, [curr]: buList}; +// }, {}); +// return credentialsList; +// } +// return {}; +// } + +// async function handleCredentialChange(){ +// const { allPlaceholder } = DEVTOOLS_EXTENSION_CONFIG; +// const credentials: {[key: string]: Array} = await getAllCredentials(); +// const selectedCredentialName = await editorInput.handleQuickPickSelection( +// convertToCmdOptSettings([allPlaceholder, ...Object.keys(credentials)]), +// COMMAND_INPUT_TITLES["credentialsName"], +// false +// ); +// if(selectedCredentialName && selectedCredentialName.id && selectedCredentialName.label){ +// if(selectedCredentialName.id === allPlaceholder.toLowerCase()){ +// return allPlaceholder; +// } +// const selectedBusinessUnit = await editorInput.handleQuickPickSelection( +// convertToCmdOptSettings([ allPlaceholder ,...credentials[selectedCredentialName.label]]), +// COMMAND_INPUT_TITLES["bussinessUnit"], +// false +// ); +// if(selectedBusinessUnit && selectedBusinessUnit.id && selectedBusinessUnit.label){ +// return `${selectedCredentialName.label}/`+ +// `${selectedBusinessUnit.id === allPlaceholder.toLowerCase() ? allPlaceholder : selectedBusinessUnit.label}`; +// } +// } +// } + +// function handleSupportedMetadataTypes(){ -} - -async function handleCommandSelection(credentialBU: string){ - const typesList: Array = DevToolsCommands.getAllCommandTypes(); - const selectedType = await editorInput.handleQuickPickSelection( - convertToCmdOptSettings(typesList), - COMMAND_INPUT_TITLES["selectType"], - false); - if(selectedType && selectedType.id){ - const commandsList = DevToolsCommands.getCommandsListByType(selectedType.id); - const selectedDTCommand = await editorInput.handleQuickPickSelection( - convertToCmdOptSettings(commandsList), - COMMAND_INPUT_TITLES["selectCmd"], - false - ); - if(selectedDTCommand && selectedDTCommand.id){ - const dtClass: DevToolsCommands = devTools_commands_types_map[selectedType.id]; - if(dtClass !== undefined){ - dtClass.run(selectedDTCommand.id, { - bu: credentialBU.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.allPlaceholder.toLowerCase() ? '"*"' : credentialBU - }); - } - } - } -} - -async function getSupportedMetadataTypes(): Promise | undefined { - const { admin }: { admin?: DevToolsCommands } = devTools_commands_types_map; - if(admin !== undefined){ - return await new Promise((resolve) => { - admin.run("etypes", { json: true }, (result: SupportedMetadataTypes[]) => { - resolve(result); - }); - }); - }else{ - // throw exception TODO - return; - } -} - -function executeExplorerMenuAction(action: string, path: string){ - // Separates the selected folder/file path by the retrieve or deploy action - const [ path1, path2 ]: Array = path.split(`/${action}/`); - // Retrieves the all the standard devtools commands - const { standard }: { standard?: DevToolsCommands} = devTools_commands_types_map; - if(standard !== undefined){ - let args: {[key: string]: string} = {}; - // The user clicked on the top folder (retrieve or deploy) - if(path1 && !path2 && path1.endsWith(`/${action}`)){ - args = {bu: `"*"`}; - } - // The user clicked on a folder/file inside the top folder (retrieve or deploy) - if(path2){ - let [ credName, bUnit, type, ...keys ]: Array = path2.split("/"); - // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder - if(type === "asset" && keys.length){ - // Gets the asset subfolder and asset key - const [ assetFolder, assetKey ] = keys; - if(!assetKey){ - // if user only selected an asset subfolder - // type will be changed to "asset-[name of the asset subfolder]" - type = `${type}-${assetFolder}`; - } - // if user selects a file inside a subfolder of asset - // the key will be the name of the file - keys = assetKey ? [ assetKey ] : []; - } - - // result 1 - credential/* - // result 2 - credential/bu - // result 3 - credential/bu "metadata" - // result 4 - credential/bu "metadata" "key" - args = { - bu: `${credName}/${bUnit ? bUnit : '*'}`, - mdtype: type ? `"${type}"` : "", - key: keys.length ? `"${keys[0].split(".")[0]}"` : "", - }; - } - standard.run(action, args); - } -} - -export const devToolsExtension = { - init, - DEVTOOLS_STATUS_BAR_CREDBU, - DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, - DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, - handleCredentialChange, - handleCommandSelection, - executeExplorerMenuAction -}; \ No newline at end of file +// } + +// async function handleCommandSelection(credentialBU: string){ +// const typesList: Array = DevToolsCommands.getAllCommandTypes(); +// const selectedType = await editorInput.handleQuickPickSelection( +// convertToCmdOptSettings(typesList), +// COMMAND_INPUT_TITLES["selectType"], +// false); +// if(selectedType && selectedType.id){ +// const commandsList = DevToolsCommands.getCommandsListByType(selectedType.id); +// const selectedDTCommand = await editorInput.handleQuickPickSelection( +// convertToCmdOptSettings(commandsList), +// COMMAND_INPUT_TITLES["selectCmd"], +// false +// ); +// if(selectedDTCommand && selectedDTCommand.id){ +// const dtClass: DevToolsCommands = devTools_commands_types_map[selectedType.id]; +// if(dtClass !== undefined){ +// dtClass.run(selectedDTCommand.id, { +// bu: credentialBU.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.allPlaceholder.toLowerCase() ? '"*"' : credentialBU +// }); +// } +// } +// } +// } + +// async function getSupportedMetadataTypes(): Promise { +// const { admin }: { admin?: DevToolsCommands } = devTools_commands_types_map; +// if(admin !== undefined){ +// return await new Promise((resolve) => { +// admin.run("etypes", { json: true }, (result: SupportedMetadataTypes[]) => { +// resolve(result); +// }); +// }); +// }else{ +// // throw exception TODO +// return; +// } +// } + +// function executeExplorerMenuAction(action: string, path: string){ +// // Separates the selected folder/file path by the retrieve or deploy action +// const [ path1, path2 ]: Array = path.split(`/${action}/`); +// // Retrieves the all the standard devtools commands +// const { standard }: { standard?: DevToolsCommands} = devTools_commands_types_map; +// if(standard !== undefined){ +// let args: {[key: string]: string} = {}; +// // The user clicked on the top folder (retrieve or deploy) +// if(path1 && !path2 && path1.endsWith(`/${action}`)){ +// args = {bu: `"*"`}; +// } +// // The user clicked on a folder/file inside the top folder (retrieve or deploy) +// if(path2){ +// let [ credName, bUnit, type, ...keys ]: Array = path2.split("/"); +// // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder +// if(type === "asset" && keys.length){ +// // Gets the asset subfolder and asset key +// const [ assetFolder, assetKey ] = keys; +// if(!assetKey){ +// // if user only selected an asset subfolder +// // type will be changed to "asset-[name of the asset subfolder]" +// type = `${type}-${assetFolder}`; +// } +// // if user selects a file inside a subfolder of asset +// // the key will be the name of the file +// keys = assetKey ? [ assetKey ] : []; +// } + +// // result 1 - credential/* +// // result 2 - credential/bu +// // result 3 - credential/bu "metadata" +// // result 4 - credential/bu "metadata" "key" +// args = { +// bu: `${credName}/${bUnit ? bUnit : '*'}`, +// mdtype: type ? `"${type}"` : "", +// key: keys.length ? `"${keys[0].split(".")[0]}"` : "", +// }; +// } +// standard.run(action, args); +// } +// } + +// export const devToolsExtension = { +// init, +// DEVTOOLS_STATUS_BAR_CREDBU, +// DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, +// DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, +// handleCredentialChange, +// handleCommandSelection, +// executeExplorerMenuAction +// }; \ No newline at end of file diff --git a/src/devtools/helpers/initHelper.ts b/src/devtools/helpers/initHelper.ts index 0db3f9b..095919c 100644 --- a/src/devtools/helpers/initHelper.ts +++ b/src/devtools/helpers/initHelper.ts @@ -1,79 +1,79 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { window, ExtensionContext } from 'vscode'; -import { activateEditorSettings } from '../../editor/editorSettings'; -import { execInWindowTerminal } from '../../shared/utils/terminal'; -import { isFileInFolder } from '../../shared/utils/file'; +// import { window, ExtensionContext } from 'vscode'; +// import { activateEditorSettings } from '../../editor/editorSettings'; +// import { execInWindowTerminal } from '../../shared/utils/terminal'; +// import { isFileInFolder } from '../../shared/utils/file'; -interface DevToolsForm { - credentialName: string, - client_id: string, - client_secret: string, - auth_url: string, - account_id: string, - gitRemoteUrl: string -}; -const INIT_DEVTOOLS_CMD: string = 'mcdev init'; -const INIT_DEVTOOLS_FILES: Array = [".mcdevrc.json", ".mcdev-auth.json"]; -const INIT_FORM_PLACEHOLDERS: { [key: string]: string } = { - credentialName: 'Type the Credential name of your Business Unit...', - client_id: 'Type the Salesforce Marketing Cloud client ID...', - client_secret: 'Type the Salesforce Marketing Cloud client secret...', - auth_url: 'Type the Salesforce Marketing Cloud Authentication Base URI...', - account_id: 'Type the Salesforce Marketing Cloud MID of the parent BU...', - gitRemoteUrl: 'Type the URL of your git remote repository...' -}; +// interface DevToolsForm { +// credentialName: string, +// client_id: string, +// client_secret: string, +// auth_url: string, +// account_id: string, +// gitRemoteUrl: string +// }; +// const INIT_DEVTOOLS_CMD: string = 'mcdev init'; +// const INIT_DEVTOOLS_FILES: Array = [".mcdevrc.json", ".mcdev-auth.json"]; +// const INIT_FORM_PLACEHOLDERS: { [key: string]: string } = { +// credentialName: 'Type the Credential name of your Business Unit...', +// client_id: 'Type the Salesforce Marketing Cloud client ID...', +// client_secret: 'Type the Salesforce Marketing Cloud client secret...', +// auth_url: 'Type the Salesforce Marketing Cloud Authentication Base URI...', +// account_id: 'Type the Salesforce Marketing Cloud MID of the parent BU...', +// gitRemoteUrl: 'Type the URL of your git remote repository...' +// }; -const MESSAGES: {[key: string]: string } = { - initDevToolsRequest: "Do you wish to initialize SFMC DevTools?", - initDevTools: "Initalizing DevTools..." -}; +// const MESSAGES: {[key: string]: string } = { +// initDevToolsRequest: "Do you wish to initialize SFMC DevTools?", +// initDevTools: "Initalizing DevTools..." +// }; -export async function initHelper(context: ExtensionContext){ - const isInitiated = await isProjectInitiated(); - if(!isInitiated){ - let response = await window.showInformationMessage(MESSAGES['initDevToolsRequest'], ...["Yes", "No"]); - if(response && response.toLowerCase() === "yes"){ - await initializeDevTools(); - activateEditorSettings(context); - } - }else{ - activateEditorSettings(context); - } -} +// export async function initHelper(context: ExtensionContext){ +// const isInitiated = await isProjectInitiated(); +// if(!isInitiated){ +// let response = await window.showInformationMessage(MESSAGES['initDevToolsRequest'], ...["Yes", "No"]); +// if(response && response.toLowerCase() === "yes"){ +// await initializeDevTools(); +// activateEditorSettings(context); +// } +// }else{ +// activateEditorSettings(context); +// } +// } -async function initializeDevTools(){ - let inputForm: DevToolsForm = { - credentialName: '', - client_id: ' ', - client_secret: '', - auth_url: '', - account_id: '', - gitRemoteUrl: '' - }; +// async function initializeDevTools(){ +// let inputForm: DevToolsForm = { +// credentialName: '', +// client_id: ' ', +// client_secret: '', +// auth_url: '', +// account_id: '', +// gitRemoteUrl: '' +// }; - for(const key in inputForm){ - do{ - inputForm = { - ...inputForm, - [key]: await window.showInputBox({ - placeHolder: INIT_FORM_PLACEHOLDERS[key], - ignoreFocusOut: true - }) - }; - }while( - inputForm[key as keyof DevToolsForm] === '' || - inputForm[key as keyof DevToolsForm] === undefined - ); - } +// for(const key in inputForm){ +// do{ +// inputForm = { +// ...inputForm, +// [key]: await window.showInputBox({ +// placeHolder: INIT_FORM_PLACEHOLDERS[key], +// ignoreFocusOut: true +// }) +// }; +// }while( +// inputForm[key as keyof DevToolsForm] === '' || +// inputForm[key as keyof DevToolsForm] === undefined +// ); +// } - const initCmd: string = Object.keys(inputForm).reduce( - (prevValue, currValue) => (prevValue += ` --y.${currValue} ${inputForm[currValue as keyof DevToolsForm]}`), - INIT_DEVTOOLS_CMD - ); - execInWindowTerminal(initCmd); -} +// const initCmd: string = Object.keys(inputForm).reduce( +// (prevValue, currValue) => (prevValue += ` --y.${currValue} ${inputForm[currValue as keyof DevToolsForm]}`), +// INIT_DEVTOOLS_CMD +// ); +// execInWindowTerminal(initCmd); +// } -async function isProjectInitiated(){ - const fileExistsList = await Promise.all(INIT_DEVTOOLS_FILES.map(async file => await isFileInFolder(file))); - return fileExistsList.every(res => res === true); -} \ No newline at end of file +// async function isProjectInitiated(){ +// const fileExistsList = await Promise.all(INIT_DEVTOOLS_FILES.map(async file => await isFileInFolder(file))); +// return fileExistsList.every(res => res === true); +// } \ No newline at end of file diff --git a/src/devtools/helpers/installHelper.ts b/src/devtools/helpers/installHelper.ts index 6e7dd2f..26726d1 100644 --- a/src/devtools/helpers/installHelper.ts +++ b/src/devtools/helpers/installHelper.ts @@ -1,72 +1,39 @@ -import { window, ViewColumn, Uri, ExtensionContext, ProgressLocation } from 'vscode'; -import * as path from 'path'; -import * as fs from 'fs'; -import { execInTerminal } from '../../shared/utils/terminal'; -import { initHelper } from './initHelper'; -import { isDevToolsInstalled } from '../prerequisites'; - -const MESSAGES: {[key: string]: string } = { - noPreRequisites: "The Pre-Requisites required to run SFMC DevTools are missing. Do you wish to install them?", - installDevToolsRequest: "Cannot find SFMC DevTools in your system. Do you want to install it?", - installDevTools: "Installing SFMC DevTools...", - installDevToolsSuccess: "SFMC DevTools has been successfully installed!" -}; - -async function noPrerequisitesHandler(context : ExtensionContext){ - let response = await window.showInformationMessage(MESSAGES['noPreRequisites'], ...["Yes", "No"]); - if(response && response.toLowerCase() === "yes"){ - const panel = window.createWebviewPanel( - 'prerequisitesPanel', - 'Prequisites Installation', - ViewColumn.One, - { // Enable scripts in the webview - enableScripts: true, //Set this to true if you want to enable Javascript. - } - ); - - const filePath = Uri.file(path.join(context.extensionPath, 'src', 'html', 'mcdev_prerequisites.html')); - let html = fs.readFileSync(filePath.fsPath, 'utf8').toString(); - - const stylePathOnDisk = Uri.file(path.join(context.extensionPath, 'dist/design-system/styles/salesforce-lightning-design-system.css')); - const styleUri = panel.webview.asWebviewUri(stylePathOnDisk); - html = html.replace("{{styleUri}}", styleUri.toString()); - - const jsPathOnDisk = Uri.file(path.join(context.extensionPath, 'src', 'js', 'mcdev_prerequisites.js')); - const jsUri = panel.webview.asWebviewUri(jsPathOnDisk); - html = html.replace("{{jsUri}}", jsUri.toString()); - - panel.webview.onDidReceiveMessage(async message => { - if(message.command === "install"){ - panel.dispose(); - await installDevTools(context); - } - }); - panel.webview.html = html; - } -} - -async function noDevToolsHandler(context: ExtensionContext){ - let response = await window.showInformationMessage(MESSAGES['installDevToolsRequest'], ...["Yes", "No"]); - if(response && response.toLowerCase() === "yes"){ - await installDevTools(context); - } -} - -async function installDevTools(context: ExtensionContext){ - await window.withProgress({ location: ProgressLocation.Notification }, async (progress) => { - progress.report({ message: MESSAGES['installDevTools']}); - await execInTerminal(`npm install -g mcdev`); - const hasDevTools: boolean = await isDevToolsInstalled(); - if(hasDevTools){ - window.showInformationMessage(MESSAGES['installDevToolsSuccess']); - initHelper(context); - }else{ - noDevToolsHandler(context); - } - }); -} - -export { - noPrerequisitesHandler, - noDevToolsHandler -}; \ No newline at end of file +// import { window, ViewColumn, Uri, ExtensionContext, ProgressLocation } from 'vscode'; +// import * as path from 'path'; +// import * as fs from 'fs'; +// import { execInTerminal } from '../../shared/utils/terminal'; +// import { initHelper } from './initHelper'; +// import { isDevToolsInstalled } from '../prerequisites'; + +// const MESSAGES: {[key: string]: string } = { +// noPreRequisites: "The Pre-Requisites required to run SFMC DevTools are missing. Do you wish to install them?", +// installDevToolsRequest: "Cannot find SFMC DevTools in your system. Do you want to install it?", +// installDevTools: "Installing SFMC DevTools...", +// installDevToolsSuccess: "SFMC DevTools has been successfully installed!" +// }; + +// async function noDevToolsHandler(context: ExtensionContext){ +// let response = await window.showInformationMessage(MESSAGES['installDevToolsRequest'], ...["Yes", "No"]); +// if(response && response.toLowerCase() === "yes"){ +// await installDevTools(context); +// } +// } + +// async function installDevTools(context: ExtensionContext){ +// await window.withProgress({ location: ProgressLocation.Notification }, async (progress) => { +// progress.report({ message: MESSAGES['installDevTools']}); +// await execInTerminal(`npm install -g mcdev`); +// const hasDevTools: boolean = await isDevToolsInstalled(); +// if(hasDevTools){ +// window.showInformationMessage(MESSAGES['installDevToolsSuccess']); +// initHelper(context); +// }else{ +// noDevToolsHandler(context); +// } +// }); +// } + +// export { +// // noPrerequisitesHandler, +// noDevToolsHandler +// }; \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts index 1389663..cb17d0d 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -1,12 +1,10 @@ import { ExtensionContext } from "vscode"; -import { initHelper } from "./helpers/initHelper"; -import { noDevToolsHandler } from "./helpers/installHelper"; import { prerequisites } from "./prerequisites"; export async function init(context: ExtensionContext){ try{ // Checks if all the prerequesites are installed. If not returns the missing prerequisite name - const { prerequisitesInstalled, missingPrerequisites} = prerequisites.arePrerequisitesInstalled(); + const { prerequisitesInstalled, missingPrerequisites } = prerequisites.arePrerequisitesInstalled(); // if user has prequisites installed if(prerequisitesInstalled){ diff --git a/src/devtools/installer.ts b/src/devtools/installer.ts new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/devtools/installer.ts @@ -0,0 +1 @@ + diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index fc2df12..e695623 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -28,13 +28,13 @@ function arePrerequisitesInstalled(): PrerequisitesInstalledReturn { async function noPrerequisitesHandler(extensionPath: string, missingPrerequisites: string[]): Promise { // checks if the one or more prerequisites are missing to show the correct message. const missingPrerequisitesMessage: string = missingPrerequisites.length === 1 ? - prerequisitesConfig.titles["onePrerequisiteMissing"].replace("{{prerequisites}}", missingPrerequisites[0]) : - prerequisitesConfig.titles["multiplePrerequisitesMissing"].replace("{{prerequisites}}", missingPrerequisites.join(" and ")); + prerequisitesConfig.messages["onePrerequisiteMissing"].replace("{{prerequisites}}", missingPrerequisites[0]) : + prerequisitesConfig.messages["multiplePrerequisitesMissing"].replace("{{prerequisites}}", missingPrerequisites.join(" and ")); - const message: string = `${missingPrerequisitesMessage} ${prerequisitesConfig.titles.askPrerequisitesToUser}`; + const message: string = `${missingPrerequisitesMessage} ${prerequisitesConfig.messages.askPrerequisitesToUser}`; // Asks if user wishes to follow the guide of how to install the prerequisites - const userResponse: string = await editorInput.handleShowInformationMessage( + const userResponse: string | undefined = await editorInput.handleShowInformationMessage( message, Object.keys(NoPrerequisitesResponseOptions).filter((v) => isNaN(Number(v))) ); @@ -50,6 +50,7 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite if(command === "install"){ return { dispose: true }; } + return { dispose: false }; } }); } diff --git a/src/editor/editorInput.ts b/src/editor/editorInput.ts index 10c5119..c4efc94 100644 --- a/src/editor/editorInput.ts +++ b/src/editor/editorInput.ts @@ -4,7 +4,7 @@ import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; async function handleQuickPickSelection( optionsList: Array, placeHolder: string, - canPickMany: boolean): Promise { + canPickMany: boolean): Promise { const selectedOption = await window.showQuickPick( optionsList, { placeHolder: placeHolder, canPickMany: canPickMany, ignoreFocusOut: true } diff --git a/src/editor/editorSettings.ts b/src/editor/editorSettings.ts index fb5c940..b3dbaa8 100644 --- a/src/editor/editorSettings.ts +++ b/src/editor/editorSettings.ts @@ -1,53 +1,53 @@ -import { commands, ExtensionContext, StatusBarAlignment, StatusBarItem, window } from "vscode"; -import { devToolsExtension } from "../devtools/extension"; - -// TODO - -export function activateEditorSettings(context: ExtensionContext): void { - createCommandStatusBar(context); - createContextMenus(context); - devToolsExtension.init(); -} - -function createCommandStatusBar( { subscriptions }: ExtensionContext): void { - - let statusBarCredBU: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); - statusBarCredBU.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.command; - statusBarCredBU.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; - statusBarCredBU.show(); - - let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 100); - statusBar.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.command; - statusBar.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.title; - statusBar.show(); - - subscriptions.push( - commands.registerCommand(statusBarCredBU.command, () => credentialBUBarHandler(statusBarCredBU)), - commands.registerCommand(statusBar.command, () => commandBarHandler(statusBarCredBU)) - ); - subscriptions.push(statusBarCredBU, statusBar); -} - -async function credentialBUBarHandler(statusBarCredBU: StatusBarItem): Promise { - const selectedCredentialBU = await devToolsExtension.handleCredentialChange(); - statusBarCredBU.text = selectedCredentialBU ? - `DT:${selectedCredentialBU}` : - devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; -} - -function commandBarHandler(statusBarCredBU: StatusBarItem){ - const { text } = statusBarCredBU; - devToolsExtension.handleCommandSelection(text === devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title ? - "" : - text.split(":")[1] - ); -} - -async function createContextMenus({ subscriptions }: ExtensionContext): Promise { - subscriptions.push( - commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, - ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("retrieve", path)), - commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, - ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("deploy", path)) - ); -} \ No newline at end of file +// import { commands, ExtensionContext, StatusBarAlignment, StatusBarItem, window } from "vscode"; +// import { devToolsExtension } from "../devtools/extension"; + +// // TODO + +// export function activateEditorSettings(context: ExtensionContext): void { +// createCommandStatusBar(context); +// createContextMenus(context); +// devToolsExtension.init(); +// } + +// function createCommandStatusBar( { subscriptions }: ExtensionContext): void { + +// let statusBarCredBU: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); +// statusBarCredBU.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.command; +// statusBarCredBU.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; +// statusBarCredBU.show(); + +// let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 100); +// statusBar.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.command; +// statusBar.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.title; +// statusBar.show(); + +// subscriptions.push( +// commands.registerCommand(statusBarCredBU.command, () => credentialBUBarHandler(statusBarCredBU)), +// commands.registerCommand(statusBar.command, () => commandBarHandler(statusBarCredBU)) +// ); +// subscriptions.push(statusBarCredBU, statusBar); +// } + +// async function credentialBUBarHandler(statusBarCredBU: StatusBarItem): Promise { +// const selectedCredentialBU = await devToolsExtension.handleCredentialChange(); +// statusBarCredBU.text = selectedCredentialBU ? +// `DT:${selectedCredentialBU}` : +// devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; +// } + +// function commandBarHandler(statusBarCredBU: StatusBarItem){ +// const { text } = statusBarCredBU; +// devToolsExtension.handleCommandSelection(text === devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title ? +// "" : +// text.split(":")[1] +// ); +// } + +// async function createContextMenus({ subscriptions }: ExtensionContext): Promise { +// subscriptions.push( +// commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, +// ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("retrieve", path)), +// commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, +// ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("deploy", path)) +// ); +// } \ No newline at end of file diff --git a/src/html/mcdev_initialize.html b/src/html/devtoolsInitialize.html similarity index 100% rename from src/html/mcdev_initialize.html rename to src/html/devtoolsInitialize.html diff --git a/src/js/mcdev_initialize.js b/src/js/devtoolsInitialize.js similarity index 100% rename from src/js/mcdev_initialize.js rename to src/js/devtoolsInitialize.js diff --git a/src/shared/utils/file.ts b/src/shared/utils/file.ts index 34e7e88..b38914a 100644 --- a/src/shared/utils/file.ts +++ b/src/shared/utils/file.ts @@ -1,15 +1,15 @@ -import { TextDocument, Uri, workspace } from 'vscode'; -import * as fs from 'fs'; +import { Uri, workspace } from 'vscode'; +import * as fs from "fs"; import * as path from 'path'; -export async function readFile(filename: string): Promise{ - const [{ uri }] = workspace.workspaceFolders; - if(Object.keys(uri).includes("path")){ - const document: TextDocument = await workspace.openTextDocument(`${uri.path}/${filename}`); - return document.getText(); - } - return ''; -} +// export async function readFile(filename: string): Promise{ +// const [{ uri }] = workspace.workspaceFolders; +// if(Object.keys(uri).includes("path")){ +// const document: TextDocument = await workspace.openTextDocument(`${uri.path}/${filename}`); +// return document.getText(); +// } +// return ''; +// } export async function isFileInFolder(filename: string): Promise { const fileArray: Array = await workspace.findFiles(filename); diff --git a/src/shared/utils/terminal.ts b/src/shared/utils/terminal.ts index 46f777b..de7dea0 100644 --- a/src/shared/utils/terminal.ts +++ b/src/shared/utils/terminal.ts @@ -1,10 +1,13 @@ import { execSync } from 'child_process'; -import { Terminal, window } from 'vscode'; +// import { Terminal, window } from 'vscode'; -const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; // TODO +// const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; // TODO export function executeSyncTerminalCommand(command: string): string { try { + console.log(execSync(command) + .toString() + .trim()); return execSync(command) .toString() .trim(); @@ -13,14 +16,14 @@ export function executeSyncTerminalCommand(command: string): string { } } -export async function execInWindowTerminal(command: string): Promise{ - const activeDevToolsTerminals: Array = window.terminals.filter(term => term.name === DEVTOOLS_TERMINAL_NAME); - const devToolsTerminal: Terminal = activeDevToolsTerminals.length ? - activeDevToolsTerminals[0] : - window.createTerminal(DEVTOOLS_TERMINAL_NAME); - devToolsTerminal.sendText(command); - devToolsTerminal.show(); -} +// export async function execInWindowTerminal(command: string): Promise{ +// const activeDevToolsTerminals: Array = window.terminals.filter(term => term.name === DEVTOOLS_TERMINAL_NAME); +// const devToolsTerminal: Terminal = activeDevToolsTerminals.length ? +// activeDevToolsTerminals[0] : +// window.createTerminal(DEVTOOLS_TERMINAL_NAME); +// devToolsTerminal.sendText(command); +// devToolsTerminal.show(); +// } diff --git a/test/__mocks__/vscode.ts b/test/__mocks__/vscode.ts new file mode 100644 index 0000000..606a1d5 --- /dev/null +++ b/test/__mocks__/vscode.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +const StatusBarAlignment = {}; + +const window = { + createStatusBarItem: jest.fn(() => ({ + show: jest.fn() + })), + showErrorMessage: jest.fn(), + showWarningMessage: jest.fn(), + createTextEditorDecorationType: jest.fn() +}; + +const workspace = { + getConfiguration: jest.fn(), + workspaceFolders: [], + onDidSaveTextDocument: jest.fn() +}; + +const Uri = { + file: (f: any) => f, + parse: jest.fn() +}; + +const commands = { + executeCommand: jest.fn() +}; + +export const vscode = { + StatusBarAlignment, + window, + workspace, + Uri, + commands +}; \ No newline at end of file diff --git a/test/__unit__/prerequisites.test.ts b/test/__unit__/prerequisites.test.ts new file mode 100644 index 0000000..436ef38 --- /dev/null +++ b/test/__unit__/prerequisites.test.ts @@ -0,0 +1,31 @@ +import { assert } from 'chai'; +import { prerequisites } from "../../src/devtools/prerequisites"; +import * as child_process from "child_process"; + +describe('Test: Prerequisites module', () => { + it('> Prerequisites should be installed', () => { + const res = prerequisites.arePrerequisitesInstalled(); + assert.isObject( + res, + "ArePrerequisitesInstalled didn't return an object." + ); + assert.hasAllKeys( + res, + ["prerequisitesInstalled", "missingPrerequisites"], + "ArePrerequisitesInstalled doesn't have prerequisitesInstalled or missingPrerequisites keys." + ); + assert.isTrue( + res.prerequisitesInstalled, + "ArePrerequisitesInstalled prerequisitesInstalled key didn't return true." + ); + assert.isEmpty( + res.missingPrerequisites, + "ArePrerequisitesInstalled missingPrerequisites key isn't empty." + ); + }); + it('> Prerequisites are not installed', () => { + jest.spyOn(child_process, "execSync").mockImplementation(() => "success"); + const res = prerequisites.arePrerequisitesInstalled(); + console.log(res); + }); +}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 949378c..36a4473 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,21 +1,19 @@ { "compilerOptions": { "module": "commonjs", - "target": "es6", - "outDir": "out", - "lib": ["es6"], - "sourceMap": true, - "rootDir": "src", - "strict": true, /* enable all strict type-checking options */ - "strictNullChecks": false, - "resolveJsonModule": true - /* Additional Checks */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ + "target": "es2017", + "lib": ["es2017", "dom"], + "outDir": "dist", + "strict": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "strictNullChecks": true, + "noImplicitReturns": true, + "noImplicitAny": true, + "strictFunctionTypes": true, + "noUnusedLocals": true, + "noUnusedParameters": true }, - "exclude": [ - "node_modules", - ".vscode-test" - ] + "include": ["src/**/*.ts"], + "exclude": ["node_modules", ".vscode"] } \ No newline at end of file diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 0000000..6c62052 --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "out" + }, + "include": ["test/**/*.ts"], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 74cf868..68d8c4a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -6,12 +6,12 @@ const path = require('path'); /**@type {import('webpack').Configuration}*/ const config = { - target: 'node', - mode: 'none', - entry: './src/extension.ts', + mode: "none", + target: "node", + entry: "./src/extension.ts", output: { path: path.resolve(__dirname, 'dist'), - filename: 'extension.js', + filename: 'extension.bundle.js', libraryTarget: 'commonjs2' }, devtool: 'nosources-source-map', @@ -34,6 +34,6 @@ const config = { } ] }, - plugins: [] }; + module.exports = config; \ No newline at end of file From a2777ce100804d422d729dfb1a467a7d69544854 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Thu, 1 Jun 2023 14:07:26 +0200 Subject: [PATCH 05/24] added testing to pre-requisites module --- jest.config.js | 4 +- package-lock.json | 2566 ++------------------------- package.json | 16 +- src/editor/editorInput.ts | 2 +- src/shared/utils/terminal.ts | 3 - test/__mocks__/vscode.ts | 25 +- test/__unit__/prerequisites.spec.ts | 97 + test/__unit__/prerequisites.test.ts | 31 - tsconfig.json | 4 +- tsconfig.test.json | 8 - webpack.config.js | 1 - 11 files changed, 302 insertions(+), 2455 deletions(-) create mode 100644 test/__unit__/prerequisites.spec.ts delete mode 100644 test/__unit__/prerequisites.test.ts delete mode 100644 tsconfig.test.json diff --git a/jest.config.js b/jest.config.js index 775899e..5ee9ca9 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,4 @@ module.exports = { preset: "ts-jest", - testEnvironment: "node", - modulePathIgnorePatterns: ["/dist", "/test"], - testMatch: ["/out/test/**/*.test.js"] + testEnvironment: "node" }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 61b1242..4c9c45f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,27 +12,18 @@ }, "devDependencies": { "@types/chai": "^4.3.5", - "@types/glob": "^7.1.3", - "@types/jest": "^29.5.1", - "@types/node": "14.x", - "@types/sinon": "^10.0.15", + "@types/jest": "^29.5.2", + "@types/node": "^20.2.5", "@types/vscode": "^1.60.0", "@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/parser": "^4.26.0", "@vscode/test-electron": "^2.3.2", "chai": "^4.3.7", - "copy-webpack-plugin": "^11.0.0", "eslint": "^7.27.0", - "glob": "^7.1.7", "jest": "^29.5.0", - "jest-environment-node": "^29.5.0", - "mocha": "^10.2.0", - "nyc": "^15.1.0", - "sinon": "^15.1.0", "ts-jest": "^29.1.0", "ts-loader": "^9.2.2", - "ts-node": "^10.9.1", - "typescript": "^4.3.2", + "typescript": "^5.0.4", "webpack": "^5.38.1", "webpack-cli": "^4.7.0" }, @@ -671,6 +662,8 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -683,6 +676,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1303,32 +1298,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -1342,25 +1311,33 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/babel__core": { "version": "7.20.1", @@ -1435,16 +1412,6 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -1479,9 +1446,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "version": "29.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", + "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -1494,16 +1461,10 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, "node_modules/@types/node": { - "version": "14.18.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", - "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", "dev": true }, "node_modules/@types/prettier": { @@ -1512,21 +1473,6 @@ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, - "node_modules/@types/sinon": { - "version": "10.0.15", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", - "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", - "dev": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", - "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", - "dev": true - }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -1946,6 +1892,8 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.4.0" } @@ -1962,19 +1910,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1991,45 +1926,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -2112,29 +2008,13 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/argparse": { "version": "1.0.10", @@ -2294,15 +2174,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2325,12 +2196,6 @@ "node": ">=8" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, "node_modules/browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", @@ -2386,21 +2251,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2490,45 +2340,6 @@ "node": "*" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -2559,26 +2370,6 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -2639,12 +2430,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2657,61 +2442,6 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2722,7 +2452,9 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -2755,18 +2487,6 @@ } } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -2800,21 +2520,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2824,15 +2529,6 @@ "node": ">=8" } }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", @@ -2942,12 +2638,6 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -3361,48 +3051,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -3422,39 +3070,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3555,18 +3170,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -3635,40 +3238,6 @@ "node": ">=8" } }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -3770,15 +3339,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3810,18 +3370,6 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -3882,15 +3430,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -3915,33 +3454,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3972,59 +3484,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -4852,12 +4311,6 @@ "setimmediate": "^1.0.5" } }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -4922,33 +4375,6 @@ "node": ">=6.11.5" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -4967,22 +4393,6 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -5110,452 +4520,85 @@ "node": "*" } }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "path-key": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "wrappy": "1" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": 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", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { "deep-is": "^0.1.3", @@ -5584,70 +4627,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, "node_modules/pako": { @@ -5719,21 +4705,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -5904,18 +4875,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -6013,18 +4972,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/rechoir": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", @@ -6049,18 +4996,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6079,12 +5014,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -6195,59 +5124,6 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -6290,12 +5166,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -6341,33 +5211,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/sinon": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", - "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.2.0", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.4", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -6428,23 +5271,6 @@ "source-map": "^0.6.0" } }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6826,6 +5652,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -6869,6 +5697,8 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, + "optional": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6881,6 +5711,8 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.3.1" } @@ -6939,26 +5771,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" } }, "node_modules/update-browserslist-db": { @@ -7002,15 +5825,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -7021,7 +5835,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.1.0", @@ -7238,12 +6054,6 @@ "node": ">= 8" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -7259,12 +6069,6 @@ "node": ">=0.10.0" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -7288,18 +6092,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -7315,53 +6107,13 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -7861,6 +6613,8 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -7870,6 +6624,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -8371,34 +7127,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -8409,25 +7137,33 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "@types/babel__core": { "version": "7.20.1", @@ -8502,16 +7238,6 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -8546,9 +7272,9 @@ } }, "@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "version": "29.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", + "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", "dev": true, "requires": { "expect": "^29.0.0", @@ -8561,16 +7287,10 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, "@types/node": { - "version": "14.18.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.37.tgz", - "integrity": "sha512-7GgtHCs/QZrBrDzgIJnQtuSvhFSwhyYSI2uafSwZoNt1iOGhEN5fwNrQMjtONyHm9+/LoA4453jH0CMYcr06Pg==", + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", "dev": true }, "@types/prettier": { @@ -8579,21 +7299,6 @@ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "dev": true }, - "@types/sinon": { - "version": "10.0.15", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", - "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", - "dev": true, - "requires": { - "@types/sinonjs__fake-timers": "*" - } - }, - "@types/sinonjs__fake-timers": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", - "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", - "dev": true - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -8914,66 +7619,29 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "optional": true, + "peer": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -9031,26 +7699,13 @@ "picomatch": "^2.0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "argparse": { "version": "1.0.10", @@ -9176,12 +7831,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -9201,12 +7850,6 @@ "fill-range": "^7.0.1" } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, "browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", @@ -9243,18 +7886,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - } - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -9310,33 +7941,6 @@ "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -9355,23 +7959,6 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -9422,12 +8009,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -9440,41 +8021,6 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "requires": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "dependencies": { - "globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -9485,7 +8031,9 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "cross-spawn": { "version": "7.0.3", @@ -9507,12 +8055,6 @@ "ms": "2.1.2" } }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -9540,27 +8082,12 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, - "default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, "diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", @@ -9643,12 +8170,6 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -9965,33 +8486,6 @@ "to-regex-range": "^5.0.1" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -10008,22 +8502,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -10093,15 +8571,6 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -10152,30 +8621,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -10247,12 +8692,6 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -10281,15 +8720,6 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, "is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -10332,12 +8762,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -10353,24 +8777,6 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -10395,49 +8801,6 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - } - }, "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -11080,12 +9443,6 @@ "setimmediate": "^1.0.5" } }, - "just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -11135,27 +9492,6 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -11174,16 +9510,6 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, "loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -11279,132 +9605,11 @@ }, "minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" } }, "ms": { @@ -11413,12 +9618,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -11431,45 +9630,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, "node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", @@ -11491,146 +9657,6 @@ "path-key": "^3.0.0" } }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -11672,53 +9698,12 @@ "p-try": "^2.0.0" } }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -11770,23 +9755,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - } - } - }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -11905,15 +9873,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -11978,15 +9937,6 @@ "util-deprecate": "~1.0.1" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, "rechoir": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", @@ -12002,15 +9952,6 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -12023,12 +9964,6 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -12099,47 +10034,6 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "schema-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -12175,12 +10069,6 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -12217,28 +10105,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "sinon": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", - "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.2.0", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.4", - "supports-color": "^7.2.0" - }, - "dependencies": { - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - } - } - }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -12284,20 +10150,6 @@ "source-map": "^0.6.0" } }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12557,6 +10409,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -12577,13 +10431,17 @@ "version": "8.8.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -12623,19 +10481,10 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, "update-browserslist-db": { @@ -12663,12 +10512,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -12679,7 +10522,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.1.0", @@ -12822,12 +10667,6 @@ "isexe": "^2.0.0" } }, - "which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -12840,12 +10679,6 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -12863,18 +10696,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -12887,44 +10708,13 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "yocto-queue": { "version": "0.1.0", diff --git a/package.json b/package.json index 64f8ebe..c0fb637 100644 --- a/package.json +++ b/package.json @@ -51,33 +51,23 @@ "watch": "webpack --watch", "package": "webpack --mode production --devtool hidden-source-map", "lint": "eslint src --ext ts", - "pretest": "tsc -p tsconfig.test.json", "test": "jest --coverage", "coverage": "nyc npm run test" }, "devDependencies": { "@types/chai": "^4.3.5", - "@types/glob": "^7.1.3", - "@types/jest": "^29.5.1", - "@types/node": "14.x", - "@types/sinon": "^10.0.15", + "@types/jest": "^29.5.2", + "@types/node": "^20.2.5", "@types/vscode": "^1.60.0", "@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/parser": "^4.26.0", "@vscode/test-electron": "^2.3.2", "chai": "^4.3.7", - "copy-webpack-plugin": "^11.0.0", "eslint": "^7.27.0", - "glob": "^7.1.7", "jest": "^29.5.0", - "jest-environment-node": "^29.5.0", - "mocha": "^10.2.0", - "nyc": "^15.1.0", - "sinon": "^15.1.0", "ts-jest": "^29.1.0", "ts-loader": "^9.2.2", - "ts-node": "^10.9.1", - "typescript": "^4.3.2", + "typescript": "^5.0.4", "webpack": "^5.38.1", "webpack-cli": "^4.7.0" }, diff --git a/src/editor/editorInput.ts b/src/editor/editorInput.ts index c4efc94..33b85b2 100644 --- a/src/editor/editorInput.ts +++ b/src/editor/editorInput.ts @@ -12,7 +12,7 @@ async function handleQuickPickSelection( return selectedOption; } async function handleShowInformationMessage(message: string, actions: string[]){ - const response = await window.showInformationMessage(message, ...actions); + const response: string | undefined = await window.showInformationMessage(message, ...actions); return response; } diff --git a/src/shared/utils/terminal.ts b/src/shared/utils/terminal.ts index de7dea0..00ca013 100644 --- a/src/shared/utils/terminal.ts +++ b/src/shared/utils/terminal.ts @@ -5,9 +5,6 @@ import { execSync } from 'child_process'; export function executeSyncTerminalCommand(command: string): string { try { - console.log(execSync(command) - .toString() - .trim()); return execSync(command) .toString() .trim(); diff --git a/test/__mocks__/vscode.ts b/test/__mocks__/vscode.ts index 606a1d5..e35e921 100644 --- a/test/__mocks__/vscode.ts +++ b/test/__mocks__/vscode.ts @@ -1,14 +1,28 @@ /* eslint-disable @typescript-eslint/naming-convention */ +enum ViewColumn { + One = 1 +} + const StatusBarAlignment = {}; const window = { createStatusBarItem: jest.fn(() => ({ show: jest.fn() })), - showErrorMessage: jest.fn(), - showWarningMessage: jest.fn(), - createTextEditorDecorationType: jest.fn() + showInformationMessage: jest.fn((_: string, ...items: string[]) => { + return items[0]; + }), + createWebviewPanel: jest.fn(() => { + return { + webview: { + html: "", + asWebviewUri: ((uri: any) => uri), + onDidReceiveMessage: () => {} + }, + dispose: () => {} + }; + }) }; const workspace = { @@ -26,10 +40,11 @@ const commands = { executeCommand: jest.fn() }; -export const vscode = { +export { StatusBarAlignment, window, workspace, Uri, - commands + commands, + ViewColumn }; \ No newline at end of file diff --git a/test/__unit__/prerequisites.spec.ts b/test/__unit__/prerequisites.spec.ts new file mode 100644 index 0000000..b99e81b --- /dev/null +++ b/test/__unit__/prerequisites.spec.ts @@ -0,0 +1,97 @@ +import { assert } from 'chai'; +import { prerequisites } from "../../src/devtools/prerequisites"; +import * as child_process from 'child_process'; +import * as fs from "fs"; +import { window } from '../__mocks__/vscode'; + +jest.mock("child_process"); +jest.mock("fs"); +jest.mock("../__mocks__/vscode"); + +describe('Test: Pre-requisites module', () => { + + afterAll(() => { + jest.restoreAllMocks(); + }); + + it('> ArePrerequisitesInstalled method: Pre-requisites should be installed', () => { + + jest.spyOn(child_process, "execSync").mockImplementation(() => "v1.1.1"); + + const res = prerequisites.arePrerequisitesInstalled(); + + expect(child_process.execSync).toHaveBeenCalled(); + expect(child_process.execSync).toHaveReturnedWith("v1.1.1"); + + assert.isObject( + res, + "ArePrerequisitesInstalled method didn't return an object." + ); + assert.hasAllKeys( + res, + ["prerequisitesInstalled", "missingPrerequisites"], + "ArePrerequisitesInstalled method didn't return the object keys." + ); + assert.isTrue( + res.prerequisitesInstalled, + "ArePrerequisitesInstalled prerequisites Installed key didn't return true." + ); + assert.isEmpty( + res.missingPrerequisites, + "ArePrerequisitesInstalled missingPrerequisites key isn't empty." + ); + }); + + it('> ArePrerequisitesInstalled method: Pre-requisites are not installed', async () => { + + jest.spyOn(child_process, "execSync").mockImplementation(() => { + throw new Error("The package is not installed"); + }); + + const res = prerequisites.arePrerequisitesInstalled(); + + expect(child_process.execSync).toHaveBeenCalled(); + expect(child_process.execSync).toThrowError(); + + assert.isObject( + res, + "ArePrerequisitesInstalled didn't return an object." + ); + assert.hasAllKeys( + res, + ["prerequisitesInstalled", "missingPrerequisites"], + "ArePrerequisitesInstalled method didn't return the object keys." + ); + assert.isFalse( + res.prerequisitesInstalled, + "ArePrerequisitesInstalled prerequisitesInstalled key didn't return false." + ); + assert.isNotEmpty( + res.missingPrerequisites, + "ArePrerequisitesInstalled missingPrerequisites key is empty." + ); + assert.deepEqual( + res.missingPrerequisites, + ['node', 'git'], + "ArePrerequisitesInstalled missingPrerequisites key is empty." + ); + }); + + it('> noPrerequisitesHandler method: only one missing pre-requisite', async () => { + + jest.spyOn(fs, "readFileSync").mockImplementation(() => "html_content_file"); + + const extensionPath: string = "path/to/extension"; + const missingPrerequisites: string[] = ['node']; + + await prerequisites.noPrerequisitesHandler(extensionPath, missingPrerequisites); + + expect(fs.readFileSync).toHaveBeenCalled(); + expect(fs.readFileSync).toHaveReturnedWith("html_content_file"); + + expect(window.showInformationMessage).toHaveBeenCalled(); + expect(window.showInformationMessage).toHaveReturnedWith("Yes"); + + expect(window.createWebviewPanel).toHaveBeenCalled(); + }); +}); \ No newline at end of file diff --git a/test/__unit__/prerequisites.test.ts b/test/__unit__/prerequisites.test.ts deleted file mode 100644 index 436ef38..0000000 --- a/test/__unit__/prerequisites.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { assert } from 'chai'; -import { prerequisites } from "../../src/devtools/prerequisites"; -import * as child_process from "child_process"; - -describe('Test: Prerequisites module', () => { - it('> Prerequisites should be installed', () => { - const res = prerequisites.arePrerequisitesInstalled(); - assert.isObject( - res, - "ArePrerequisitesInstalled didn't return an object." - ); - assert.hasAllKeys( - res, - ["prerequisitesInstalled", "missingPrerequisites"], - "ArePrerequisitesInstalled doesn't have prerequisitesInstalled or missingPrerequisites keys." - ); - assert.isTrue( - res.prerequisitesInstalled, - "ArePrerequisitesInstalled prerequisitesInstalled key didn't return true." - ); - assert.isEmpty( - res.missingPrerequisites, - "ArePrerequisitesInstalled missingPrerequisites key isn't empty." - ); - }); - it('> Prerequisites are not installed', () => { - jest.spyOn(child_process, "execSync").mockImplementation(() => "success"); - const res = prerequisites.arePrerequisitesInstalled(); - console.log(res); - }); -}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 36a4473..ce35ba0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { "module": "commonjs", - "target": "es2017", - "lib": ["es2017", "dom"], + "target": "ES2020", + "lib": ["ES2020", "dom"], "outDir": "dist", "strict": true, "esModuleInterop": true, diff --git a/tsconfig.test.json b/tsconfig.test.json deleted file mode 100644 index 6c62052..0000000 --- a/tsconfig.test.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "out" - }, - "include": ["test/**/*.ts"], - "exclude": ["node_modules"] -} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 68d8c4a..15e9f7f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,7 +4,6 @@ const path = require('path'); -/**@type {import('webpack').Configuration}*/ const config = { mode: "none", target: "node", From b61581ebd1c40afa40989447fa484eb66b0a66fe Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Fri, 2 Jun 2023 12:20:29 +0200 Subject: [PATCH 06/24] added status bar options --- package.json | 3 +- src/config/containers.config.ts | 16 ++++++ src/config/main.config.ts | 5 ++ src/devtools/containers.ts | 56 +++++++++++++++++++ src/devtools/init.ts | 40 ++++++------- src/devtools/{extension.ts => main.ts} | 16 +++++- src/devtools/prerequisites.ts | 6 +- src/editor/commands.ts | 17 ++++++ .../{editorSettings.ts => containers.ts} | 25 ++++++++- src/editor/context.ts | 11 ++++ src/editor/{editorInput.ts => input.ts} | 1 + src/editor/{editorWebview.ts => webview.ts} | 0 src/editor/workspace.ts | 10 ++++ src/extension.ts | 4 +- src/shared/utils/file.ts | 5 -- test/__unit__/prerequisites.spec.ts | 8 +-- 16 files changed, 185 insertions(+), 38 deletions(-) create mode 100644 src/config/containers.config.ts create mode 100644 src/config/main.config.ts create mode 100644 src/devtools/containers.ts rename src/devtools/{extension.ts => main.ts} (94%) create mode 100644 src/editor/commands.ts rename src/editor/{editorSettings.ts => containers.ts} (79%) create mode 100644 src/editor/context.ts rename src/editor/{editorInput.ts => input.ts} (99%) rename src/editor/{editorWebview.ts => webview.ts} (100%) create mode 100644 src/editor/workspace.ts diff --git a/package.json b/package.json index c0fb637..61e4362 100644 --- a/package.json +++ b/package.json @@ -51,8 +51,7 @@ "watch": "webpack --watch", "package": "webpack --mode production --devtool hidden-source-map", "lint": "eslint src --ext ts", - "test": "jest --coverage", - "coverage": "nyc npm run test" + "test": "jest --coverage" }, "devDependencies": { "@types/chai": "^4.3.5", diff --git a/src/config/containers.config.ts b/src/config/containers.config.ts new file mode 100644 index 0000000..26f252e --- /dev/null +++ b/src/config/containers.config.ts @@ -0,0 +1,16 @@ +export const containersConfig: { + + statusBarDTCredentialBUTitle: string, + statusBarDTCredentialBUCommand: string, + statusBarDTCommandTitle: string, + statusBarDTCommandCommand: string, + statusBarDTInitializeTitle: string, + statusBarDTInitializeCommand: string +} = { + statusBarDTCredentialBUTitle: "DT:Credential/BU", + statusBarDTCredentialBUCommand: "sfmc-devtools-vscext.dtCredentialBU", + statusBarDTCommandTitle: "DT: Command", + statusBarDTCommandCommand: "sfmc-devtools-vscext.dtCommand", + statusBarDTInitializeTitle: "DT: Initialize", + statusBarDTInitializeCommand: "sfmc-devtools-vscext.dtInitialize" +}; \ No newline at end of file diff --git a/src/config/main.config.ts b/src/config/main.config.ts new file mode 100644 index 0000000..ee51394 --- /dev/null +++ b/src/config/main.config.ts @@ -0,0 +1,5 @@ +export const mainConfig: { + requiredFiles: string[] +} = { + requiredFiles: [".mcdevrc.json", ".mcdev-auth.json"] +}; \ No newline at end of file diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts new file mode 100644 index 0000000..eb40431 --- /dev/null +++ b/src/devtools/containers.ts @@ -0,0 +1,56 @@ +import { ExtensionContext, editorContext } from "../editor/context"; +import { StatusBarItem, editorContainers } from "../editor/containers"; +import { editorCommands } from "../editor/commands"; +import { containersConfig } from "../config/containers.config"; +import { devtoolsMain } from "./main"; + +async function activate(){ + + const { subscriptions }: ExtensionContext = editorContext.get(); + // Check which status bar should be displayed + // if .mcdevrc.json AND .mcdev-auth.json in folder then DT:Credentials && DT:Command + // else DT: Initialize + const isDevtoolsProject: boolean = await devtoolsMain.isADevToolsProject(); + let statusBarContainer: StatusBarItem | StatusBarItem[]; + let statusBarCommand: string | string[]; + if(isDevtoolsProject){ + // create status bar with DT:Credentials and DT:Command + statusBarContainer = editorContainers.displayStatusBarItem( + [ + editorContainers.createStatusBarItem( + containersConfig.statusBarDTCredentialBUCommand, + containersConfig.statusBarDTCredentialBUTitle + ), + editorContainers.createStatusBarItem( + containersConfig.statusBarDTCommandCommand, + containersConfig.statusBarDTCommandTitle + ) + ] + ); + statusBarCommand = [ + containersConfig.statusBarDTCredentialBUCommand, + containersConfig.statusBarDTCommandCommand + ]; + }else{ + // create status bar with DT: Initialize + statusBarContainer = editorContainers.displayStatusBarItem( + editorContainers.createStatusBarItem( + containersConfig.statusBarDTInitializeCommand, + containersConfig.statusBarDTInitializeTitle + ) + ); + statusBarCommand = containersConfig.statusBarDTInitializeCommand; + } + // adds the Status Bar Items to be displayed + subscriptions.push(...[statusBarContainer].flat()); + + // Register the commands + [statusBarCommand].flat().forEach(command => editorCommands.registerCommand({ + command, + callbackAction: () => {} + })); +} + +export const devtoolsContainers = { + activate +}; \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts index cb17d0d..fcf817d 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -1,26 +1,26 @@ -import { ExtensionContext } from "vscode"; -import { prerequisites } from "./prerequisites"; +import { devtoolsContainers } from "./containers"; -export async function init(context: ExtensionContext){ +export async function init(){ try{ - // Checks if all the prerequesites are installed. If not returns the missing prerequisite name - const { prerequisitesInstalled, missingPrerequisites } = prerequisites.arePrerequisitesInstalled(); + devtoolsContainers.activate(); + // // Checks if all the prerequesites are installed. If not returns the missing prerequisite name + // const { prerequisitesInstalled, missingPrerequisites } = prerequisites.arePrerequisitesInstalled(); - // if user has prequisites installed - if(prerequisitesInstalled){ - // const hasDevTools = await prerequisites.isDevToolsInstalled(); - // if(hasDevTools){ - // // TODO - check if project is already initiated - // // initialize devtools - // initHelper(context); - // }else{ - // // install devtools - // noDevToolsHandler(context); - // } - }else{ - // show prequisites installation page - prerequisites.noPrerequisitesHandler(context.extensionPath, missingPrerequisites); - } + // // if user has prequisites installed + // if(prerequisitesInstalled){ + // // const hasDevTools = await prerequisites.isDevToolsInstalled(); + // // if(hasDevTools){ + // // // TODO - check if project is already initiated + // // // initialize devtools + // // initHelper(context); + // // }else{ + // // // install devtools + // // noDevToolsHandler(context); + // // } + // }else{ + // // show prequisites installation page + // prerequisites.noPrerequisitesHandler(context.extensionPath, missingPrerequisites); + // } }catch(exception){ console.error(exception); // TODO } diff --git a/src/devtools/extension.ts b/src/devtools/main.ts similarity index 94% rename from src/devtools/extension.ts rename to src/devtools/main.ts index 752d970..20e2fae 100644 --- a/src/devtools/extension.ts +++ b/src/devtools/main.ts @@ -4,6 +4,8 @@ // // import { readFile } from "../shared/utils/file"; // import { editorInput } from "../editor/editorInput"; // import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; +import { mainConfig } from "../config/main.config"; +import { editorWorkspace } from "../editor/workspace"; // interface DTStatusBarSettings { // dtCredential: { @@ -208,7 +210,7 @@ // } // } -// export const devToolsExtension = { +// export const devtoolsExtension = { // init, // DEVTOOLS_STATUS_BAR_CREDBU, // DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, @@ -216,4 +218,14 @@ // handleCredentialChange, // handleCommandSelection, // executeExplorerMenuAction -// }; \ No newline at end of file +// }; + +async function isADevToolsProject(): Promise { + const findMcdevFiles: boolean[] = await Promise.all(mainConfig.requiredFiles + .map(async(filename: string) => editorWorkspace.isFileInFolder(filename))); + return findMcdevFiles.every((result: boolean) => result === true); +} + +export const devtoolsMain = { + isADevToolsProject +}; \ No newline at end of file diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index e695623..00b69db 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -1,7 +1,7 @@ import { prerequisitesConfig, NoPrerequisitesResponseOptions } from "../config/prerequisites.config"; import { executeSyncTerminalCommand } from "../shared/utils/terminal"; -import { editorInput } from "../editor/editorInput"; -import { editorWebview } from "../editor/editorWebview"; +import { editorInput } from "../editor/input"; +import { editorWebview } from "../editor/webview"; type PrerequisitesInstalledReturn = { prerequisitesInstalled: boolean, @@ -56,7 +56,7 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite } } -export const prerequisites = { +export const devtoolsPrerequisites = { arePrerequisitesInstalled, noPrerequisitesHandler }; \ No newline at end of file diff --git a/src/editor/commands.ts b/src/editor/commands.ts new file mode 100644 index 0000000..d976d65 --- /dev/null +++ b/src/editor/commands.ts @@ -0,0 +1,17 @@ +import { commands } from "vscode"; + +interface CommandRegister { + command: string, + callbackAction: () => void +} +function registerCommand(register: CommandRegister | CommandRegister[]): void { + [register] + .flat() + .forEach( + (registry) => commands.registerCommand(registry.command, registry.callbackAction) + ); +} + +export const editorCommands = { + registerCommand +}; \ No newline at end of file diff --git a/src/editor/editorSettings.ts b/src/editor/containers.ts similarity index 79% rename from src/editor/editorSettings.ts rename to src/editor/containers.ts index b3dbaa8..b102e65 100644 --- a/src/editor/editorSettings.ts +++ b/src/editor/containers.ts @@ -1,6 +1,8 @@ // import { commands, ExtensionContext, StatusBarAlignment, StatusBarItem, window } from "vscode"; // import { devToolsExtension } from "../devtools/extension"; +import { window, StatusBarItem, StatusBarAlignment } from "vscode"; + // // TODO // export function activateEditorSettings(context: ExtensionContext): void { @@ -50,4 +52,25 @@ // commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, // ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("deploy", path)) // ); -// } \ No newline at end of file +// } + +function createStatusBarItem(command: string, title: string): StatusBarItem { + let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); + statusBar.command = command; + statusBar.text = title; + return statusBar; +} + +function displayStatusBarItem(statusBar: StatusBarItem | StatusBarItem[]): StatusBarItem | StatusBarItem[] { + [statusBar] + .flat() + .forEach((sbi: StatusBarItem) => sbi.show()); + return statusBar; +} + +const editorContainers = { + createStatusBarItem, + displayStatusBarItem +}; + +export { StatusBarItem, editorContainers }; \ No newline at end of file diff --git a/src/editor/context.ts b/src/editor/context.ts new file mode 100644 index 0000000..75c653d --- /dev/null +++ b/src/editor/context.ts @@ -0,0 +1,11 @@ +import { ExtensionContext } from "vscode"; + +type EditorContext = { set: (context: ExtensionContext) => void, get: () => ExtensionContext }; + +let contextInstance: ExtensionContext; +const editorContext: EditorContext = { + set: (context: ExtensionContext) => contextInstance = context, + get: () => contextInstance +}; + +export { ExtensionContext, editorContext }; \ No newline at end of file diff --git a/src/editor/editorInput.ts b/src/editor/input.ts similarity index 99% rename from src/editor/editorInput.ts rename to src/editor/input.ts index 33b85b2..1038d27 100644 --- a/src/editor/editorInput.ts +++ b/src/editor/input.ts @@ -11,6 +11,7 @@ async function handleQuickPickSelection( ); return selectedOption; } + async function handleShowInformationMessage(message: string, actions: string[]){ const response: string | undefined = await window.showInformationMessage(message, ...actions); return response; diff --git a/src/editor/editorWebview.ts b/src/editor/webview.ts similarity index 100% rename from src/editor/editorWebview.ts rename to src/editor/webview.ts diff --git a/src/editor/workspace.ts b/src/editor/workspace.ts new file mode 100644 index 0000000..c06da1e --- /dev/null +++ b/src/editor/workspace.ts @@ -0,0 +1,10 @@ +import { workspace, Uri } from "vscode"; + +async function isFileInFolder(filename: string): Promise { + const fileArray: Uri[] = await workspace.findFiles(filename); + return fileArray.length > 0; +} + +export const editorWorkspace = { + isFileInFolder +}; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 267e462..2ff8014 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,8 +1,10 @@ import { ExtensionContext } from 'vscode'; +import { editorContext } from './editor/context'; import { init } from './devtools/init'; export function activate(context: ExtensionContext) { - init(context); + editorContext.set(context); + init(); } // this method is called when your extension is deactivated diff --git a/src/shared/utils/file.ts b/src/shared/utils/file.ts index b38914a..15f0858 100644 --- a/src/shared/utils/file.ts +++ b/src/shared/utils/file.ts @@ -11,11 +11,6 @@ import * as path from 'path'; // return ''; // } -export async function isFileInFolder(filename: string): Promise { - const fileArray: Array = await workspace.findFiles(filename); - return fileArray.length > 0; -} - function readFileSync(path: string): string { try{ return fs.readFileSync(path, "utf-8"); diff --git a/test/__unit__/prerequisites.spec.ts b/test/__unit__/prerequisites.spec.ts index b99e81b..2757d02 100644 --- a/test/__unit__/prerequisites.spec.ts +++ b/test/__unit__/prerequisites.spec.ts @@ -1,5 +1,5 @@ import { assert } from 'chai'; -import { prerequisites } from "../../src/devtools/prerequisites"; +import { devtoolsPrerequisites } from "../../src/devtools/prerequisites"; import * as child_process from 'child_process'; import * as fs from "fs"; import { window } from '../__mocks__/vscode'; @@ -18,7 +18,7 @@ describe('Test: Pre-requisites module', () => { jest.spyOn(child_process, "execSync").mockImplementation(() => "v1.1.1"); - const res = prerequisites.arePrerequisitesInstalled(); + const res = devtoolsPrerequisites.arePrerequisitesInstalled(); expect(child_process.execSync).toHaveBeenCalled(); expect(child_process.execSync).toHaveReturnedWith("v1.1.1"); @@ -48,7 +48,7 @@ describe('Test: Pre-requisites module', () => { throw new Error("The package is not installed"); }); - const res = prerequisites.arePrerequisitesInstalled(); + const res = devtoolsPrerequisites.arePrerequisitesInstalled(); expect(child_process.execSync).toHaveBeenCalled(); expect(child_process.execSync).toThrowError(); @@ -84,7 +84,7 @@ describe('Test: Pre-requisites module', () => { const extensionPath: string = "path/to/extension"; const missingPrerequisites: string[] = ['node']; - await prerequisites.noPrerequisitesHandler(extensionPath, missingPrerequisites); + await devtoolsPrerequisites.noPrerequisitesHandler(extensionPath, missingPrerequisites); expect(fs.readFileSync).toHaveBeenCalled(); expect(fs.readFileSync).toHaveReturnedWith("html_content_file"); From ec16833bf96c91b041cab13ed1052a25aa564f05 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Fri, 2 Jun 2023 14:22:12 +0200 Subject: [PATCH 07/24] added logger --- src/config/containers.config.ts | 24 +++++------ src/devtools/commands/DevToolsCommands.ts | 4 +- .../commands/DevToolsStandardCommands.ts | 2 +- src/devtools/containers.ts | 41 +++++++++++-------- src/devtools/init.ts | 35 ++++++++-------- src/devtools/main.ts | 10 +++++ src/devtools/prerequisites.ts | 9 +++- src/editor/output.ts | 30 ++++++++++++++ src/extension.ts | 7 +++- src/shared/utils/lib.ts | 30 +++++++++++++- 10 files changed, 135 insertions(+), 57 deletions(-) create mode 100644 src/editor/output.ts diff --git a/src/config/containers.config.ts b/src/config/containers.config.ts index 26f252e..e041bde 100644 --- a/src/config/containers.config.ts +++ b/src/config/containers.config.ts @@ -1,16 +1,16 @@ export const containersConfig: { - statusBarDTCredentialBUTitle: string, - statusBarDTCredentialBUCommand: string, - statusBarDTCommandTitle: string, - statusBarDTCommandCommand: string, - statusBarDTInitializeTitle: string, - statusBarDTInitializeCommand: string + statusBarMCDEVCredentialBUTitle: string, + statusBarMCDEVCredentialBUCommand: string, + statusBarMCDEVCommandTitle: string, + statusBarMCDEVCommandCommand: string, + statusBarMCDEVInitializeTitle: string, + statusBarMCDEVInitializeCommand: string } = { - statusBarDTCredentialBUTitle: "DT:Credential/BU", - statusBarDTCredentialBUCommand: "sfmc-devtools-vscext.dtCredentialBU", - statusBarDTCommandTitle: "DT: Command", - statusBarDTCommandCommand: "sfmc-devtools-vscext.dtCommand", - statusBarDTInitializeTitle: "DT: Initialize", - statusBarDTInitializeCommand: "sfmc-devtools-vscext.dtInitialize" + statusBarMCDEVCredentialBUTitle: "mcdev: Credential/BU", + statusBarMCDEVCredentialBUCommand: "sfmc-devtools-vscext.mcdevCredentialBU", + statusBarMCDEVCommandTitle: "mcdev: Command", + statusBarMCDEVCommandCommand: "sfmc-devtools-vscext.mcdevCommand", + statusBarMCDEVInitializeTitle: "mcdev: Initialize", + statusBarMCDEVInitializeCommand: "sfmc-devtools-vscext.mcdevInitialize" }; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 97c0fe7..14fb3c8 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -12,7 +12,7 @@ interface DevToolsCommandSetting { } interface IDevToolsCommand { - runDTCommand: (command: () => void, args: {[key: string]: string}) => void + runDevToolsCommand: (command: () => void, args: {[key: string]: string}) => void } abstract class DevToolsCommands implements IDevToolsCommand { @@ -22,7 +22,7 @@ abstract class DevToolsCommands implements IDevToolsCommand { abstract setSupportedMdTypes(mdTypes: {}[]): void; abstract run(id: string, args: {[key: string]: string | boolean}, handleResult?: (res:any) => void): void; - runDTCommand(command: (...args: any) => void, args: {[key: string]: string}, handleResult?: (res:any) => void): void { + runDevToolsCommand(command: (...args: any) => void, args: {[key: string]: string}, handleResult?: (res:any) => void): void { if(command !== undefined){ const dtCommand = command.bind(this); dtCommand(args, handleResult); diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index c293271..92ea7e7 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -22,7 +22,7 @@ class DevToolsStandardCommands extends DevToolsCommands { } run(id: string, args: {[key: string]: string}): void { - this.runDTCommand(this.getCommand(id), args); + this.runDevToolsCommand(this.getCommand(id), args); } setSupportedMdTypes(mdTypes: SupportedMetadataTypes[]): void { diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts index eb40431..bd08093 100644 --- a/src/devtools/containers.ts +++ b/src/devtools/containers.ts @@ -2,44 +2,51 @@ import { ExtensionContext, editorContext } from "../editor/context"; import { StatusBarItem, editorContainers } from "../editor/containers"; import { editorCommands } from "../editor/commands"; import { containersConfig } from "../config/containers.config"; -import { devtoolsMain } from "./main"; - -async function activate(){ +import { log } from "../editor/output"; +function activate(isDevtoolsProject: boolean){ + log("info", "Activating Status Bar Options..."); const { subscriptions }: ExtensionContext = editorContext.get(); // Check which status bar should be displayed - // if .mcdevrc.json AND .mcdev-auth.json in folder then DT:Credentials && DT:Command - // else DT: Initialize - const isDevtoolsProject: boolean = await devtoolsMain.isADevToolsProject(); + // if .mcdevrc.json AND .mcdev-auth.json in folder then mcdev:Credential/BU && mcdev:Command + // else mcdev: Initialize let statusBarContainer: StatusBarItem | StatusBarItem[]; let statusBarCommand: string | string[]; if(isDevtoolsProject){ - // create status bar with DT:Credentials and DT:Command + // create status bar with mcdev: Credential/BU and mcdev: Command statusBarContainer = editorContainers.displayStatusBarItem( [ editorContainers.createStatusBarItem( - containersConfig.statusBarDTCredentialBUCommand, - containersConfig.statusBarDTCredentialBUTitle + containersConfig.statusBarMCDEVCredentialBUCommand, + containersConfig.statusBarMCDEVCredentialBUTitle ), editorContainers.createStatusBarItem( - containersConfig.statusBarDTCommandCommand, - containersConfig.statusBarDTCommandTitle + containersConfig.statusBarMCDEVCommandCommand, + containersConfig.statusBarMCDEVCommandTitle ) ] ); statusBarCommand = [ - containersConfig.statusBarDTCredentialBUCommand, - containersConfig.statusBarDTCommandCommand + containersConfig.statusBarMCDEVCredentialBUCommand, + containersConfig.statusBarMCDEVCommandCommand ]; + log("debug", + `StatusBar: [${ + [containersConfig.statusBarMCDEVCredentialBUTitle, containersConfig.statusBarMCDEVCommandTitle] + }]` + ); }else{ - // create status bar with DT: Initialize + // create status bar with mcdev: Initialize statusBarContainer = editorContainers.displayStatusBarItem( editorContainers.createStatusBarItem( - containersConfig.statusBarDTInitializeCommand, - containersConfig.statusBarDTInitializeTitle + containersConfig.statusBarMCDEVInitializeCommand, + containersConfig.statusBarMCDEVInitializeTitle ) ); - statusBarCommand = containersConfig.statusBarDTInitializeCommand; + statusBarCommand = containersConfig.statusBarMCDEVInitializeCommand; + log("debug", + `StatusBar: [${[containersConfig.statusBarMCDEVInitializeTitle]}]` + ); } // adds the Status Bar Items to be displayed subscriptions.push(...[statusBarContainer].flat()); diff --git a/src/devtools/init.ts b/src/devtools/init.ts index fcf817d..9c21595 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -1,27 +1,24 @@ +import { devtoolsMain } from "./main"; import { devtoolsContainers } from "./containers"; +import { log } from "../editor/output"; -export async function init(){ +async function run(){ try{ - devtoolsContainers.activate(); - // // Checks if all the prerequesites are installed. If not returns the missing prerequisite name - // const { prerequisitesInstalled, missingPrerequisites } = prerequisites.arePrerequisitesInstalled(); + log("info", "Running SFMC DevTools extension..."); + const isDevtoolsProject: boolean = await devtoolsMain.isADevToolsProject(); + + // Activate status bar option based on if it's a mcd\ev project or not + devtoolsContainers.activate(isDevtoolsProject); - // // if user has prequisites installed - // if(prerequisitesInstalled){ - // // const hasDevTools = await prerequisites.isDevToolsInstalled(); - // // if(hasDevTools){ - // // // TODO - check if project is already initiated - // // // initialize devtools - // // initHelper(context); - // // }else{ - // // // install devtools - // // noDevToolsHandler(context); - // // } - // }else{ - // // show prequisites installation page - // prerequisites.noPrerequisitesHandler(context.extensionPath, missingPrerequisites); - // } + // If it's already a mcdev project it will check if prerequisites and devtools are installed + if(isDevtoolsProject){ + + } }catch(exception){ console.error(exception); // TODO } } + +export const devtoolsInit = { + run +}; diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 20e2fae..880737b 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -5,6 +5,7 @@ // import { editorInput } from "../editor/editorInput"; // import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; import { mainConfig } from "../config/main.config"; +import { log } from "../editor/output"; import { editorWorkspace } from "../editor/workspace"; // interface DTStatusBarSettings { @@ -221,11 +222,20 @@ import { editorWorkspace } from "../editor/workspace"; // }; async function isADevToolsProject(): Promise { + log("info", "Checking if folder is a SFMC DevTools project..."); + log("debug", `DevTools files: [${mainConfig.requiredFiles}]`); const findMcdevFiles: boolean[] = await Promise.all(mainConfig.requiredFiles .map(async(filename: string) => editorWorkspace.isFileInFolder(filename))); + log("info", + `Folder ${findMcdevFiles.every((result: boolean) => result === true) ? 'is' : 'is not'} a SFMC DevTools project.` + ); return findMcdevFiles.every((result: boolean) => result === true); } +async function checkPrerequisitesAreInstalled(){ + +} + export const devtoolsMain = { isADevToolsProject }; \ No newline at end of file diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index 00b69db..b3d9fa5 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -3,7 +3,7 @@ import { executeSyncTerminalCommand } from "../shared/utils/terminal"; import { editorInput } from "../editor/input"; import { editorWebview } from "../editor/webview"; -type PrerequisitesInstalledReturn = { +interface PrerequisitesInstalledReturn { prerequisitesInstalled: boolean, missingPrerequisites: string[] }; @@ -56,7 +56,12 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite } } -export const devtoolsPrerequisites = { +const devtoolsPrerequisites = { arePrerequisitesInstalled, noPrerequisitesHandler +}; + +export { + PrerequisitesInstalledReturn, + devtoolsPrerequisites }; \ No newline at end of file diff --git a/src/editor/output.ts b/src/editor/output.ts new file mode 100644 index 0000000..10a8e61 --- /dev/null +++ b/src/editor/output.ts @@ -0,0 +1,30 @@ +import { OutputChannel, window } from "vscode"; +import { lib } from "../shared/utils/lib"; + +enum LogLevel { + debug = "DEBUG", + info = "INFO", + warning = "WARNING", + error = "ERROR" +} + +let outputChannel: OutputChannel; + +function log(level: keyof typeof LogLevel, ...output: any){ + + // creates an output channel + if(!outputChannel){ + outputChannel = window.createOutputChannel("SFMC Devtools"); + } + + const date: string = new Date() + .toISOString() + .replace("T", " ").replace(/\..+/, ''); + + outputChannel.appendLine(`${date} ${LogLevel[level]}: `); + output.map((args: any) => { + outputChannel.appendLine('' + lib.mapObject(args) + '\n'); + }); + outputChannel.show(); +} +export { log }; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 2ff8014..d694fb6 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,10 +1,13 @@ import { ExtensionContext } from 'vscode'; import { editorContext } from './editor/context'; -import { init } from './devtools/init'; +import { devtoolsInit } from './devtools/init'; +import { log } from './editor/output'; export function activate(context: ExtensionContext) { + log("info", "Activating extension..."); + log("debug", "Setting context..."); editorContext.set(context); - init(); + devtoolsInit.run(); } // this method is called when your extension is deactivated diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts index 944fbba..2bd8e8d 100644 --- a/src/shared/utils/lib.ts +++ b/src/shared/utils/lib.ts @@ -1,3 +1,29 @@ -export function parseArrayJsonStringToArray(jsonStr: string): {[key: string]: string | string[] | {[key: string]: string}} { +function parseArrayJsonStringToArray(jsonStr: string): + {[key: string]: string | string[] | {[key: string]: string}} { return JSON.parse(jsonStr); -} \ No newline at end of file +} + +function mapObject(object: any): string { + switch(typeof object){ + case "undefined": + return "undefined"; + case "string": + return object; + case "number": + return object.toString(); + case "object": + let ret: string = ''; + for (const [key, value] of Object.entries(object)) { + ret += (`${key}: ${value}\n`); + } + return ret; + default: + return object; + } + +} + +export const lib = { + parseArrayJsonStringToArray, + mapObject +}; \ No newline at end of file From 28dc954f33d136617cc346d302f4868736f907e5 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Fri, 2 Jun 2023 18:08:53 +0200 Subject: [PATCH 08/24] added installer logic --- src/config/installer.config.ts | 21 ++++++++++++ src/config/prerequisites.config.ts | 6 ++-- src/devtools/init.ts | 17 +++++----- src/devtools/installer.ts | 54 ++++++++++++++++++++++++++++++ src/devtools/main.ts | 30 ++++++++++++++--- src/devtools/prerequisites.ts | 8 +++++ src/editor/commands.ts | 11 +++++- src/editor/webview.ts | 15 +++++---- src/editor/workspace.ts | 16 +++++++-- src/shared/utils/file.ts | 29 ---------------- src/shared/utils/lib.ts | 12 +++++-- src/shared/utils/terminal.ts | 2 ++ 12 files changed, 164 insertions(+), 57 deletions(-) create mode 100644 src/config/installer.config.ts delete mode 100644 src/shared/utils/file.ts diff --git a/src/config/installer.config.ts b/src/config/installer.config.ts new file mode 100644 index 0000000..128591f --- /dev/null +++ b/src/config/installer.config.ts @@ -0,0 +1,21 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +export enum InstallDevToolsResponseOptions { + "Yes" = 1, + "No" = 0 +} + +export const installerConfig: { + package: { mcdev: { version: string, install: string } }, + messages: { + noDevToolsInstalled: string, + askUserToInstallDevTools: string + } +} = { + package: { + mcdev: { version: "mcdev --version", install: "npm install -g mcdev" } + }, + messages: { + noDevToolsInstalled: "SFMC DevTools could not be located on your system.", + askUserToInstallDevTools: "Would you like to install SFMC DevTools?" + } +}; \ No newline at end of file diff --git a/src/config/prerequisites.config.ts b/src/config/prerequisites.config.ts index 2ca9df2..d6b8a40 100644 --- a/src/config/prerequisites.config.ts +++ b/src/config/prerequisites.config.ts @@ -17,13 +17,13 @@ export const prerequisitesConfig: { git: "git --version" }, messages: { - onePrerequisiteMissing: "Unfortunately the prerequesite {{prerequisites}} is missing.", - multiplePrerequisitesMissing: "Unfortunately the prerequesites {{prerequisites}} are missing.", + onePrerequisiteMissing: "Unfortunately the SFMC DevTools Pre-Requisite {{prerequisites}} is missing.", + multiplePrerequisitesMissing: "Unfortunately the SFMC DevTools Pre-Requisites {{prerequisites}} are missing.", askPrerequisitesToUser: "Do you want to open the installation guide?" }, webview: { id: "prerequisitesPanel", - title: "Prequisites Installation", + title: "Prerequisites Installation", filename: "devtoolsPrerequisites" } }; \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts index 9c21595..c20ac86 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -6,19 +6,18 @@ async function run(){ try{ log("info", "Running SFMC DevTools extension..."); const isDevtoolsProject: boolean = await devtoolsMain.isADevToolsProject(); - - // Activate status bar option based on if it's a mcd\ev project or not - devtoolsContainers.activate(isDevtoolsProject); // If it's already a mcdev project it will check if prerequisites and devtools are installed if(isDevtoolsProject){ - + await devtoolsMain.handleDevToolsRequirements(); } - }catch(exception){ - console.error(exception); // TODO + + // Activate status bar option based on if it's a mcd\ev project or not + devtoolsContainers.activate(isDevtoolsProject); + + }catch(error){ + log("error", error); } } -export const devtoolsInit = { - run -}; +export const devtoolsInit = { run }; diff --git a/src/devtools/installer.ts b/src/devtools/installer.ts index 8b13789..55f9b75 100644 --- a/src/devtools/installer.ts +++ b/src/devtools/installer.ts @@ -1 +1,55 @@ +import { InstallDevToolsResponseOptions, installerConfig } from "../config/installer.config"; +import { editorWorkspace } from "../editor/workspace"; +import { log } from "../editor/output"; +import { executeSyncTerminalCommand } from "../shared/utils/terminal"; +import { editorInput } from "../editor/input"; +function isDevToolsInstalled(): boolean { + try{ + // executes mcdev --versio command to check if mcdev is installed + // if not installed throws exception + executeSyncTerminalCommand(installerConfig.package.mcdev.version); + return true; + }catch(error){ + log("debug", "mcdev is not installed."); + return false; + } +} + +function installDevTools(){ + try{ + log("info", "Installing SFMC DevTools..."); + executeSyncTerminalCommand(installerConfig.package.mcdev.install); + log("info", "Reloading workspace window..."); + // Reloads the workspace after DevTools installation + editorWorkspace.reloadWorkspace(); + }catch(error){ + log("warning", "Something went wrong! SFMC DevTools installation failed."); + } +} + +async function noDevToolsHandler(){ + + const message: string = `${installerConfig.messages.noDevToolsInstalled} ${installerConfig.messages.askUserToInstallDevTools}`; + + log("warning", installerConfig.messages.noDevToolsInstalled); + + // Asks if user wishes to install DevTools + const userResponse: string | undefined = await editorInput.handleShowInformationMessage( + message, + Object.keys(InstallDevToolsResponseOptions).filter((v) => isNaN(Number(v))) + ); + + log("debug", `noDevToolsHandler: user response = ${userResponse}`); + + if(userResponse && + InstallDevToolsResponseOptions[userResponse as keyof typeof InstallDevToolsResponseOptions]){ + installDevTools(); + } +} + +export const devtoolsInstaller = { + isDevToolsInstalled, + installDevTools, + noDevToolsHandler +}; \ No newline at end of file diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 880737b..61bba40 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -5,8 +5,11 @@ // import { editorInput } from "../editor/editorInput"; // import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; import { mainConfig } from "../config/main.config"; -import { log } from "../editor/output"; +import { editorContext } from "../editor/context"; import { editorWorkspace } from "../editor/workspace"; +import { log } from "../editor/output"; +import { PrerequisitesInstalledReturn, devtoolsPrerequisites } from "./prerequisites"; +import { devtoolsInstaller } from "./installer"; // interface DTStatusBarSettings { // dtCredential: { @@ -232,10 +235,29 @@ async function isADevToolsProject(): Promise { return findMcdevFiles.every((result: boolean) => result === true); } -async function checkPrerequisitesAreInstalled(){ - + +async function handleDevToolsRequirements(){ + log("info", "Checking SFMC DevTools requirements..."); + const prerequisites: PrerequisitesInstalledReturn = devtoolsPrerequisites.arePrerequisitesInstalled(); + log("info", `SFMC Pre-Requisites ${ + prerequisites.prerequisitesInstalled ? 'are' : 'are not' + } installed.`); + if(prerequisites.prerequisitesInstalled){ + if(!devtoolsInstaller.isDevToolsInstalled()){ + await devtoolsInstaller.noDevToolsHandler(); + return; + } + log("info", "SFMC DevTools is installed."); + }else{ + log("debug", `Missing Pre-requisites: [${prerequisites.missingPrerequisites}]`); + devtoolsPrerequisites.noPrerequisitesHandler( + editorContext.get().extensionPath, + prerequisites.missingPrerequisites + ); + } } export const devtoolsMain = { - isADevToolsProject + isADevToolsProject, + handleDevToolsRequirements }; \ No newline at end of file diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index b3d9fa5..6796b1a 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -2,6 +2,8 @@ import { prerequisitesConfig, NoPrerequisitesResponseOptions } from "../config/p import { executeSyncTerminalCommand } from "../shared/utils/terminal"; import { editorInput } from "../editor/input"; import { editorWebview } from "../editor/webview"; +import { log } from "../editor/output"; +import { devtoolsInstaller } from "./installer"; interface PrerequisitesInstalledReturn { prerequisitesInstalled: boolean, @@ -16,6 +18,7 @@ function arePrerequisitesInstalled(): PrerequisitesInstalledReturn { // if not installed throws exception executeSyncTerminalCommand(command); }catch(error){ + log("debug", `${prerequisite} is not installed.`); prerequisiteResult = { prerequisitesInstalled: false, missingPrerequisites: [...prerequisiteResult["missingPrerequisites"], prerequisite] @@ -31,6 +34,8 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite prerequisitesConfig.messages["onePrerequisiteMissing"].replace("{{prerequisites}}", missingPrerequisites[0]) : prerequisitesConfig.messages["multiplePrerequisitesMissing"].replace("{{prerequisites}}", missingPrerequisites.join(" and ")); + log("warning", missingPrerequisites); + const message: string = `${missingPrerequisitesMessage} ${prerequisitesConfig.messages.askPrerequisitesToUser}`; // Asks if user wishes to follow the guide of how to install the prerequisites @@ -39,6 +44,8 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite Object.keys(NoPrerequisitesResponseOptions).filter((v) => isNaN(Number(v))) ); + log("debug", `noPrerequisitesHandler: user response = ${userResponse}.`); + // If yes creates an webview in vscode with a installation guide if(userResponse && NoPrerequisitesResponseOptions[userResponse as keyof typeof NoPrerequisitesResponseOptions]){ editorWebview.create({ @@ -48,6 +55,7 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite filename: prerequisitesConfig.webview.filename, handler: ({ command }: { command: string }) => { if(command === "install"){ + devtoolsInstaller.installDevTools(); return { dispose: true }; } return { dispose: false }; diff --git a/src/editor/commands.ts b/src/editor/commands.ts index d976d65..61a08a3 100644 --- a/src/editor/commands.ts +++ b/src/editor/commands.ts @@ -12,6 +12,15 @@ function registerCommand(register: CommandRegister | CommandRegister[]): void { ); } +function executeCommand(command: string | string[]){ + [command] + .flat() + .forEach( + (command: string) => commands.executeCommand(command) + ); +} + export const editorCommands = { - registerCommand + registerCommand, + executeCommand }; \ No newline at end of file diff --git a/src/editor/webview.ts b/src/editor/webview.ts index 048dc97..512ebe0 100644 --- a/src/editor/webview.ts +++ b/src/editor/webview.ts @@ -1,5 +1,7 @@ import { window, WebviewPanel, Uri, ViewColumn } from "vscode"; -import { file } from "../shared/utils/file"; +import { editorWorkspace } from "./workspace"; +import { log } from "./output"; +import { lib } from "../shared/utils/lib"; interface WebviewConfig { id: string, @@ -9,7 +11,7 @@ interface WebviewConfig { handler: (data: any) => { dispose: boolean } }; -function create(config: WebviewConfig){ +async function create(config: WebviewConfig){ try { const panel: WebviewPanel = window.createWebviewPanel( config.id, @@ -18,21 +20,21 @@ function create(config: WebviewConfig){ { enableScripts: true } ); - let html: string = file.readFileSync(file.createFilePath([ + let html: string = await editorWorkspace.readFile(lib.createFilePath([ config.extensionPath, "src", "html", `${config.filename}.html` ])); - const sldsPath: string = file.createFilePath([ + const sldsPath: string = lib.createFilePath([ config.extensionPath, "src", "css", "salesforce-lightning-design-system.min.css" ]); - const jsPath: string = file.createFilePath([ + const jsPath: string = lib.createFilePath([ config.extensionPath, "src", "js", @@ -52,9 +54,8 @@ function create(config: WebviewConfig){ } }); panel.webview.html = html; - }catch(error){ - console.error(error); // TODO + log("error", error); } } diff --git a/src/editor/workspace.ts b/src/editor/workspace.ts index c06da1e..c5de6ae 100644 --- a/src/editor/workspace.ts +++ b/src/editor/workspace.ts @@ -1,10 +1,22 @@ -import { workspace, Uri } from "vscode"; +import { workspace, Uri, TextDocument } from "vscode"; +import { editorCommands } from "./commands"; async function isFileInFolder(filename: string): Promise { const fileArray: Uri[] = await workspace.findFiles(filename); return fileArray.length > 0; } +async function readFile(path: string): Promise{ + const document: TextDocument = await workspace.openTextDocument(path); + return document.getText(); +} + +function reloadWorkspace(){ + editorCommands.executeCommand("workbench.action.reloadWindow"); +} + export const editorWorkspace = { - isFileInFolder + isFileInFolder, + readFile, + reloadWorkspace }; \ No newline at end of file diff --git a/src/shared/utils/file.ts b/src/shared/utils/file.ts deleted file mode 100644 index 15f0858..0000000 --- a/src/shared/utils/file.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Uri, workspace } from 'vscode'; -import * as fs from "fs"; -import * as path from 'path'; - -// export async function readFile(filename: string): Promise{ -// const [{ uri }] = workspace.workspaceFolders; -// if(Object.keys(uri).includes("path")){ -// const document: TextDocument = await workspace.openTextDocument(`${uri.path}/${filename}`); -// return document.getText(); -// } -// return ''; -// } - -function readFileSync(path: string): string { - try{ - return fs.readFileSync(path, "utf-8"); - }catch(error){ - throw error; - } -} - -function createFilePath(pathArray: string[]): string { - return path.join(...pathArray); -} - -export const file = { - createFilePath, - readFileSync -}; \ No newline at end of file diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts index 2bd8e8d..19f6e5d 100644 --- a/src/shared/utils/lib.ts +++ b/src/shared/utils/lib.ts @@ -1,3 +1,5 @@ +import path from "path"; + function parseArrayJsonStringToArray(jsonStr: string): {[key: string]: string | string[] | {[key: string]: string}} { return JSON.parse(jsonStr); @@ -20,10 +22,16 @@ function mapObject(object: any): string { default: return object; } - } +function createFilePath(pathArray: string[]): string { + return path.join(...pathArray); +} + + + export const lib = { parseArrayJsonStringToArray, - mapObject + mapObject, + createFilePath }; \ No newline at end of file diff --git a/src/shared/utils/terminal.ts b/src/shared/utils/terminal.ts index 00ca013..16af4b4 100644 --- a/src/shared/utils/terminal.ts +++ b/src/shared/utils/terminal.ts @@ -1,4 +1,5 @@ import { execSync } from 'child_process'; +import { log } from '../../editor/output'; // import { Terminal, window } from 'vscode'; // const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; // TODO @@ -9,6 +10,7 @@ export function executeSyncTerminalCommand(command: string): string { .toString() .trim(); }catch(error){ + log("error", error); throw new Error(`Error executing the command: ${command}`); } } From 3d447d212a5d7182ae7a5b58d20805527d446d59 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Fri, 9 Jun 2023 21:50:08 +0200 Subject: [PATCH 09/24] updated status bar commands --- package.json | 3 + src/config/containers.config.ts | 31 +++-- src/config/installer.config.ts | 6 +- src/config/main.config.ts | 12 +- src/devtools/commands/DevToolsCommands.ts | 26 +++- .../commands/DevToolsStandardCommands.ts | 6 +- src/devtools/containers.ts | 71 ++++++++--- src/devtools/init.ts | 7 +- src/devtools/installer.ts | 9 +- src/devtools/main.ts | 118 ++++++++++++++++-- src/editor/containers.ts | 3 +- src/editor/input.ts | 16 ++- src/editor/webview.ts | 3 +- src/editor/workspace.ts | 18 ++- src/shared/utils/file.ts | 19 +++ 15 files changed, 286 insertions(+), 62 deletions(-) create mode 100644 src/shared/utils/file.ts diff --git a/package.json b/package.json index 61e4362..c8e7195 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "displayName": "sfmc-devtools-vscode", "description": "Accenture Salesforce Marketing Cloud DevTools Vscode Extension", "version": "0.0.1", + "peerDependencies": { + "mcdev": ">=5.1.0" + }, "repository": { "type": "git", "url": "https://github.com/Accenture/sfmc-devtools-vscode.git" diff --git a/src/config/containers.config.ts b/src/config/containers.config.ts index e041bde..e1c4cd4 100644 --- a/src/config/containers.config.ts +++ b/src/config/containers.config.ts @@ -1,16 +1,21 @@ export const containersConfig: { - - statusBarMCDEVCredentialBUTitle: string, - statusBarMCDEVCredentialBUCommand: string, - statusBarMCDEVCommandTitle: string, - statusBarMCDEVCommandCommand: string, - statusBarMCDEVInitializeTitle: string, - statusBarMCDEVInitializeCommand: string + statusBarDevToolsCredentialBUName: string, + statusBarDevToolsCredentialBUTitle: string, + statusBarDevToolsCredentialBUCommand: string, + statusBarDevToolsCommandName: string, + statusBarDevToolsCommandTitle: string, + statusBarDevToolsCommandCommand: string, + statusBarDevToolsInitializeName: string, + statusBarDevToolsInitializeTitle: string, + statusBarDevToolsInitializeCommand: string } = { - statusBarMCDEVCredentialBUTitle: "mcdev: Credential/BU", - statusBarMCDEVCredentialBUCommand: "sfmc-devtools-vscext.mcdevCredentialBU", - statusBarMCDEVCommandTitle: "mcdev: Command", - statusBarMCDEVCommandCommand: "sfmc-devtools-vscext.mcdevCommand", - statusBarMCDEVInitializeTitle: "mcdev: Initialize", - statusBarMCDEVInitializeCommand: "sfmc-devtools-vscext.mcdevInitialize" + statusBarDevToolsCredentialBUName: "devtoolscredentialbu", + statusBarDevToolsCredentialBUTitle: "Credential/BU", + statusBarDevToolsCredentialBUCommand: "sfmc-devtools-vscext.devtoolsCredentialBU", + statusBarDevToolsCommandName: "devtoolscommand", + statusBarDevToolsCommandTitle: "Command", + statusBarDevToolsCommandCommand: "sfmc-devtools-vscext.devtoolsCommand", + statusBarDevToolsInitializeName: "devtoolsinitialize", + statusBarDevToolsInitializeTitle: "Initialize", + statusBarDevToolsInitializeCommand: "sfmc-devtools-vscext.devtoolsInitialize" }; \ No newline at end of file diff --git a/src/config/installer.config.ts b/src/config/installer.config.ts index 128591f..c2c9f19 100644 --- a/src/config/installer.config.ts +++ b/src/config/installer.config.ts @@ -8,7 +8,8 @@ export const installerConfig: { package: { mcdev: { version: string, install: string } }, messages: { noDevToolsInstalled: string, - askUserToInstallDevTools: string + askUserToInstallDevTools: string, + installingDevToolsProgress: string } } = { package: { @@ -16,6 +17,7 @@ export const installerConfig: { }, messages: { noDevToolsInstalled: "SFMC DevTools could not be located on your system.", - askUserToInstallDevTools: "Would you like to install SFMC DevTools?" + askUserToInstallDevTools: "Would you like to install SFMC DevTools?", + installingDevToolsProgress: "Please wait while SFMC DevTools is being installed (window will reload after completation)." } }; \ No newline at end of file diff --git a/src/config/main.config.ts b/src/config/main.config.ts index ee51394..ade7901 100644 --- a/src/config/main.config.ts +++ b/src/config/main.config.ts @@ -1,5 +1,13 @@ export const mainConfig: { - requiredFiles: string[] + credentialsFilename: string, + requiredFiles: string[], + allPlaceholder: string, + messages: { selectCredential: string } } = { - requiredFiles: [".mcdevrc.json", ".mcdev-auth.json"] + credentialsFilename: ".mcdevrc.json", + requiredFiles: [".mcdevrc.json", ".mcdev-auth.json"], + allPlaceholder: "*All*", + messages: { + selectCredential: "Select on of the credentials below..." + } }; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 14fb3c8..40f1c32 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -1,4 +1,5 @@ // import { execInTerminal } from "../../shared/utils/terminal"; +import { log } from "../../editor/output"; import * as commandsConfig from "./commands.config.json"; interface DevToolsCommandSetting { @@ -12,17 +13,19 @@ interface DevToolsCommandSetting { } interface IDevToolsCommand { - runDevToolsCommand: (command: () => void, args: {[key: string]: string}) => void + runCommand: (command: () => void, args: {[key: string]: string}) => void } abstract class DevToolsCommands implements IDevToolsCommand { + name: string | undefined; + static commandMap: {[key: string]: DevToolsCommands} | undefined; abstract getCommand(id: string): void; abstract setSupportedMdTypes(mdTypes: {}[]): void; abstract run(id: string, args: {[key: string]: string | boolean}, handleResult?: (res:any) => void): void; - runDevToolsCommand(command: (...args: any) => void, args: {[key: string]: string}, handleResult?: (res:any) => void): void { + runCommand(command: (...args: any) => void, args: {[key: string]: string}, handleResult?: (res:any) => void): void { if(command !== undefined){ const dtCommand = command.bind(this); dtCommand(args, handleResult); @@ -40,6 +43,25 @@ abstract class DevToolsCommands implements IDevToolsCommand { } } + + static init(){ + log("info", "Initializing DevTools Commands..."); + if(!this.commandMap){ + const commandTypes: Array = this.getAllCommandTypes(); + this.commandMap = commandTypes.reduce((previous: {}, type: string) => { + try{ + const devToolsClass: DevToolsCommands = + new (require(`./DevTools${type}Commands`)).default(); + return { ...previous, [type.toLowerCase()]: devToolsClass }; + }catch(error){ + log("error", `DevTools Command type '${type}' doesn't have a class configured: ${error}`); + return { ...previous }; + } + }, {}); + log("debug", `DevToolsCommands: [${Object.keys(this.commandMap)}]`); + } + } + static getAllCommandTypes(): Array{ return Object.keys(commandsConfig) .filter((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].isAvailable) diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index 92ea7e7..7a26fe2 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -1,3 +1,4 @@ +import { log } from "../../editor/output"; import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; import DevToolsCommands from "./DevToolsCommands"; @@ -15,6 +16,7 @@ class DevToolsStandardCommands extends DevToolsCommands { super(); this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); this.supportedMdTypes = []; + log("debug", "DevToolsStandardCommands Class created"); } getCommand(id: string): () => void { @@ -22,7 +24,7 @@ class DevToolsStandardCommands extends DevToolsCommands { } run(id: string, args: {[key: string]: string}): void { - this.runDevToolsCommand(this.getCommand(id), args); + this.runCommand(this.getCommand(id), args); } setSupportedMdTypes(mdTypes: SupportedMetadataTypes[]): void { @@ -65,8 +67,6 @@ class DevToolsStandardCommands extends DevToolsCommands { deploy(args: {[key: string]: string}){ console.log("Standard - Deploy Method args = ", args); } - - } export default DevToolsStandardCommands; \ No newline at end of file diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts index bd08093..1f0db9d 100644 --- a/src/devtools/containers.ts +++ b/src/devtools/containers.ts @@ -3,61 +3,96 @@ import { StatusBarItem, editorContainers } from "../editor/containers"; import { editorCommands } from "../editor/commands"; import { containersConfig } from "../config/containers.config"; import { log } from "../editor/output"; +import { devtoolsMain } from "./main"; + +// Contains all the status bars that are displayed in the extension +let statusBarContainer: StatusBarItem | StatusBarItem[]; -function activate(isDevtoolsProject: boolean){ +function activateStatusBar(isDevtoolsProject: boolean){ log("info", "Activating Status Bar Options..."); const { subscriptions }: ExtensionContext = editorContext.get(); + + let statusBarCommand: string | string[]; + // Check which status bar should be displayed // if .mcdevrc.json AND .mcdev-auth.json in folder then mcdev:Credential/BU && mcdev:Command // else mcdev: Initialize - let statusBarContainer: StatusBarItem | StatusBarItem[]; - let statusBarCommand: string | string[]; if(isDevtoolsProject){ + + // Status Bar mcdev: initialize must be removed if the user initialized devtools in a folder. + // mcdev: initialize should only be shown when the folder is not a DevTools Project + // subscriptions is a const var + if(subscriptions.length){ + subscriptions.forEach((sb: {dispose: () => void}) => sb.dispose()); + } + // create status bar with mcdev: Credential/BU and mcdev: Command statusBarContainer = editorContainers.displayStatusBarItem( [ editorContainers.createStatusBarItem( - containersConfig.statusBarMCDEVCredentialBUCommand, - containersConfig.statusBarMCDEVCredentialBUTitle + containersConfig.statusBarDevToolsCredentialBUCommand, + containersConfig.statusBarDevToolsCredentialBUTitle, + containersConfig.statusBarDevToolsCredentialBUName ), editorContainers.createStatusBarItem( - containersConfig.statusBarMCDEVCommandCommand, - containersConfig.statusBarMCDEVCommandTitle + containersConfig.statusBarDevToolsCommandCommand, + containersConfig.statusBarDevToolsCommandTitle, + containersConfig.statusBarDevToolsCommandName ) ] ); statusBarCommand = [ - containersConfig.statusBarMCDEVCredentialBUCommand, - containersConfig.statusBarMCDEVCommandCommand + containersConfig.statusBarDevToolsCredentialBUCommand, + containersConfig.statusBarDevToolsCommandCommand ]; log("debug", `StatusBar: [${ - [containersConfig.statusBarMCDEVCredentialBUTitle, containersConfig.statusBarMCDEVCommandTitle] + [ + containersConfig.statusBarDevToolsCredentialBUTitle, + containersConfig.statusBarDevToolsCommandTitle + ] }]` ); }else{ // create status bar with mcdev: Initialize statusBarContainer = editorContainers.displayStatusBarItem( editorContainers.createStatusBarItem( - containersConfig.statusBarMCDEVInitializeCommand, - containersConfig.statusBarMCDEVInitializeTitle + containersConfig.statusBarDevToolsInitializeCommand, + containersConfig.statusBarDevToolsInitializeTitle, + containersConfig.statusBarDevToolsInitializeName ) ); - statusBarCommand = containersConfig.statusBarMCDEVInitializeCommand; + statusBarCommand = containersConfig.statusBarDevToolsInitializeCommand; log("debug", - `StatusBar: [${[containersConfig.statusBarMCDEVInitializeTitle]}]` + `StatusBar: [${[containersConfig.statusBarDevToolsInitializeTitle]}]` ); } // adds the Status Bar Items to be displayed subscriptions.push(...[statusBarContainer].flat()); - + // Register the commands - [statusBarCommand].flat().forEach(command => editorCommands.registerCommand({ + [statusBarCommand].flat().forEach((command: string) => editorCommands.registerCommand({ command, - callbackAction: () => {} + callbackAction: () => { + const [ _, key ]: string[] = command.split(".mcdev"); + return devtoolsMain.handleStatusBarActions(key); + } })); } +function modifyStatusBar(statusBarId: string, statusBarText: string){ + console.log(typeof statusBarContainer); + if(statusBarContainer && Array.isArray(statusBarContainer)){ + const [ statusBar ] = statusBarContainer.filter( + (sb: StatusBarItem) => sb.name === `mcdev${statusBarId}` + ); + if(statusBar){ + statusBar.text = `mcdev: ${statusBarText}`; + } + } +} + export const devtoolsContainers = { - activate + activateStatusBar, + modifyStatusBar }; \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts index c20ac86..6c5df50 100644 --- a/src/devtools/init.ts +++ b/src/devtools/init.ts @@ -10,11 +10,10 @@ async function run(){ // If it's already a mcdev project it will check if prerequisites and devtools are installed if(isDevtoolsProject){ await devtoolsMain.handleDevToolsRequirements(); + return; } - - // Activate status bar option based on if it's a mcd\ev project or not - devtoolsContainers.activate(isDevtoolsProject); - + // activate status bar immediately when isDevToolsProject is false + devtoolsContainers.activate(false); }catch(error){ log("error", error); } diff --git a/src/devtools/installer.ts b/src/devtools/installer.ts index 55f9b75..5d2b3bd 100644 --- a/src/devtools/installer.ts +++ b/src/devtools/installer.ts @@ -19,12 +19,19 @@ function isDevToolsInstalled(): boolean { function installDevTools(){ try{ log("info", "Installing SFMC DevTools..."); - executeSyncTerminalCommand(installerConfig.package.mcdev.install); + + editorInput.handleInProgressMessage( + "Notification", + installerConfig.messages.installingDevToolsProgress, + () => executeSyncTerminalCommand(installerConfig.package.mcdev.install) + ); + log("info", "Reloading workspace window..."); // Reloads the workspace after DevTools installation editorWorkspace.reloadWorkspace(); }catch(error){ log("warning", "Something went wrong! SFMC DevTools installation failed."); + log("error", error); } } diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 61bba40..5604140 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -10,6 +10,10 @@ import { editorWorkspace } from "../editor/workspace"; import { log } from "../editor/output"; import { PrerequisitesInstalledReturn, devtoolsPrerequisites } from "./prerequisites"; import { devtoolsInstaller } from "./installer"; +import { devtoolsContainers } from "./containers"; +import DevToolsCommands from "./commands/DevToolsCommands"; +import { editorInput } from "../editor/input"; +import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; // interface DTStatusBarSettings { // dtCredential: { @@ -235,8 +239,7 @@ async function isADevToolsProject(): Promise { return findMcdevFiles.every((result: boolean) => result === true); } - -async function handleDevToolsRequirements(){ +async function handleDevToolsRequirements(): Promise{ log("info", "Checking SFMC DevTools requirements..."); const prerequisites: PrerequisitesInstalledReturn = devtoolsPrerequisites.arePrerequisitesInstalled(); log("info", `SFMC Pre-Requisites ${ @@ -248,16 +251,113 @@ async function handleDevToolsRequirements(){ return; } log("info", "SFMC DevTools is installed."); - }else{ - log("debug", `Missing Pre-requisites: [${prerequisites.missingPrerequisites}]`); - devtoolsPrerequisites.noPrerequisitesHandler( - editorContext.get().extensionPath, - prerequisites.missingPrerequisites - ); + // activate status bar immediately when isDevToolsProject is false + devtoolsContainers.activateStatusBar(true); + + // init DevTools Commands + DevToolsCommands.init(); + return; + } + log("debug", `Missing Pre-requisites: [${prerequisites.missingPrerequisites}]`); + devtoolsPrerequisites.noPrerequisitesHandler( + editorContext.get().extensionPath, + prerequisites.missingPrerequisites + ); +} + +function handleStatusBarActions(action: string){ + log("debug", "Setting Status Bar Actions..."); + log("debug", `Action: ${action}`); + switch(action.toLowerCase()){ + case "credentialbu": + changeCredentialsBU(); + break; + case "command": + console.log("command"); + break; + case "initialize": + initialize(); + break; + default: + log("error", `main_handleStatusBarActions: Invalid Status Bar Action '${action}'`); + } +} + +async function getCredentialsBU(): Promise<{[key: string]: string[] } | undefined >{ + try{ + // gets the project workspace uri path + const folderPath: string = editorWorkspace.getWorkspaceURIPath(); + + // retrieves all the content inside the file that contains the mcdev credentials + const credBUContent: string = + await editorWorkspace.readFile(`${folderPath}/${mainConfig.credentialsFilename}`); + + // parses the content from text to JSON + const parsedCredBUContent: any = JSON.parse(credBUContent); + + // return a json with each credential associated with a list of its business units + if(parsedCredBUContent && "credentials" in parsedCredBUContent){ + return Object.keys(parsedCredBUContent.credentials) + .reduce((prev: {}, credential: string) => { + const { businessUnits } = parsedCredBUContent.credentials[credential]; + if(businessUnits && Object.keys(businessUnits).length){ + return { ...prev, [credential]: Object.keys(businessUnits) }; + }else{ + log("error", `Could not find any business units for the credential '${credential}'`); + return {...prev }; + } + }, {}); + } + log("error", `Could not find any credentials in the '${mainConfig.credentialsFilename}' file.`); + return; + }catch(error){ + log("error", `main_getCredentialsBU: ${error}`); + return; + } +} + +function initialize(){ + log("info", "Initializing SFMC DevTools project..."); +} + +async function changeCredentialsBU(){ + log("info", "Changing SFMC DevTools credententials/bu..."); + const credentialsBUList = await getCredentialsBU(); + + if(credentialsBUList){ + // Configures all placeholder as an selectable option + const allPlaceholderOption: InputOptionsSettings = { + id: mainConfig.allPlaceholder.toLowerCase(), + label: mainConfig.allPlaceholder, + detail: "" + }; + // Configures all credential names as selectable options + const credentialsOptions: InputOptionsSettings[] = Object.keys(credentialsBUList) + .map((credential: string) => ({ + id: credential.toLowerCase(), + label: credential, + detail: "" + })); + + // Requests user to select one credential option + const selectedCredential: InputOptionsSettings | undefined = + await editorInput.handleQuickPickSelection( + [allPlaceholderOption, ...credentialsOptions], + mainConfig.messages.selectCredential, + false + ); + + if(selectedCredential){ + if(selectedCredential.id === mainConfig.allPlaceholder.toLowerCase()){ + // if user selects *All* then status bar should be replaced with it + devtoolsContainers.modifyStatusBar("credentialbu", selectedCredential.label); + } + } } } export const devtoolsMain = { isADevToolsProject, - handleDevToolsRequirements + handleDevToolsRequirements, + handleStatusBarActions }; \ No newline at end of file diff --git a/src/editor/containers.ts b/src/editor/containers.ts index b102e65..2836522 100644 --- a/src/editor/containers.ts +++ b/src/editor/containers.ts @@ -54,8 +54,9 @@ import { window, StatusBarItem, StatusBarAlignment } from "vscode"; // ); // } -function createStatusBarItem(command: string, title: string): StatusBarItem { +function createStatusBarItem(command: string, title: string, name: string): StatusBarItem { let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); + statusBar.name = name; statusBar.command = command; statusBar.text = title; return statusBar; diff --git a/src/editor/input.ts b/src/editor/input.ts index 1038d27..03ef6c9 100644 --- a/src/editor/input.ts +++ b/src/editor/input.ts @@ -1,4 +1,4 @@ -import { window } from "vscode"; +import { ProgressLocation, window } from "vscode"; import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; async function handleQuickPickSelection( @@ -12,12 +12,22 @@ async function handleQuickPickSelection( return selectedOption; } -async function handleShowInformationMessage(message: string, actions: string[]){ +async function handleShowInformationMessage(message: string, actions: string[]): Promise { const response: string | undefined = await window.showInformationMessage(message, ...actions); return response; } +async function handleInProgressMessage(local: string, reportMessage: string, callbackFn: () => void ){ + await window.withProgress({ location: ProgressLocation[local as keyof typeof ProgressLocation]}, + async(progress) => { + progress.report({ message: reportMessage }); + callbackFn(); + } + ); +} + export const editorInput = { handleQuickPickSelection, - handleShowInformationMessage + handleShowInformationMessage, + handleInProgressMessage }; \ No newline at end of file diff --git a/src/editor/webview.ts b/src/editor/webview.ts index 512ebe0..efcd0be 100644 --- a/src/editor/webview.ts +++ b/src/editor/webview.ts @@ -1,6 +1,5 @@ import { window, WebviewPanel, Uri, ViewColumn } from "vscode"; import { editorWorkspace } from "./workspace"; -import { log } from "./output"; import { lib } from "../shared/utils/lib"; interface WebviewConfig { @@ -55,7 +54,7 @@ async function create(config: WebviewConfig){ }); panel.webview.html = html; }catch(error){ - log("error", error); + throw new Error(`Webview creation error: ${error}`); } } diff --git a/src/editor/workspace.ts b/src/editor/workspace.ts index c5de6ae..9a414cd 100644 --- a/src/editor/workspace.ts +++ b/src/editor/workspace.ts @@ -1,6 +1,19 @@ -import { workspace, Uri, TextDocument } from "vscode"; +import { workspace, Uri, TextDocument, WorkspaceFolder } from "vscode"; import { editorCommands } from "./commands"; +function getWorkspaceURIPath(): string { + const wsFolder: readonly WorkspaceFolder[] | undefined = workspace.workspaceFolders; + if(wsFolder){ + const [{ uri }] = wsFolder; + if(uri && "path" in uri){ + return uri.path; + } + throw new Error("Failed to find Worspace Uri PATH."); + }else{ + throw new Error("Could not get Workspace Folder."); + } +} + async function isFileInFolder(filename: string): Promise { const fileArray: Uri[] = await workspace.findFiles(filename); return fileArray.length > 0; @@ -18,5 +31,6 @@ function reloadWorkspace(){ export const editorWorkspace = { isFileInFolder, readFile, - reloadWorkspace + reloadWorkspace, + getWorkspaceURIPath }; \ No newline at end of file diff --git a/src/shared/utils/file.ts b/src/shared/utils/file.ts new file mode 100644 index 0000000..7124479 --- /dev/null +++ b/src/shared/utils/file.ts @@ -0,0 +1,19 @@ +import * as fs from "fs"; +import * as path from 'path'; + +function readFileSync(path: string): string { + try{ + return fs.readFileSync(path, "utf-8"); + }catch(error){ + throw error; + } +} + +function createFilePath(pathArray: string[]): string { + return path.join(...pathArray); +} + +export const file = { + createFilePath, + readFileSync +}; \ No newline at end of file From eb0d5a839e8bef3b0088291bd15848a73148301f Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Mon, 12 Jun 2023 22:07:40 +0200 Subject: [PATCH 10/24] status bar and context menu improved --- package.json | 16 +- src/config/containers.config.ts | 12 +- src/config/main.config.ts | 12 +- src/devtools/commands/DevToolsCommands.ts | 20 +- .../commands/DevToolsStandardCommands.ts | 67 ++-- src/devtools/containers.ts | 64 +++- src/devtools/init.ts | 22 -- src/devtools/main.ts | 307 +++++++++--------- src/editor/commands.ts | 4 +- src/editor/context.ts | 1 - src/editor/workspace.ts | 2 +- src/extension.ts | 4 +- .../interfaces/devToolsCommandSetting.ts | 11 + 13 files changed, 285 insertions(+), 257 deletions(-) delete mode 100644 src/devtools/init.ts create mode 100644 src/shared/interfaces/devToolsCommandSetting.ts diff --git a/package.json b/package.json index c8e7195..05ef4e6 100644 --- a/package.json +++ b/package.json @@ -23,24 +23,24 @@ "contributes": { "commands": [ { - "command": "sfmc-devtools-vscext.devToolsMenuActionRetrieve", - "title": "DT:Retrieve" + "command": "sfmc-devtools-vscext.devToolsCMRetrieve", + "title": "mcdev: Retrieve" }, { - "command": "sfmc-devtools-vscext.devToolsMenuActionDeploy", - "title": "DT:Deploy" + "command": "sfmc-devtools-vscext.devToolsCMDeploy", + "title": "mcdev: Deploy" } ], "menus": { "explorer/context": [ { - "when": "resource =~ /retrieve/i", - "command": "sfmc-devtools-vscext.devToolsMenuActionRetrieve", + "when": "explorerResourceIsFolder && resourceFilename == retrieve && sfmc-devtools-vscext.isDevToolsProject", + "command": "sfmc-devtools-vscext.devToolsCMRetrieve", "group": "devtools" }, { - "when": "resource =~ /deploy/i", - "command": "sfmc-devtools-vscext.devToolsMenuActionDeploy", + "when": "explorerResourceIsFolder && resourceFilename == deploy && sfmc-devtools-vscext.isDevToolsProject", + "command": "sfmc-devtools-vscext.devToolsCMDeploy", "group": "devtools" } ] diff --git a/src/config/containers.config.ts b/src/config/containers.config.ts index e1c4cd4..276d201 100644 --- a/src/config/containers.config.ts +++ b/src/config/containers.config.ts @@ -7,15 +7,19 @@ export const containersConfig: { statusBarDevToolsCommandCommand: string, statusBarDevToolsInitializeName: string, statusBarDevToolsInitializeTitle: string, - statusBarDevToolsInitializeCommand: string + statusBarDevToolsInitializeCommand: string, + contextMenuRetrieveCommand: string, + contextMenuDeployCommand: string } = { statusBarDevToolsCredentialBUName: "devtoolscredentialbu", statusBarDevToolsCredentialBUTitle: "Credential/BU", - statusBarDevToolsCredentialBUCommand: "sfmc-devtools-vscext.devtoolsCredentialBU", + statusBarDevToolsCredentialBUCommand: "sfmc-devtools-vscext.devtoolsSBCredentialBU", statusBarDevToolsCommandName: "devtoolscommand", statusBarDevToolsCommandTitle: "Command", - statusBarDevToolsCommandCommand: "sfmc-devtools-vscext.devtoolsCommand", + statusBarDevToolsCommandCommand: "sfmc-devtools-vscext.devtoolsSBCommand", statusBarDevToolsInitializeName: "devtoolsinitialize", statusBarDevToolsInitializeTitle: "Initialize", - statusBarDevToolsInitializeCommand: "sfmc-devtools-vscext.devtoolsInitialize" + statusBarDevToolsInitializeCommand: "sfmc-devtools-vscext.devtoolsSBInitialize", + contextMenuRetrieveCommand: "sfmc-devtools-vscext.devToolsCMRetrieve", + contextMenuDeployCommand: "sfmc-devtools-vscext.devToolsCMDeploy" }; \ No newline at end of file diff --git a/src/config/main.config.ts b/src/config/main.config.ts index ade7901..7903ff9 100644 --- a/src/config/main.config.ts +++ b/src/config/main.config.ts @@ -2,12 +2,20 @@ export const mainConfig: { credentialsFilename: string, requiredFiles: string[], allPlaceholder: string, - messages: { selectCredential: string } + messages: { + selectCredential: string, + selectBusinessUnit: string, + selectCommandType: string, + selectCommand: string + } } = { credentialsFilename: ".mcdevrc.json", requiredFiles: [".mcdevrc.json", ".mcdev-auth.json"], allPlaceholder: "*All*", messages: { - selectCredential: "Select on of the credentials below..." + selectCredential: "Select all or one of the credentials below...", + selectBusinessUnit: "Select all or one of the business units below...", + selectCommandType: "Select on DevTools command type...", + selectCommand: "Select one DevToolsCommand " } }; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 40f1c32..ff160da 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -1,16 +1,7 @@ // import { execInTerminal } from "../../shared/utils/terminal"; -import { log } from "../../editor/output"; import * as commandsConfig from "./commands.config.json"; - -interface DevToolsCommandSetting { - id: string, - title: string, - description: string, - command: string, - requiredParams: Array, - optionalParams: Array, - isAvailable: boolean -} +import { log } from "../../editor/output"; +import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; interface IDevToolsCommand { runCommand: (command: () => void, args: {[key: string]: string}) => void @@ -18,7 +9,7 @@ interface IDevToolsCommand { abstract class DevToolsCommands implements IDevToolsCommand { - name: string | undefined; + static readonly commandPrefix: string = "mcdev"; static commandMap: {[key: string]: DevToolsCommands} | undefined; abstract getCommand(id: string): void; @@ -43,7 +34,6 @@ abstract class DevToolsCommands implements IDevToolsCommand { } } - static init(){ log("info", "Initializing DevTools Commands..."); if(!this.commandMap){ @@ -62,6 +52,10 @@ abstract class DevToolsCommands implements IDevToolsCommand { } } + static run(settings: DevToolsCommandSetting){ + + } + static getAllCommandTypes(): Array{ return Object.keys(commandsConfig) .filter((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].isAvailable) diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index 7a26fe2..d0a6c69 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -3,10 +3,10 @@ import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTyp import DevToolsCommands from "./DevToolsCommands"; class DevToolsStandardCommands extends DevToolsCommands { + setSupportedMdTypes(mdTypes: {}[]): void { + throw new Error("Method not implemented."); + } - private readonly type: string = "standard"; - private supportedMdTypes: SupportedMetadataTypes[]; - private commandsConfig; private commandsList: { [key: string]: (...args: any) => void; } = { retrieve: this.retrieve.bind(this), deploy: this.deploy.bind(this) @@ -14,8 +14,7 @@ class DevToolsStandardCommands extends DevToolsCommands { constructor(){ super(); - this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); - this.supportedMdTypes = []; + log("debug", "DevToolsStandardCommands Class created"); } @@ -27,41 +26,33 @@ class DevToolsStandardCommands extends DevToolsCommands { this.runCommand(this.getCommand(id), args); } - setSupportedMdTypes(mdTypes: SupportedMetadataTypes[]): void { - this.supportedMdTypes = mdTypes; - }; - - getSupportedMdTypes(): {}[] { - return this.supportedMdTypes; - }; - retrieve(args: {[key: string]: string}){ console.log("Standard - Retrieve Method args = ", args); - let [{ command, requiredParams, optionalParams }] = - this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "retrieve"); - if(!command){ - // throw error - } - if(requiredParams && requiredParams.length){ - requiredParams.forEach((param: string) => { - if(param in args && args[param]){ - command = command.replace(`{{${param}}}`, args[param]); - }else{ - // request user - console.log(this.getSupportedMdTypes()); - // const supportedMdTypes = this.getSupportedMdTypes() - // .filter(mdType => mdType.supports.retrieve); - } - }); - } - if(optionalParams && optionalParams){ - optionalParams.forEach((param: string) => { - command = command.replace(`{{${param}}}`, - param in args ? args[param] : ""); - }); - } - console.log(command); - this.executeCommand(command, true); + // let [{ command, requiredParams, optionalParams }] = + // this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "retrieve"); + // if(!command){ + // // throw error + // } + // if(requiredParams && requiredParams.length){ + // requiredParams.forEach((param: string) => { + // if(param in args && args[param]){ + // command = command.replace(`{{${param}}}`, args[param]); + // }else{ + // // request user + // // console.log(this.getSupportedMdTypes()); + // // const supportedMdTypes = this.getSupportedMdTypes() + // // .filter(mdType => mdType.supports.retrieve); + // } + // }); + // } + // if(optionalParams && optionalParams){ + // optionalParams.forEach((param: string) => { + // command = command.replace(`{{${param}}}`, + // param in args ? args[param] : ""); + // }); + // } + // console.log(command); + // this.executeCommand(command, true); } deploy(args: {[key: string]: string}){ diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts index 1f0db9d..7593ade 100644 --- a/src/devtools/containers.ts +++ b/src/devtools/containers.ts @@ -1,17 +1,18 @@ +import { containersConfig } from "../config/containers.config"; +import { devtoolsMain } from "./main"; import { ExtensionContext, editorContext } from "../editor/context"; import { StatusBarItem, editorContainers } from "../editor/containers"; import { editorCommands } from "../editor/commands"; -import { containersConfig } from "../config/containers.config"; import { log } from "../editor/output"; -import { devtoolsMain } from "./main"; // Contains all the status bars that are displayed in the extension let statusBarContainer: StatusBarItem | StatusBarItem[]; -function activateStatusBar(isDevtoolsProject: boolean){ +function activateStatusBar(isDevtoolsProject: boolean, commandPrefix: string): void { log("info", "Activating Status Bar Options..."); const { subscriptions }: ExtensionContext = editorContext.get(); - + + // Gets the command prefix for let statusBarCommand: string | string[]; // Check which status bar should be displayed @@ -31,12 +32,12 @@ function activateStatusBar(isDevtoolsProject: boolean){ [ editorContainers.createStatusBarItem( containersConfig.statusBarDevToolsCredentialBUCommand, - containersConfig.statusBarDevToolsCredentialBUTitle, + `${commandPrefix}: ${containersConfig.statusBarDevToolsCredentialBUTitle}`, containersConfig.statusBarDevToolsCredentialBUName ), editorContainers.createStatusBarItem( containersConfig.statusBarDevToolsCommandCommand, - containersConfig.statusBarDevToolsCommandTitle, + `${commandPrefix}: ${containersConfig.statusBarDevToolsCommandTitle}`, containersConfig.statusBarDevToolsCommandName ) ] @@ -58,7 +59,7 @@ function activateStatusBar(isDevtoolsProject: boolean){ statusBarContainer = editorContainers.displayStatusBarItem( editorContainers.createStatusBarItem( containersConfig.statusBarDevToolsInitializeCommand, - containersConfig.statusBarDevToolsInitializeTitle, + `${commandPrefix}: ${containersConfig.statusBarDevToolsInitializeTitle}`, containersConfig.statusBarDevToolsInitializeName ) ); @@ -74,25 +75,62 @@ function activateStatusBar(isDevtoolsProject: boolean){ [statusBarCommand].flat().forEach((command: string) => editorCommands.registerCommand({ command, callbackAction: () => { - const [ _, key ]: string[] = command.split(".mcdev"); + const [ _, key ]: string[] = command.split(".devtools"); return devtoolsMain.handleStatusBarActions(key); } })); } -function modifyStatusBar(statusBarId: string, statusBarText: string){ - console.log(typeof statusBarContainer); +function modifyStatusBar(statusBarId: string, commandPrefix: string, statusBarText: string): void { if(statusBarContainer && Array.isArray(statusBarContainer)){ const [ statusBar ] = statusBarContainer.filter( - (sb: StatusBarItem) => sb.name === `mcdev${statusBarId}` + (sb: StatusBarItem) => sb.name === `devtools${statusBarId}` ); if(statusBar){ - statusBar.text = `mcdev: ${statusBarText}`; + statusBar.text = `${commandPrefix}: ${statusBarText}`; } } } +function isCredentialBUSelected(): boolean { + return statusBarContainer && + Array.isArray(statusBarContainer) && + statusBarContainer.filter( + (sb: StatusBarItem) => + sb.name === containersConfig.statusBarDevToolsCredentialBUName && + !sb.text.includes(`${containersConfig.statusBarDevToolsCredentialBUTitle}`) + ).length > 0; +} + +function getCredentialsBUName(): string | undefined { + if(statusBarContainer && Array.isArray(statusBarContainer)){ + const [ statusBar ] = statusBarContainer.filter( + (sb: StatusBarItem) => + sb.name === containersConfig.statusBarDevToolsCredentialBUName && + !sb.text.includes(`${containersConfig.statusBarDevToolsCredentialBUTitle}`) + ); + return statusBar.text; + } + return; +} + +function activateContextMenuCommands(){ + [ + containersConfig.contextMenuRetrieveCommand, + containersConfig.contextMenuDeployCommand + ].forEach((command: string) => editorCommands.registerCommand({ + command, + callbackAction: () => { + const [ _, key ]: string[] = command.split(".devtools"); + return devtoolsMain.handleContextMenuActions(key); + } + })); +} + export const devtoolsContainers = { activateStatusBar, - modifyStatusBar + modifyStatusBar, + isCredentialBUSelected, + getCredentialsBUName, + activateContextMenuCommands }; \ No newline at end of file diff --git a/src/devtools/init.ts b/src/devtools/init.ts deleted file mode 100644 index 6c5df50..0000000 --- a/src/devtools/init.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { devtoolsMain } from "./main"; -import { devtoolsContainers } from "./containers"; -import { log } from "../editor/output"; - -async function run(){ - try{ - log("info", "Running SFMC DevTools extension..."); - const isDevtoolsProject: boolean = await devtoolsMain.isADevToolsProject(); - - // If it's already a mcdev project it will check if prerequisites and devtools are installed - if(isDevtoolsProject){ - await devtoolsMain.handleDevToolsRequirements(); - return; - } - // activate status bar immediately when isDevToolsProject is false - devtoolsContainers.activate(false); - }catch(error){ - log("error", error); - } -} - -export const devtoolsInit = { run }; diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 5604140..629ba89 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -1,9 +1,3 @@ -// import DevToolsCommands from "./commands/DevToolsCommands"; -// import DevToolsAdminCommands from "./commands/DevToolsAdminCommands"; -// import DevToolsStandardCommands from "./commands/DevToolsStandardCommands"; -// // import { readFile } from "../shared/utils/file"; -// import { editorInput } from "../editor/editorInput"; -// import SupportedMetadataTypes from "../shared/interfaces/supportedMetadataTypes"; import { mainConfig } from "../config/main.config"; import { editorContext } from "../editor/context"; import { editorWorkspace } from "../editor/workspace"; @@ -14,129 +8,10 @@ import { devtoolsContainers } from "./containers"; import DevToolsCommands from "./commands/DevToolsCommands"; import { editorInput } from "../editor/input"; import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; +import DevToolsCommandSetting from "../shared/interfaces/devToolsCommandSetting"; +import { editorCommands } from "../editor/commands"; -// interface DTStatusBarSettings { -// dtCredential: { -// command: string, -// title: string -// }, -// dtCommand: { -// command: string, -// title: string -// } -// }; - -// const DEVTOOLS_STATUS_BAR_CREDBU: DTStatusBarSettings = { -// dtCredential: { -// command: "sfmc-devtools-vscode.credbu", -// title: "DT:Credential/BU" -// }, -// dtCommand: { -// command: "sfmc-devtools-vscode.command", -// title: "DT:Command" -// } -// }; - -// const DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE: string = "sfmc-devtools-vscode.devToolsMenuActionRetrieve"; -// const DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY: string = "sfmc-devtools-vscode.devToolsMenuActionDeploy"; - -// const COMMAND_INPUT_TITLES: { [key: string]: string } = { -// credentialsName: "Select one of the credentials...", -// bussinessUnit: "Select one of the business units...", -// selectType: "Select the DevTools Command Type...", -// selectCmd: "Select the DevTools Command...", -// metaDataType: "Select one or more metadata types..." -// }; - -// const DEVTOOLS_EXTENSION_CONFIG: {[key: string]: any } = { -// mcdevrcFile: ".mcdevrc.json", -// allPlaceholder: "*All*", -// devToolsClasses: [ -// DevToolsAdminCommands, -// DevToolsStandardCommands -// ], -// getClassName: (type: string) => `DevTools${type}Commands` -// }; - -// // eslint-disable-next-line @typescript-eslint/naming-convention -// let devTools_commands_types_map: {[key: string]: DevToolsCommands} = {}; - -// async function init(): Promise { -// devTools_commands_types_map = DevToolsCommands.getAllCommandTypes() -// .reduce((prev: {}, type: string) => { -// const [ dtCommand ] = DEVTOOLS_EXTENSION_CONFIG.devToolsClasses -// .filter((dtClass: DevToolsCommands) => dtClass.name !== undefined && -// dtClass.name.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.getClassName(type).toLowerCase()); -// if(dtCommand !== undefined){ -// return { -// ...prev, -// [type.toLowerCase()]: new dtCommand(editorInput) -// }; -// } -// return {...prev}; -// }, {}); -// const mdTypes: SupportedMetadataTypes[] | undefined = await getSupportedMetadataTypes(); -// if(mdTypes){ -// Object.values(devTools_commands_types_map).forEach( -// (command: DevToolsCommands) => command.setSupportedMdTypes(mdTypes) -// ); -// } -// } -// function convertToCmdOptSettings(options: Array){ -// return options.map((opt: string | {id: string, title: string, description: string}) => { -// if(typeof opt === "string"){ -// return {id: opt.toLowerCase(), label: opt, detail: ""}; -// } -// if(typeof opt === "object"){ -// return {id: opt.id.toLowerCase(), label: opt.title, detail: opt.description}; -// } -// return undefined; -// }).filter(val => val !== undefined); -// } - -// async function getAllCredentials(): Promise<{ [key: string]: string[]; }> { -// const { credentials }: { credentials: any } = JSON.parse(await readFile(DEVTOOLS_EXTENSION_CONFIG.mcdevrcFile)); -// if(Object.keys(credentials).length){ -// const credentialsList: {[key: string]: Array} = Object.keys(credentials) -// .reduce((prev, curr) => { -// // get business units -// const { businessUnits } = credentials[curr]; -// const buList = businessUnits ? Object.keys(businessUnits) : []; -// return {...prev, [curr]: buList}; -// }, {}); -// return credentialsList; -// } -// return {}; -// } - -// async function handleCredentialChange(){ -// const { allPlaceholder } = DEVTOOLS_EXTENSION_CONFIG; -// const credentials: {[key: string]: Array} = await getAllCredentials(); -// const selectedCredentialName = await editorInput.handleQuickPickSelection( -// convertToCmdOptSettings([allPlaceholder, ...Object.keys(credentials)]), -// COMMAND_INPUT_TITLES["credentialsName"], -// false -// ); -// if(selectedCredentialName && selectedCredentialName.id && selectedCredentialName.label){ -// if(selectedCredentialName.id === allPlaceholder.toLowerCase()){ -// return allPlaceholder; -// } -// const selectedBusinessUnit = await editorInput.handleQuickPickSelection( -// convertToCmdOptSettings([ allPlaceholder ,...credentials[selectedCredentialName.label]]), -// COMMAND_INPUT_TITLES["bussinessUnit"], -// false -// ); -// if(selectedBusinessUnit && selectedBusinessUnit.id && selectedBusinessUnit.label){ -// return `${selectedCredentialName.label}/`+ -// `${selectedBusinessUnit.id === allPlaceholder.toLowerCase() ? allPlaceholder : selectedBusinessUnit.label}`; -// } -// } -// } - -// function handleSupportedMetadataTypes(){ - -// } // async function handleCommandSelection(credentialBU: string){ // const typesList: Array = DevToolsCommands.getAllCommandTypes(); @@ -218,15 +93,35 @@ import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; // } // } -// export const devtoolsExtension = { -// init, -// DEVTOOLS_STATUS_BAR_CREDBU, -// DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, -// DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, -// handleCredentialChange, -// handleCommandSelection, -// executeExplorerMenuAction -// }; +async function initDevToolsExtension(){ + + try{ + log("info", "Running SFMC DevTools extension..."); + const isDevtoolsProject: boolean = await isADevToolsProject(); + + // Executes the command setContext to indicate if the project + // is a DevTools Project or not + editorCommands.executeCommand( + "setContext", + [`sfmc-devtools-vscext.isDevToolsProject`, isDevtoolsProject] + ); + + // activate the context menus options + devtoolsContainers.activateContextMenuCommands(); + + // If it's already a mcdev project it will check if prerequisites and devtools are installed + if(isDevtoolsProject){ + await handleDevToolsRequirements(); + return; + } + + // activate status bar immediately when isDevToolsProject is false + devtoolsContainers.activateStatusBar(false, DevToolsCommands.commandPrefix); + + }catch(error){ + log("error", `main_initDevToolsExtension: ${error}`); + } +} async function isADevToolsProject(): Promise { log("info", "Checking if folder is a SFMC DevTools project..."); @@ -252,7 +147,7 @@ async function handleDevToolsRequirements(): Promise{ } log("info", "SFMC DevTools is installed."); // activate status bar immediately when isDevToolsProject is false - devtoolsContainers.activateStatusBar(true); + devtoolsContainers.activateStatusBar(true, DevToolsCommands.commandPrefix); // init DevTools Commands DevToolsCommands.init(); @@ -269,13 +164,13 @@ function handleStatusBarActions(action: string){ log("debug", "Setting Status Bar Actions..."); log("debug", `Action: ${action}`); switch(action.toLowerCase()){ - case "credentialbu": + case "sbcredentialbu": changeCredentialsBU(); break; - case "command": - console.log("command"); + case "sbcommand": + handleDevToolsCommandSelection(); break; - case "initialize": + case "sbinitialize": initialize(); break; default: @@ -283,6 +178,18 @@ function handleStatusBarActions(action: string){ } } +function handleContextMenuActions(action: string){ + log("debug", "Setting Context Menu Actions..."); + log("debug", `Action: ${action}`); + switch(action.toLowerCase()){ + case "cmretrieve" || "cmdeploy": + console.log("cm action"); + break; + default: + log("error", `main_handleContextMenuActions: Invalid Status Bar Action '${action}'`); + } +} + async function getCredentialsBU(): Promise<{[key: string]: string[] } | undefined >{ try{ // gets the project workspace uri path @@ -308,7 +215,7 @@ async function getCredentialsBU(): Promise<{[key: string]: string[] } | undefine } }, {}); } - log("error", `Could not find any credentials in the '${mainConfig.credentialsFilename}' file.`); + log("error", `main_getCredentialsBU: Could not find any credentials in the '${mainConfig.credentialsFilename}' file.`); return; }catch(error){ log("error", `main_getCredentialsBU: ${error}`); @@ -316,13 +223,10 @@ async function getCredentialsBU(): Promise<{[key: string]: string[] } | undefine } } -function initialize(){ - log("info", "Initializing SFMC DevTools project..."); -} - async function changeCredentialsBU(){ log("info", "Changing SFMC DevTools credententials/bu..."); - const credentialsBUList = await getCredentialsBU(); + const credentialsBUList: {[key: string]: string[]} | undefined = + await getCredentialsBU(); if(credentialsBUList){ // Configures all placeholder as an selectable option @@ -348,16 +252,117 @@ async function changeCredentialsBU(){ ); if(selectedCredential){ + log("debug", `User selected '${selectedCredential.label}' credential.`); if(selectedCredential.id === mainConfig.allPlaceholder.toLowerCase()){ // if user selects *All* then status bar should be replaced with it - devtoolsContainers.modifyStatusBar("credentialbu", selectedCredential.label); + devtoolsContainers.modifyStatusBar( + "credentialbu", + DevToolsCommands.commandPrefix, + selectedCredential.label + ); + }else{ + const businessUnitsList: string[] = credentialsBUList[selectedCredential.label]; + + // Configures all business units names as selectable options + const businessUnitOptions: InputOptionsSettings[] = businessUnitsList + .map((businessUnit: string) => ({ + id: businessUnit.toLowerCase(), + label: businessUnit, + detail: "" + })); + + // Requests user to select all or one Business Unit + const selectedBU: InputOptionsSettings | undefined = + await editorInput.handleQuickPickSelection( + [allPlaceholderOption, ...businessUnitOptions], + mainConfig.messages.selectBusinessUnit, + false + ); + + if(selectedBU){ + log("debug", `User selected '${selectedBU.label}' business unit.`); + + // Modify the credential status bar icon to contain the + // selected Credential + selected Business Unit + devtoolsContainers.modifyStatusBar( + "credentialbu", + DevToolsCommands.commandPrefix, + `${selectedCredential.label}/${selectedBU.label}` + ); + } } } + }else{ + log("error", "main_changeCredentialsBU: CredentialBU List is undefined."); } } +async function handleDevToolsCommandSelection(){ + log("info", "Selecting SFMC DevTools command..."); + const devToolsCommandTypes: string[] = DevToolsCommands.getAllCommandTypes(); + + if(devToolsCommandTypes){ + // Configures all commandTypes names as selectable options + const commandTypesOptions: InputOptionsSettings[] = devToolsCommandTypes + .map((commandType: string) => ({ + id: commandType.toLowerCase(), + label: commandType, + detail: "" + })); + + // Requests user to select one DevTools Command Type + const selectedCommandType: InputOptionsSettings | undefined = + await editorInput.handleQuickPickSelection( + commandTypesOptions, + mainConfig.messages.selectCommandType, + false + ); + + if(selectedCommandType){ + log("debug", `User selected in ${selectedCommandType.label} DevTools Command type.`); + const commands: DevToolsCommandSetting[] = + DevToolsCommands.getCommandsListByType(selectedCommandType.id); + + // Configures all devtools commands as selectable options + const commandsOptions: InputOptionsSettings[] = commands + .map((command: DevToolsCommandSetting) => ({ + id: command.id.toLowerCase(), + label: command.title, + detail: command.description + })); + // Requests user to select one DevTools Command Type + const selectedCommandOption: InputOptionsSettings | undefined = + await editorInput.handleQuickPickSelection( + commandsOptions, + mainConfig.messages.selectCommand, + false + ); + + if(selectedCommandOption){ + log("debug", `User selected in ${selectedCommandOption.label} DevTools Command.`); + if(devtoolsContainers.isCredentialBUSelected()){ + log("info", "Credential/BU is selected..."); + const selectedCredentialBU: string | undefined = + devtoolsContainers.getCredentialsBUName(); + if(selectedCredentialBU){ + // execute DevTools Command + }else{ + log("error", `main_handleDevToolsCommandSelection: Failed to retrieve Credential/BU.`); + } + }else{ + // show error TODO + } + } + } + } +} + +function initialize(){ + log("debug", "Initialize DevTools status bar command"); +} + export const devtoolsMain = { - isADevToolsProject, - handleDevToolsRequirements, - handleStatusBarActions + initDevToolsExtension, + handleStatusBarActions, + handleContextMenuActions }; \ No newline at end of file diff --git a/src/editor/commands.ts b/src/editor/commands.ts index 61a08a3..a42e421 100644 --- a/src/editor/commands.ts +++ b/src/editor/commands.ts @@ -12,11 +12,11 @@ function registerCommand(register: CommandRegister | CommandRegister[]): void { ); } -function executeCommand(command: string | string[]){ +function executeCommand(command: string | string[], args: (string | boolean)[]){ [command] .flat() .forEach( - (command: string) => commands.executeCommand(command) + (command: string) => commands.executeCommand(command, ...args) ); } diff --git a/src/editor/context.ts b/src/editor/context.ts index 75c653d..3b841bc 100644 --- a/src/editor/context.ts +++ b/src/editor/context.ts @@ -7,5 +7,4 @@ const editorContext: EditorContext = { set: (context: ExtensionContext) => contextInstance = context, get: () => contextInstance }; - export { ExtensionContext, editorContext }; \ No newline at end of file diff --git a/src/editor/workspace.ts b/src/editor/workspace.ts index 9a414cd..31f575f 100644 --- a/src/editor/workspace.ts +++ b/src/editor/workspace.ts @@ -25,7 +25,7 @@ async function readFile(path: string): Promise{ } function reloadWorkspace(){ - editorCommands.executeCommand("workbench.action.reloadWindow"); + editorCommands.executeCommand("workbench.action.reloadWindow", []); } export const editorWorkspace = { diff --git a/src/extension.ts b/src/extension.ts index d694fb6..c05dc51 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,13 +1,13 @@ import { ExtensionContext } from 'vscode'; import { editorContext } from './editor/context'; -import { devtoolsInit } from './devtools/init'; +import { devtoolsMain } from './devtools/main'; import { log } from './editor/output'; export function activate(context: ExtensionContext) { log("info", "Activating extension..."); log("debug", "Setting context..."); editorContext.set(context); - devtoolsInit.run(); + devtoolsMain.initDevToolsExtension(); } // this method is called when your extension is deactivated diff --git a/src/shared/interfaces/devToolsCommandSetting.ts b/src/shared/interfaces/devToolsCommandSetting.ts new file mode 100644 index 0000000..4711aec --- /dev/null +++ b/src/shared/interfaces/devToolsCommandSetting.ts @@ -0,0 +1,11 @@ +interface DevToolsCommandSetting { + id: string, + title: string, + description: string, + command: string, + requiredParams: Array, + optionalParams: Array, + isAvailable: boolean +} + +export default DevToolsCommandSetting; \ No newline at end of file From 5fe9953ea59144f91a6c26a53aa7fdad5233273b Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Tue, 13 Jun 2023 22:09:09 +0200 Subject: [PATCH 11/24] DevTools Commands implementation in progress --- package.json | 12 +- src/config/containers.config.ts | 4 +- src/config/main.config.ts | 2 +- .../commands/DevToolsAdminCommands.ts | 121 +++++++++-------- src/devtools/commands/DevToolsCommands.ts | 125 +++++++++++++----- .../commands/DevToolsStandardCommands.ts | 118 +++++++++++------ src/devtools/commands/commands.config.json | 9 +- src/devtools/containers.ts | 12 +- src/devtools/helpers/installHelper.ts | 39 ------ src/devtools/main.ts | 110 ++++++++++++--- src/editor/commands.ts | 2 +- src/editor/containers.ts | 51 ------- .../interfaces/devToolsCommandRunner.ts | 10 ++ src/shared/utils/lib.ts | 7 +- 14 files changed, 360 insertions(+), 262 deletions(-) delete mode 100644 src/devtools/helpers/installHelper.ts create mode 100644 src/shared/interfaces/devToolsCommandRunner.ts diff --git a/package.json b/package.json index 05ef4e6..3a30d86 100644 --- a/package.json +++ b/package.json @@ -23,24 +23,24 @@ "contributes": { "commands": [ { - "command": "sfmc-devtools-vscext.devToolsCMRetrieve", + "command": "sfmc-devtools-vscext.devtoolsCMRetrieve", "title": "mcdev: Retrieve" }, { - "command": "sfmc-devtools-vscext.devToolsCMDeploy", + "command": "sfmc-devtools-vscext.devtoolsCMDeploy", "title": "mcdev: Deploy" } ], "menus": { "explorer/context": [ { - "when": "explorerResourceIsFolder && resourceFilename == retrieve && sfmc-devtools-vscext.isDevToolsProject", - "command": "sfmc-devtools-vscext.devToolsCMRetrieve", + "when": "resourcePath =~ /retrieve/ && sfmc-devtools-vscext.isDevToolsProject", + "command": "sfmc-devtools-vscext.devtoolsCMRetrieve", "group": "devtools" }, { - "when": "explorerResourceIsFolder && resourceFilename == deploy && sfmc-devtools-vscext.isDevToolsProject", - "command": "sfmc-devtools-vscext.devToolsCMDeploy", + "when": "resourcePath =~ /deploy/ && sfmc-devtools-vscext.isDevToolsProject", + "command": "sfmc-devtools-vscext.devtoolsCMDeploy", "group": "devtools" } ] diff --git a/src/config/containers.config.ts b/src/config/containers.config.ts index 276d201..ec5282c 100644 --- a/src/config/containers.config.ts +++ b/src/config/containers.config.ts @@ -20,6 +20,6 @@ export const containersConfig: { statusBarDevToolsInitializeName: "devtoolsinitialize", statusBarDevToolsInitializeTitle: "Initialize", statusBarDevToolsInitializeCommand: "sfmc-devtools-vscext.devtoolsSBInitialize", - contextMenuRetrieveCommand: "sfmc-devtools-vscext.devToolsCMRetrieve", - contextMenuDeployCommand: "sfmc-devtools-vscext.devToolsCMDeploy" + contextMenuRetrieveCommand: "sfmc-devtools-vscext.devtoolsCMRetrieve", + contextMenuDeployCommand: "sfmc-devtools-vscext.devtoolsCMDeploy" }; \ No newline at end of file diff --git a/src/config/main.config.ts b/src/config/main.config.ts index 7903ff9..efc05c0 100644 --- a/src/config/main.config.ts +++ b/src/config/main.config.ts @@ -15,7 +15,7 @@ export const mainConfig: { messages: { selectCredential: "Select all or one of the credentials below...", selectBusinessUnit: "Select all or one of the business units below...", - selectCommandType: "Select on DevTools command type...", + selectCommandType: "Select one DevTools command type...", selectCommand: "Select one DevToolsCommand " } }; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts index ebe6e5c..19fb58b 100644 --- a/src/devtools/commands/DevToolsAdminCommands.ts +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -1,54 +1,67 @@ -// import { parseArrayJsonStringToArray } from "../../shared/utils/lib"; -// import DevToolsCommands from "./DevToolsCommands"; - -// class DevToolsAdminCommands extends DevToolsCommands { - -// private readonly type: string = "admin"; -// private commandsConfig; -// private supportedMdType: {}[]; -// private commandsList: { [key: string]: (...args: any) => void; } = { -// init: this.init, -// etypes: this.explainTypes -// }; - -// constructor(){ -// super(); -// this.commandsConfig = DevToolsCommands.getCommandsListByType(this.type); -// this.supportedMdType = []; -// } - -// getCommand(id: string): () => void { -// return this.commandsList[id]; -// } - -// setSupportedMdTypes(mdTypes: {}[]): void { -// this.supportedMdType = mdTypes; -// }; - -// getSupportedMdTypes(): {}[] { -// return this.supportedMdType; -// }; - -// run(id: string, args: {[key: string]: string }, handleResult: (res: any) => void): void { -// this.runDTCommand(this.getCommand(id), args, handleResult); -// } - -// init(args: {[key: string]: string}){ -// console.log("Admin - Init Command - args = ", args); -// } - -// // async explainTypes(args: {[key: string]: string}, handleResult?: (res: any) => void){ -// // console.log("Admin - Explain Types Command - args = ", args); -// // let [{ command }] = this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "etypes"); -// // if(!command){ -// // // throw error -// // } -// // command = command.replace("{{json}}", args["json"] ? "--json" : ""); -// // const mdTypes: string = await this.executeCommand(command, false); -// // if(handleResult !== undefined ){ -// // handleResult(parseArrayJsonStringToArray(mdTypes)); -// // } -// // } -// } - -// export default DevToolsAdminCommands; \ No newline at end of file +import { log } from "../../editor/output"; +import DevToolsCommands from "./DevToolsCommands"; +import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; +import DevToolsCommandRunner from "../../shared/interfaces/devToolsCommandRunner"; +import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; + +class DevToolsAdminCommands extends DevToolsCommands { + + private commandMethods: { + [key: string]: ( + config: DevToolsCommandSetting, + args: {[key: string]: any }, + handleResult: (result: any) => void) + => void + } = {}; + private metadataTypes: SupportedMetadataTypes[] = []; + constructor(){ + super(); + log("debug", "DevToolsAdminCommands Class created"); + this.commandMethods = { + init: this.init.bind(this), + etypes: this.explainTypes.bind(this) + }; + } + + run(commandRunner: DevToolsCommandRunner): void { + const { + commandId, + commandConfig, + commandArgs, + commandResultHandler + }: DevToolsCommandRunner = commandRunner; + + log("debug", `Running DevTools Admin Command for id '${commandId}'.`); + if(commandId in this.commandMethods){ + this.commandMethods[commandId](commandConfig, commandArgs, commandResultHandler); + }else{ + log("error", `DevTools Admin Command method for id '${commandId}' is not implemented.`); + } + } + + setMetadataTypes(mdTypes: SupportedMetadataTypes[]): void { + this.metadataTypes = mdTypes; + } + + init(commandConfig: DevToolsCommandSetting, args: {[key: string]: any}){ + log("info", `Running DevTools Admin Command: Explain Types...`); + console.log(commandConfig); + console.log(args); + } + + explainTypes(config: DevToolsCommandSetting, args: {[key: string]: any }, handleResult: (result: any) => void){ + log("info", `Running DevTools Admin Command: Explain Types...`); + let command: string = ""; + if("command" in config && config.command){ + command = config.command; + log("debug", `Explain types basic command: ${command}`); + command = command.replace("{{json}}", args.json ? "--json" : ""); + log("debug", `Explain types final command: ${command}`); + const result = this.executeCommand(command); + handleResult(result); + } + } + +} + +export default DevToolsAdminCommands; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index ff160da..0ee4c1f 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -1,68 +1,123 @@ // import { execInTerminal } from "../../shared/utils/terminal"; import * as commandsConfig from "./commands.config.json"; -import { log } from "../../editor/output"; import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; +import DevToolsCommandRunner from "../../shared/interfaces/devToolsCommandRunner"; +import { log } from "../../editor/output"; +import { lib } from "../../shared/utils/lib"; +import { executeSyncTerminalCommand } from "../../shared/utils/terminal"; +import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; -interface IDevToolsCommand { - runCommand: (command: () => void, args: {[key: string]: string}) => void -} - -abstract class DevToolsCommands implements IDevToolsCommand { +abstract class DevToolsCommands { static readonly commandPrefix: string = "mcdev"; - static commandMap: {[key: string]: DevToolsCommands} | undefined; + static commandMap: { [key: string]: DevToolsCommands }; - abstract getCommand(id: string): void; - abstract setSupportedMdTypes(mdTypes: {}[]): void; - abstract run(id: string, args: {[key: string]: string | boolean}, handleResult?: (res:any) => void): void; - - runCommand(command: (...args: any) => void, args: {[key: string]: string}, handleResult?: (res:any) => void): void { - if(command !== undefined){ - const dtCommand = command.bind(this); - dtCommand(args, handleResult); - }else{ - throw Error("Invalid command"); // TODO Complete - } - } + abstract run(commandRunner: DevToolsCommandRunner): void; + abstract setMetadataTypes(mdTypes: SupportedMetadataTypes[]): void; - executeCommand(command: string, runWindowTerminal: boolean){ + executeCommand(command: string){ console.log('Final Command = ', command); - if(runWindowTerminal){ - //execInWindowTerminal(command); - }else{ - // return execInTerminal(command); - } + return executeSyncTerminalCommand(command); } static init(){ log("info", "Initializing DevTools Commands..."); if(!this.commandMap){ - const commandTypes: Array = this.getAllCommandTypes(); - this.commandMap = commandTypes.reduce((previous: {}, type: string) => { + const commandTypes: {id: string}[] = this.getAllCommandTypes(); + this.commandMap = commandTypes.reduce((previous: {}, { id }: { id: string }) => { try{ + // Instanciates a new type with all the commands by type configured const devToolsClass: DevToolsCommands = - new (require(`./DevTools${type}Commands`)).default(); - return { ...previous, [type.toLowerCase()]: devToolsClass }; + new (require(`./DevTools${lib.capitalizeFirstLetter(id)}Commands`)).default(); + + return { ...previous, [id.toLowerCase()]: devToolsClass }; }catch(error){ - log("error", `DevTools Command type '${type}' doesn't have a class configured: ${error}`); + log("error", + `DevToolsCommands_init: Command type '${lib.capitalizeFirstLetter(id)}' doesn't have a class configured: ${error}` + ); return { ...previous }; } }, {}); - log("debug", `DevToolsCommands: [${Object.keys(this.commandMap)}]`); } + + log("debug", `DevToolsCommands: [${Object.keys(this.commandMap)}]`); + log("info", "Get DevTools Supported Metadata Types."); + this.runCommand("admin", "etypes", { json: true }, ((result: any) => { + // Parses the list of supported mtdata types + const parsedResult: SupportedMetadataTypes[] = JSON.parse(result); + if(parsedResult && parsedResult.length){ + // Sends the supported mtdata types to each DevTools Command + Object.keys(this.commandMap).forEach((key: string) => { + const devToolCommand: DevToolsCommands = + this.commandMap[key]; + devToolCommand.setMetadataTypes(parsedResult); + }); + }else{ + log("error", "DevToolsCommands_init: Failed to parse supported metadata type result."); + } + })); } - static run(settings: DevToolsCommandSetting){ + static runCommand(typeId: string, commandId: string, args: any, handleResult: (result: any)=> void ){ + // When the DevTools command type is unknown to the application + if(!typeId && commandId){ + const [{ id }]: { id: string }[] = + this.getAllCommandTypes().filter(({ id }: {id: string}) => + this.getCommandsListByType(id) + .filter(({ id }) => id === commandId).length > 0 + ); + + if(id !== undefined){ + typeId = id; + }else{ + log("error", + `DevToolsCommands_runCommand: Failed to retrieve the command type for command id '${commandId}'.` + ); + return; + } + } + if(this.commandMap){ + if(typeId in this.commandMap){ + const [ commandConfig ]: DevToolsCommandSetting[] = + this.getCommandsListByType(typeId) + .filter((commandSetting: DevToolsCommandSetting) => commandSetting.id === commandId); + + if(commandConfig && Object.keys(commandConfig).length){ + const devToolsCommandClass: DevToolsCommands = this.commandMap[typeId]; + devToolsCommandClass.run({ + commandId, + commandConfig, + commandArgs: args, + commandResultHandler: handleResult + }); + return; + } + log("error", + `DevToolsCommands_runCommand: Command with Id '${commandId}' doesn't have a DevTools command configured.` + ); + return; + } + log("error", + `DevToolsCommands_runCommand: Command type Id '${typeId}' doesn't have a DevTools Command Class configured.` + ); + return; + } + log("error", + `DevToolsCommands_runCommand: Command Map is not configured configured.` + ); } - static getAllCommandTypes(): Array{ + static getAllCommandTypes(): Array<{id: string, title: string}>{ return Object.keys(commandsConfig) .filter((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].isAvailable) - .map((cmd: string) => commandsConfig[cmd as keyof typeof commandsConfig].title); + .map((cmd: string) => ({ + id: commandsConfig[cmd as keyof typeof commandsConfig].id, + title: commandsConfig[cmd as keyof typeof commandsConfig].title + })); } - static getCommandsListByType(type: string): Array{ + static getCommandsListByType(type: string): DevToolsCommandSetting[]{ const { commands } = commandsConfig[type.toLowerCase() as keyof typeof commandsConfig]; return commands ? commands.filter((command: DevToolsCommandSetting) => command.isAvailable) : []; diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index d0a6c69..7b190e3 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -1,63 +1,93 @@ -import { log } from "../../editor/output"; -import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; import DevToolsCommands from "./DevToolsCommands"; +import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; +import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; +import DevToolsCommandRunner from "../../shared/interfaces/devToolsCommandRunner"; +import { log } from "../../editor/output"; class DevToolsStandardCommands extends DevToolsCommands { - setSupportedMdTypes(mdTypes: {}[]): void { - throw new Error("Method not implemented."); - } - - private commandsList: { [key: string]: (...args: any) => void; } = { - retrieve: this.retrieve.bind(this), - deploy: this.deploy.bind(this) - }; + private commandMethods: { + [key: string]: ( + config: DevToolsCommandSetting, + args: {[key: string]: any }, + handleResult: (result: any) => void) + => void + } = {}; + private metadataTypes: SupportedMetadataTypes[] = []; constructor(){ super(); - log("debug", "DevToolsStandardCommands Class created"); + this.commandMethods = { + retrieve: this.retrieve.bind(this), + deploy: this.deploy.bind(this) + }; } - getCommand(id: string): () => void { - return this.commandsList[id]; + run(commandRunner: DevToolsCommandRunner): void { + const { + commandId, + commandConfig, + commandArgs, + commandResultHandler + }: DevToolsCommandRunner = commandRunner; + + log("debug", `Running DevTools Standard Command for id '${commandId}'.`); + if(commandId in this.commandMethods){ + this.commandMethods[commandId](commandConfig, commandArgs, commandResultHandler); + }else{ + log("error", `DevTools Standard Command method for id '${commandId}' is not implemented.`); + } } - run(id: string, args: {[key: string]: string}): void { - this.runCommand(this.getCommand(id), args); + setMetadataTypes(mdTypes: SupportedMetadataTypes[]): void { + this.metadataTypes = mdTypes; } - retrieve(args: {[key: string]: string}){ - console.log("Standard - Retrieve Method args = ", args); - // let [{ command, requiredParams, optionalParams }] = - // this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "retrieve"); - // if(!command){ - // // throw error - // } - // if(requiredParams && requiredParams.length){ - // requiredParams.forEach((param: string) => { - // if(param in args && args[param]){ - // command = command.replace(`{{${param}}}`, args[param]); - // }else{ - // // request user - // // console.log(this.getSupportedMdTypes()); - // // const supportedMdTypes = this.getSupportedMdTypes() - // // .filter(mdType => mdType.supports.retrieve); - // } - // }); - // } - // if(optionalParams && optionalParams){ - // optionalParams.forEach((param: string) => { - // command = command.replace(`{{${param}}}`, - // param in args ? args[param] : ""); - // }); - // } - // console.log(command); - // this.executeCommand(command, true); + retrieve(config: DevToolsCommandSetting, args: {[key: string]: any }, handleResult: (result: any) => void){ + log("info", `Running DevTools Standard Command: Retrieve...`); + console.log(config); + console.log(args); } - deploy(args: {[key: string]: string}){ - console.log("Standard - Deploy Method args = ", args); + deploy(config: DevToolsCommandSetting, args: {[key: string]: any }, handleResult: (result: any) => void){ + log("info", `Running DevTools Standard Command: Deploy...`); + console.log(config); + console.log(args); + } + +// retrieve(args: {[key: string]: string}){ +// console.log("Standard - Retrieve Method args = ", args); +// // let [{ command, requiredParams, optionalParams }] = +// // this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "retrieve"); +// // if(!command){ +// // // throw error +// // } +// // if(requiredParams && requiredParams.length){ +// // requiredParams.forEach((param: string) => { +// // if(param in args && args[param]){ +// // command = command.replace(`{{${param}}}`, args[param]); +// // }else{ +// // // request user +// // // console.log(this.getSupportedMdTypes()); +// // // const supportedMdTypes = this.getSupportedMdTypes() +// // // .filter(mdType => mdType.supports.retrieve); +// // } +// // }); +// // } +// // if(optionalParams && optionalParams){ +// // optionalParams.forEach((param: string) => { +// // command = command.replace(`{{${param}}}`, +// // param in args ? args[param] : ""); +// // }); +// // } +// // console.log(command); +// // this.executeCommand(command, true); +// } + +// deploy(args: {[key: string]: string}){ +// console.log("Standard - Deploy Method args = ", args); +// } } export default DevToolsStandardCommands; \ No newline at end of file diff --git a/src/devtools/commands/commands.config.json b/src/devtools/commands/commands.config.json index f9ff6c8..e7237e8 100644 --- a/src/devtools/commands/commands.config.json +++ b/src/devtools/commands/commands.config.json @@ -1,9 +1,10 @@ { "admin": { - "title": "Admin", + "id": "admin", + "title": "Admin Command", "isAvailable": true, "commands": [ - {"id":"init", "title": "Init", "command": "mcdev init", "requiredParams": [], "optionalParams": [], "description": "Initates SFMC DevTools or adds additional credentials to your project.", "isAvailable": false}, + {"id":"init", "title": "Init", "command": "mcdev init", "requiredParams": [], "optionalParams": [], "description": "Initates SFMC DevTools or adds additional credentials to your project.", "isAvailable": true}, {"id":"join", "title": "Join", "command": "", "requiredParams": [], "optionalParams": [], "description": "Clones an existing project from git.", "isAvailable": false}, {"id":"upgrade", "title": "Upgrade", "command": "", "requiredParams": [], "optionalParams": [], "description": "Add NPM dependencies and IDE configuration files to your project.", "isAvailable": false}, {"id":"rbus", "title": "Reload BUs", "command": "", "requiredParams": [], "optionalParams": [], "description": "Loads the list of available BUs from the server and saves it in your project.", "isAvailable": false}, @@ -22,7 +23,8 @@ ] }, "standard": { - "title": "Standard", + "id": "standard", + "title": "Standard Command", "isAvailable": true, "commands": [ { @@ -56,6 +58,7 @@ ] }, "templating": { + "id": "templating", "title": "Templating", "isAvailable": false, "commands": [ diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts index 7593ade..16e118d 100644 --- a/src/devtools/containers.ts +++ b/src/devtools/containers.ts @@ -4,6 +4,7 @@ import { ExtensionContext, editorContext } from "../editor/context"; import { StatusBarItem, editorContainers } from "../editor/containers"; import { editorCommands } from "../editor/commands"; import { log } from "../editor/output"; +import DevToolsCommands from "./commands/DevToolsCommands"; // Contains all the status bars that are displayed in the extension let statusBarContainer: StatusBarItem | StatusBarItem[]; @@ -102,14 +103,15 @@ function isCredentialBUSelected(): boolean { ).length > 0; } -function getCredentialsBUName(): string | undefined { +function getCredentialsBUName(commandPrefix: string): string | undefined { if(statusBarContainer && Array.isArray(statusBarContainer)){ - const [ statusBar ] = statusBarContainer.filter( + const [ { text } ] = statusBarContainer.filter( (sb: StatusBarItem) => sb.name === containersConfig.statusBarDevToolsCredentialBUName && !sb.text.includes(`${containersConfig.statusBarDevToolsCredentialBUTitle}`) ); - return statusBar.text; + const [ _, credentialbu ] = text.split(`${commandPrefix}:`); + return credentialbu.trim(); } return; } @@ -120,9 +122,9 @@ function activateContextMenuCommands(){ containersConfig.contextMenuDeployCommand ].forEach((command: string) => editorCommands.registerCommand({ command, - callbackAction: () => { + callbackAction: ({ path }: { path: string }) => { const [ _, key ]: string[] = command.split(".devtools"); - return devtoolsMain.handleContextMenuActions(key); + return devtoolsMain.handleContextMenuActions(key, path); } })); } diff --git a/src/devtools/helpers/installHelper.ts b/src/devtools/helpers/installHelper.ts deleted file mode 100644 index 26726d1..0000000 --- a/src/devtools/helpers/installHelper.ts +++ /dev/null @@ -1,39 +0,0 @@ -// import { window, ViewColumn, Uri, ExtensionContext, ProgressLocation } from 'vscode'; -// import * as path from 'path'; -// import * as fs from 'fs'; -// import { execInTerminal } from '../../shared/utils/terminal'; -// import { initHelper } from './initHelper'; -// import { isDevToolsInstalled } from '../prerequisites'; - -// const MESSAGES: {[key: string]: string } = { -// noPreRequisites: "The Pre-Requisites required to run SFMC DevTools are missing. Do you wish to install them?", -// installDevToolsRequest: "Cannot find SFMC DevTools in your system. Do you want to install it?", -// installDevTools: "Installing SFMC DevTools...", -// installDevToolsSuccess: "SFMC DevTools has been successfully installed!" -// }; - -// async function noDevToolsHandler(context: ExtensionContext){ -// let response = await window.showInformationMessage(MESSAGES['installDevToolsRequest'], ...["Yes", "No"]); -// if(response && response.toLowerCase() === "yes"){ -// await installDevTools(context); -// } -// } - -// async function installDevTools(context: ExtensionContext){ -// await window.withProgress({ location: ProgressLocation.Notification }, async (progress) => { -// progress.report({ message: MESSAGES['installDevTools']}); -// await execInTerminal(`npm install -g mcdev`); -// const hasDevTools: boolean = await isDevToolsInstalled(); -// if(hasDevTools){ -// window.showInformationMessage(MESSAGES['installDevToolsSuccess']); -// initHelper(context); -// }else{ -// noDevToolsHandler(context); -// } -// }); -// } - -// export { -// // noPrerequisitesHandler, -// noDevToolsHandler -// }; \ No newline at end of file diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 629ba89..a9a0cd7 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -1,15 +1,17 @@ import { mainConfig } from "../config/main.config"; -import { editorContext } from "../editor/context"; -import { editorWorkspace } from "../editor/workspace"; -import { log } from "../editor/output"; import { PrerequisitesInstalledReturn, devtoolsPrerequisites } from "./prerequisites"; -import { devtoolsInstaller } from "./installer"; -import { devtoolsContainers } from "./containers"; import DevToolsCommands from "./commands/DevToolsCommands"; -import { editorInput } from "../editor/input"; import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; import DevToolsCommandSetting from "../shared/interfaces/devToolsCommandSetting"; +import { devtoolsInstaller } from "./installer"; +import { devtoolsContainers } from "./containers"; +import { editorInput } from "../editor/input"; +import { editorContext } from "../editor/context"; +import { editorWorkspace } from "../editor/workspace"; import { editorCommands } from "../editor/commands"; +import { log } from "../editor/output"; + + @@ -168,7 +170,7 @@ function handleStatusBarActions(action: string){ changeCredentialsBU(); break; case "sbcommand": - handleDevToolsCommandSelection(); + handleDevToolsSBCommand(); break; case "sbinitialize": initialize(); @@ -178,15 +180,18 @@ function handleStatusBarActions(action: string){ } } -function handleContextMenuActions(action: string){ +function handleContextMenuActions(action: string, path: string){ log("debug", "Setting Context Menu Actions..."); - log("debug", `Action: ${action}`); + log("debug", `Action: ${action} Path: ${path}`); switch(action.toLowerCase()){ - case "cmretrieve" || "cmdeploy": - console.log("cm action"); + case "cmretrieve": + handleDevToolsCMCommand("retrieve", path); + break; + case "cmdeploy": + handleDevToolsCMCommand("deploy", path); break; default: - log("error", `main_handleContextMenuActions: Invalid Status Bar Action '${action}'`); + log("error", `main_handleContextMenuActions: Invalid Context Menu Action '${action}'`); } } @@ -297,16 +302,16 @@ async function changeCredentialsBU(){ } } -async function handleDevToolsCommandSelection(){ - log("info", "Selecting SFMC DevTools command..."); - const devToolsCommandTypes: string[] = DevToolsCommands.getAllCommandTypes(); +async function handleDevToolsSBCommand(){ + log("info", "Selecting SB SFMC DevTools command..."); + const devToolsCommandTypes: {id: string, title: string}[] = DevToolsCommands.getAllCommandTypes(); if(devToolsCommandTypes){ // Configures all commandTypes names as selectable options const commandTypesOptions: InputOptionsSettings[] = devToolsCommandTypes - .map((commandType: string) => ({ - id: commandType.toLowerCase(), - label: commandType, + .map(({ id, title }: {id: string, title: string}) => ({ + id: id.toLowerCase(), + label: title, detail: "" })); @@ -343,9 +348,15 @@ async function handleDevToolsCommandSelection(){ if(devtoolsContainers.isCredentialBUSelected()){ log("info", "Credential/BU is selected..."); const selectedCredentialBU: string | undefined = - devtoolsContainers.getCredentialsBUName(); + devtoolsContainers.getCredentialsBUName(DevToolsCommands.commandPrefix); if(selectedCredentialBU){ // execute DevTools Command + DevToolsCommands.runCommand( + selectedCommandType.id, + selectedCommandOption.id, + { bu: selectedCredentialBU.replace(mainConfig.allPlaceholder, "'*'") }, + (result: any) => console.log(result) + ); }else{ log("error", `main_handleDevToolsCommandSelection: Failed to retrieve Credential/BU.`); } @@ -361,6 +372,67 @@ function initialize(){ log("debug", "Initialize DevTools status bar command"); } +function handleDevToolsCMCommand(action: string, path: string){ + log("info", "Selecting CM SFMC DevTools command..."); + + let args: {[key: string]: string } = {}; + const [ projectPath, cmPath ]: string[] = path.split(`/${action}/`);; + + const workspaceUriFolder = editorWorkspace.getWorkspaceURIPath(); + + log("debug", `Current workspace folder path: ${workspaceUriFolder}`); + log("debug", `Context Menu Action path: ${projectPath}`); + + log("debug", `Context Menu Action outside of project directory? = ${workspaceUriFolder !== projectPath}`); + + if(projectPath && !cmPath && projectPath.endsWith(`/${action}`)){ + args = { bu: `"*"` }; + } + + if(cmPath){ + let [ credName, bUnit, type, ...keys ]: string[] = cmPath.split("/"); + let key: string = ""; + // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder + if(type === "asset" && keys.length){ + // Gets the asset subfolder and asset key + const [ assetFolder, assetKey ] = keys; + if(!assetKey){ + // if user only selected an asset subfolder + // type will be changed to "asset-[name of the asset subfolder]" + type = `${type}-${assetFolder}`; + } + // if user selects a file inside a subfolder of asset + // the key will be the name of the file + keys = assetKey ? [ assetKey ] : []; + } + + if(keys.length){ + const [ typeKey ]: string[] = keys; + key = `"${typeKey.startsWith(".") ? + '.' + typeKey.substring(1).split(".")[0] : + typeKey.split(".")[0] + }"`; + } + + // result 1 - credential/* + // result 2 - credential/bu + // result 3 - credential/bu "metadata" + // result 4 - credential/bu "metadata" "key" + args = { + bu: `${credName}/${bUnit ? bUnit : '*'}`, + mdtype: type ? `"${type}"` : "", + key: key, + }; + } + log("debug", `CM args passed to DevTools command: ${JSON.stringify(args)}`); + DevToolsCommands.runCommand( + "", + action, + args, + (result: any) => console.log(result) + ) +} + export const devtoolsMain = { initDevToolsExtension, handleStatusBarActions, diff --git a/src/editor/commands.ts b/src/editor/commands.ts index a42e421..dbb2559 100644 --- a/src/editor/commands.ts +++ b/src/editor/commands.ts @@ -2,7 +2,7 @@ import { commands } from "vscode"; interface CommandRegister { command: string, - callbackAction: () => void + callbackAction: (reg: { path: string }) => void } function registerCommand(register: CommandRegister | CommandRegister[]): void { [register] diff --git a/src/editor/containers.ts b/src/editor/containers.ts index 2836522..10c9880 100644 --- a/src/editor/containers.ts +++ b/src/editor/containers.ts @@ -3,57 +3,6 @@ import { window, StatusBarItem, StatusBarAlignment } from "vscode"; -// // TODO - -// export function activateEditorSettings(context: ExtensionContext): void { -// createCommandStatusBar(context); -// createContextMenus(context); -// devToolsExtension.init(); -// } - -// function createCommandStatusBar( { subscriptions }: ExtensionContext): void { - -// let statusBarCredBU: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); -// statusBarCredBU.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.command; -// statusBarCredBU.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; -// statusBarCredBU.show(); - -// let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 100); -// statusBar.command = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.command; -// statusBar.text = devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCommand.title; -// statusBar.show(); - -// subscriptions.push( -// commands.registerCommand(statusBarCredBU.command, () => credentialBUBarHandler(statusBarCredBU)), -// commands.registerCommand(statusBar.command, () => commandBarHandler(statusBarCredBU)) -// ); -// subscriptions.push(statusBarCredBU, statusBar); -// } - -// async function credentialBUBarHandler(statusBarCredBU: StatusBarItem): Promise { -// const selectedCredentialBU = await devToolsExtension.handleCredentialChange(); -// statusBarCredBU.text = selectedCredentialBU ? -// `DT:${selectedCredentialBU}` : -// devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title; -// } - -// function commandBarHandler(statusBarCredBU: StatusBarItem){ -// const { text } = statusBarCredBU; -// devToolsExtension.handleCommandSelection(text === devToolsExtension.DEVTOOLS_STATUS_BAR_CREDBU.dtCredential.title ? -// "" : -// text.split(":")[1] -// ); -// } - -// async function createContextMenus({ subscriptions }: ExtensionContext): Promise { -// subscriptions.push( -// commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_RETRIEVE, -// ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("retrieve", path)), -// commands.registerCommand(devToolsExtension.DEVTOOLS_MENU_ACTION_COMMAND_DEPLOY, -// ({ path }: { path: string}) => devToolsExtension.executeExplorerMenuAction("deploy", path)) -// ); -// } - function createStatusBarItem(command: string, title: string, name: string): StatusBarItem { let statusBar: StatusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 110); statusBar.name = name; diff --git a/src/shared/interfaces/devToolsCommandRunner.ts b/src/shared/interfaces/devToolsCommandRunner.ts new file mode 100644 index 0000000..59ab60a --- /dev/null +++ b/src/shared/interfaces/devToolsCommandRunner.ts @@ -0,0 +1,10 @@ +import DevToolsCommandSetting from "./devToolsCommandSetting"; + +interface DevToolsCommandRunner{ + commandId: string, + commandConfig: DevToolsCommandSetting, + commandArgs: { [key: string]: any }, + commandResultHandler: (result: any) => void +} + +export default DevToolsCommandRunner; \ No newline at end of file diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts index 19f6e5d..aa4964a 100644 --- a/src/shared/utils/lib.ts +++ b/src/shared/utils/lib.ts @@ -28,10 +28,13 @@ function createFilePath(pathArray: string[]): string { return path.join(...pathArray); } - +function capitalizeFirstLetter(text: string): string { + return text.charAt(0).toUpperCase() + text.slice(1); +} export const lib = { parseArrayJsonStringToArray, mapObject, - createFilePath + createFilePath, + capitalizeFirstLetter }; \ No newline at end of file From 954f73339a42e100baff7a9838afd70f8060131c Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Wed, 14 Jun 2023 13:53:07 +0200 Subject: [PATCH 12/24] deploy & retrieve logic updated --- .../commands/DevToolsAdminCommands.ts | 31 +++-- src/devtools/commands/DevToolsCommands.ts | 83 +++++++++++-- .../commands/DevToolsStandardCommands.ts | 77 ++++++------ src/devtools/commands/commands.config.json | 10 +- src/devtools/installer.ts | 16 ++- src/devtools/main.ts | 112 +++--------------- src/devtools/prerequisites.ts | 6 +- src/editor/input.ts | 6 +- .../interfaces/devToolsCommandRunner.ts | 1 + src/shared/utils/terminal.ts | 19 +-- 10 files changed, 174 insertions(+), 187 deletions(-) diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts index 19fb58b..9f4318d 100644 --- a/src/devtools/commands/DevToolsAdminCommands.ts +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -9,7 +9,8 @@ class DevToolsAdminCommands extends DevToolsCommands { private commandMethods: { [key: string]: ( config: DevToolsCommandSetting, - args: {[key: string]: any }, + args: {[key: string]: any }, + path: string, handleResult: (result: any) => void) => void } = {}; @@ -28,12 +29,13 @@ class DevToolsAdminCommands extends DevToolsCommands { commandId, commandConfig, commandArgs, + commandPath, commandResultHandler }: DevToolsCommandRunner = commandRunner; log("debug", `Running DevTools Admin Command for id '${commandId}'.`); if(commandId in this.commandMethods){ - this.commandMethods[commandId](commandConfig, commandArgs, commandResultHandler); + this.commandMethods[commandId](commandConfig, commandArgs, commandPath, commandResultHandler); }else{ log("error", `DevTools Admin Command method for id '${commandId}' is not implemented.`); } @@ -43,22 +45,25 @@ class DevToolsAdminCommands extends DevToolsCommands { this.metadataTypes = mdTypes; } - init(commandConfig: DevToolsCommandSetting, args: {[key: string]: any}){ + init(commandConfig: DevToolsCommandSetting, args: {[key: string]: any}, path: string, handleResult: (result: any) => void){ log("info", `Running DevTools Admin Command: Explain Types...`); - console.log(commandConfig); - console.log(args); + } - explainTypes(config: DevToolsCommandSetting, args: {[key: string]: any }, handleResult: (result: any) => void){ + async explainTypes(config: DevToolsCommandSetting, args: {[key: string]: any }, path: string, handleResult: (result: any) => void){ log("info", `Running DevTools Admin Command: Explain Types...`); - let command: string = ""; if("command" in config && config.command){ - command = config.command; - log("debug", `Explain types basic command: ${command}`); - command = command.replace("{{json}}", args.json ? "--json" : ""); - log("debug", `Explain types final command: ${command}`); - const result = this.executeCommand(command); - handleResult(result); + const commandConfigured: string | undefined = + await this.configureCommandWithParameters( + config, + { json: "json" in args && args.json ? "--json" : ""}, + [] + ); + log("debug", `Explain types final command: ${commandConfigured}`); + const commandResult = this.executeCommand(commandConfigured, path); + handleResult(commandResult); + }else{ + log("error", "DevToolsAdminCommand_explainTypes: Command is empty or missing the configuration."); } } diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 0ee4c1f..ad18cde 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -2,10 +2,12 @@ import * as commandsConfig from "./commands.config.json"; import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; import DevToolsCommandRunner from "../../shared/interfaces/devToolsCommandRunner"; +import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; +import { editorInput } from "../../editor/input"; import { log } from "../../editor/output"; import { lib } from "../../shared/utils/lib"; import { executeSyncTerminalCommand } from "../../shared/utils/terminal"; -import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; +import InputOptionsSettings from "../../shared/interfaces/inputOptionsSettings"; abstract class DevToolsCommands { @@ -15,12 +17,67 @@ abstract class DevToolsCommands { abstract run(commandRunner: DevToolsCommandRunner): void; abstract setMetadataTypes(mdTypes: SupportedMetadataTypes[]): void; - executeCommand(command: string){ - console.log('Final Command = ', command); - return executeSyncTerminalCommand(command); + executeCommand(command: string, path: string){ + log("info", `Running DevTools Command: ${command}`); + return executeSyncTerminalCommand(command, path); + } + + async configureCommandWithParameters( + config: DevToolsCommandSetting, + args: {[key: string]: string }, + mdTypes: SupportedMetadataTypes[]): Promise { + + let { command } = config; + // Configured required Params + if("requiredParams" in config && config.requiredParams.length){ + for(const param of config.requiredParams){ + if(param in args && args[param]){ + command = command.replace(`{{${param}}}`, args[param]); + }else{ + // Requests user + if(param.toLowerCase() === "mdtypes" && mdTypes.length){ + const userSelecteMDTypes: string | undefined = + await this.handleMetadataTypeRequest(mdTypes); + if(userSelecteMDTypes){ + command = command.replace(`{{${param}}}`, `"${userSelecteMDTypes}"`); + } + } + } + } + } + // Configured optional Params + if("optionalParams" in config && config.optionalParams.length){ + config.optionalParams.forEach((param: string) => { + command = command.replace(`{{${param}}}`, param in args ? args[param] : ""); + }); + } + return command; + } + + async handleMetadataTypeRequest(mdTypes: SupportedMetadataTypes[]): Promise { + const mdTypeInputOptions: InputOptionsSettings[] = + mdTypes.map((mdType: SupportedMetadataTypes) => ({ + id: mdType.apiName, + label: mdType.name, + detail: "" + })); + const userResponse: InputOptionsSettings | InputOptionsSettings[] | undefined = + await editorInput.handleQuickPickSelection( + mdTypeInputOptions, + "Please select one or multiple metadata types...", + true + ); + if(userResponse && Array.isArray(userResponse)){ + const mdTypes: string = `${userResponse.map((response: InputOptionsSettings) => response.id)}`; + log("debug", + `User selected metadata types: "${mdTypes}"` + ); + return mdTypes; + } + return; } - static init(){ + static init(path: string){ log("info", "Initializing DevTools Commands..."); if(!this.commandMap){ const commandTypes: {id: string}[] = this.getAllCommandTypes(); @@ -42,7 +99,13 @@ abstract class DevToolsCommands { log("debug", `DevToolsCommands: [${Object.keys(this.commandMap)}]`); log("info", "Get DevTools Supported Metadata Types."); - this.runCommand("admin", "etypes", { json: true }, ((result: any) => { + this.runCommand( + "admin", + "etypes", + path, + { json: true }, + ((result: any) => { + // Parses the list of supported mtdata types const parsedResult: SupportedMetadataTypes[] = JSON.parse(result); if(parsedResult && parsedResult.length){ @@ -58,7 +121,12 @@ abstract class DevToolsCommands { })); } - static runCommand(typeId: string, commandId: string, args: any, handleResult: (result: any)=> void ){ + static runCommand( + typeId: string, + commandId: string, + commandPath: string, + args: any, + handleResult: (result: any)=> void) { // When the DevTools command type is unknown to the application if(!typeId && commandId){ const [{ id }]: { id: string }[] = @@ -89,6 +157,7 @@ abstract class DevToolsCommands { commandId, commandConfig, commandArgs: args, + commandPath, commandResultHandler: handleResult }); return; diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index 7b190e3..aa4b368 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -9,7 +9,8 @@ class DevToolsStandardCommands extends DevToolsCommands { private commandMethods: { [key: string]: ( config: DevToolsCommandSetting, - args: {[key: string]: any }, + args: {[key: string]: any }, + path: string, handleResult: (result: any) => void) => void } = {}; @@ -28,12 +29,13 @@ class DevToolsStandardCommands extends DevToolsCommands { commandId, commandConfig, commandArgs, + commandPath, commandResultHandler }: DevToolsCommandRunner = commandRunner; log("debug", `Running DevTools Standard Command for id '${commandId}'.`); if(commandId in this.commandMethods){ - this.commandMethods[commandId](commandConfig, commandArgs, commandResultHandler); + this.commandMethods[commandId](commandConfig, commandArgs, commandPath, commandResultHandler); }else{ log("error", `DevTools Standard Command method for id '${commandId}' is not implemented.`); } @@ -43,51 +45,44 @@ class DevToolsStandardCommands extends DevToolsCommands { this.metadataTypes = mdTypes; } - retrieve(config: DevToolsCommandSetting, args: {[key: string]: any }, handleResult: (result: any) => void){ + async retrieve(config: DevToolsCommandSetting, args: {[key: string]: string }, path: string, handleResult: (result: any) => void){ log("info", `Running DevTools Standard Command: Retrieve...`); - console.log(config); - console.log(args); + if("command" in config && config.command){ + const supportedMdTypes: SupportedMetadataTypes[] = this.metadataTypes + .filter((mdType: SupportedMetadataTypes) => mdType.supports.retrieve); + const commandConfigured: string | undefined = + await this.configureCommandWithParameters( + config, + args, + supportedMdTypes + ); + log("debug", `Retrieve Command configured: ${commandConfigured}`); + const commandResult: string = this.executeCommand(commandConfigured, path); + handleResult(commandResult); + }else{ + log("error", "DevToolsStandardCommand_retrieve: Command is empty or missing the configuration."); + } } - deploy(config: DevToolsCommandSetting, args: {[key: string]: any }, handleResult: (result: any) => void){ + async deploy(config: DevToolsCommandSetting, args: {[key: string]: any }, path: string, handleResult: (result: any) => void){ log("info", `Running DevTools Standard Command: Deploy...`); - console.log(config); - console.log(args); + if("command" in config && config.command){ + const supportedMdTypes: SupportedMetadataTypes[] = this.metadataTypes + .filter((mdType: SupportedMetadataTypes) => mdType.supports.retrieve); + const commandConfigured: string | undefined = + await this.configureCommandWithParameters( + config, + args, + supportedMdTypes + ); + log("debug", `Deploy Command configured: ${commandConfigured}`); + // const commandResult: string = this.executeCommand(commandConfigured, path); + // handleResult(commandResult); + }else{ + log("error", "DevToolsStandardCommand_deploy: Command is empty or missing the configuration."); + } } - -// retrieve(args: {[key: string]: string}){ -// console.log("Standard - Retrieve Method args = ", args); -// // let [{ command, requiredParams, optionalParams }] = -// // this.commandsConfig.filter(({ id }: { id: string }) => id.toLowerCase() === "retrieve"); -// // if(!command){ -// // // throw error -// // } -// // if(requiredParams && requiredParams.length){ -// // requiredParams.forEach((param: string) => { -// // if(param in args && args[param]){ -// // command = command.replace(`{{${param}}}`, args[param]); -// // }else{ -// // // request user -// // // console.log(this.getSupportedMdTypes()); -// // // const supportedMdTypes = this.getSupportedMdTypes() -// // // .filter(mdType => mdType.supports.retrieve); -// // } -// // }); -// // } -// // if(optionalParams && optionalParams){ -// // optionalParams.forEach((param: string) => { -// // command = command.replace(`{{${param}}}`, -// // param in args ? args[param] : ""); -// // }); -// // } -// // console.log(command); -// // this.executeCommand(command, true); -// } - -// deploy(args: {[key: string]: string}){ -// console.log("Standard - Deploy Method args = ", args); -// } } export default DevToolsStandardCommands; \ No newline at end of file diff --git a/src/devtools/commands/commands.config.json b/src/devtools/commands/commands.config.json index e7237e8..115a049 100644 --- a/src/devtools/commands/commands.config.json +++ b/src/devtools/commands/commands.config.json @@ -16,7 +16,7 @@ "title": "Explain Types", "command": "mcdev explainTypes {{json}}", "requiredParams": [], - "optionalParams": ["--json"], + "optionalParams": ["json"], "description": "Explains metadata types that can be retrieved.", "isAvailable": true } @@ -30,8 +30,8 @@ { "id":"retrieve", "title": "Retrieve", - "command": "mcdev retrieve {{bu}} {{mdtype}} {{key}}", - "requiredParams": ["bu", "mdtype"], + "command": "mcdev retrieve {{bu}} {{mdtypes}} {{key}}", + "requiredParams": ["bu", "mdtypes"], "optionalParams": ["key"], "description": "Retrieves metadata of a business unit.", "isAvailable": true @@ -39,8 +39,8 @@ { "id":"deploy", "title": "Deploy", - "command": "mcdev deploy", - "requiredParams": ["bu", "mdtype"], + "command": "mcdev deploy {{bu}} {{mdtypes}} {{key}}", + "requiredParams": ["bu", "mdtypes"], "optionalParams": ["key"], "description": "Deploys local metadata to a business unit.", "isAvailable": true diff --git a/src/devtools/installer.ts b/src/devtools/installer.ts index 5d2b3bd..f4a895c 100644 --- a/src/devtools/installer.ts +++ b/src/devtools/installer.ts @@ -1,17 +1,20 @@ import { InstallDevToolsResponseOptions, installerConfig } from "../config/installer.config"; import { editorWorkspace } from "../editor/workspace"; +import { editorInput } from "../editor/input"; import { log } from "../editor/output"; import { executeSyncTerminalCommand } from "../shared/utils/terminal"; -import { editorInput } from "../editor/input"; function isDevToolsInstalled(): boolean { try{ // executes mcdev --versio command to check if mcdev is installed // if not installed throws exception - executeSyncTerminalCommand(installerConfig.package.mcdev.version); + executeSyncTerminalCommand( + installerConfig.package.mcdev.version, + editorWorkspace.getWorkspaceURIPath() + ); return true; }catch(error){ - log("debug", "mcdev is not installed."); + log("error", `installer_isDevToolsInstalled: Failed to check if DevTools is installed: ${error}`); return false; } } @@ -23,7 +26,10 @@ function installDevTools(){ editorInput.handleInProgressMessage( "Notification", installerConfig.messages.installingDevToolsProgress, - () => executeSyncTerminalCommand(installerConfig.package.mcdev.install) + () => executeSyncTerminalCommand( + installerConfig.package.mcdev.install, + editorWorkspace.getWorkspaceURIPath() + ) ); log("info", "Reloading workspace window..."); @@ -31,7 +37,7 @@ function installDevTools(){ editorWorkspace.reloadWorkspace(); }catch(error){ log("warning", "Something went wrong! SFMC DevTools installation failed."); - log("error", error); + log("error", `installer_installDevTools: Failed to install DevTools: ${error}`); } } diff --git a/src/devtools/main.ts b/src/devtools/main.ts index a9a0cd7..d92748b 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -11,90 +11,6 @@ import { editorWorkspace } from "../editor/workspace"; import { editorCommands } from "../editor/commands"; import { log } from "../editor/output"; - - - - -// async function handleCommandSelection(credentialBU: string){ -// const typesList: Array = DevToolsCommands.getAllCommandTypes(); -// const selectedType = await editorInput.handleQuickPickSelection( -// convertToCmdOptSettings(typesList), -// COMMAND_INPUT_TITLES["selectType"], -// false); -// if(selectedType && selectedType.id){ -// const commandsList = DevToolsCommands.getCommandsListByType(selectedType.id); -// const selectedDTCommand = await editorInput.handleQuickPickSelection( -// convertToCmdOptSettings(commandsList), -// COMMAND_INPUT_TITLES["selectCmd"], -// false -// ); -// if(selectedDTCommand && selectedDTCommand.id){ -// const dtClass: DevToolsCommands = devTools_commands_types_map[selectedType.id]; -// if(dtClass !== undefined){ -// dtClass.run(selectedDTCommand.id, { -// bu: credentialBU.toLowerCase() === DEVTOOLS_EXTENSION_CONFIG.allPlaceholder.toLowerCase() ? '"*"' : credentialBU -// }); -// } -// } -// } -// } - -// async function getSupportedMetadataTypes(): Promise { -// const { admin }: { admin?: DevToolsCommands } = devTools_commands_types_map; -// if(admin !== undefined){ -// return await new Promise((resolve) => { -// admin.run("etypes", { json: true }, (result: SupportedMetadataTypes[]) => { -// resolve(result); -// }); -// }); -// }else{ -// // throw exception TODO -// return; -// } -// } - -// function executeExplorerMenuAction(action: string, path: string){ -// // Separates the selected folder/file path by the retrieve or deploy action -// const [ path1, path2 ]: Array = path.split(`/${action}/`); -// // Retrieves the all the standard devtools commands -// const { standard }: { standard?: DevToolsCommands} = devTools_commands_types_map; -// if(standard !== undefined){ -// let args: {[key: string]: string} = {}; -// // The user clicked on the top folder (retrieve or deploy) -// if(path1 && !path2 && path1.endsWith(`/${action}`)){ -// args = {bu: `"*"`}; -// } -// // The user clicked on a folder/file inside the top folder (retrieve or deploy) -// if(path2){ -// let [ credName, bUnit, type, ...keys ]: Array = path2.split("/"); -// // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder -// if(type === "asset" && keys.length){ -// // Gets the asset subfolder and asset key -// const [ assetFolder, assetKey ] = keys; -// if(!assetKey){ -// // if user only selected an asset subfolder -// // type will be changed to "asset-[name of the asset subfolder]" -// type = `${type}-${assetFolder}`; -// } -// // if user selects a file inside a subfolder of asset -// // the key will be the name of the file -// keys = assetKey ? [ assetKey ] : []; -// } - -// // result 1 - credential/* -// // result 2 - credential/bu -// // result 3 - credential/bu "metadata" -// // result 4 - credential/bu "metadata" "key" -// args = { -// bu: `${credName}/${bUnit ? bUnit : '*'}`, -// mdtype: type ? `"${type}"` : "", -// key: keys.length ? `"${keys[0].split(".")[0]}"` : "", -// }; -// } -// standard.run(action, args); -// } -// } - async function initDevToolsExtension(){ try{ @@ -152,7 +68,7 @@ async function handleDevToolsRequirements(): Promise{ devtoolsContainers.activateStatusBar(true, DevToolsCommands.commandPrefix); // init DevTools Commands - DevToolsCommands.init(); + DevToolsCommands.init(editorWorkspace.getWorkspaceURIPath()); return; } log("debug", `Missing Pre-requisites: [${prerequisites.missingPrerequisites}]`); @@ -249,14 +165,14 @@ async function changeCredentialsBU(){ })); // Requests user to select one credential option - const selectedCredential: InputOptionsSettings | undefined = + const selectedCredential: InputOptionsSettings | InputOptionsSettings[] | undefined = await editorInput.handleQuickPickSelection( [allPlaceholderOption, ...credentialsOptions], mainConfig.messages.selectCredential, false ); - if(selectedCredential){ + if(selectedCredential && !Array.isArray(selectedCredential)){ log("debug", `User selected '${selectedCredential.label}' credential.`); if(selectedCredential.id === mainConfig.allPlaceholder.toLowerCase()){ // if user selects *All* then status bar should be replaced with it @@ -277,14 +193,14 @@ async function changeCredentialsBU(){ })); // Requests user to select all or one Business Unit - const selectedBU: InputOptionsSettings | undefined = + const selectedBU: InputOptionsSettings | InputOptionsSettings[] | undefined = await editorInput.handleQuickPickSelection( [allPlaceholderOption, ...businessUnitOptions], mainConfig.messages.selectBusinessUnit, false ); - if(selectedBU){ + if(selectedBU && !Array.isArray(selectedBU)){ log("debug", `User selected '${selectedBU.label}' business unit.`); // Modify the credential status bar icon to contain the @@ -316,14 +232,14 @@ async function handleDevToolsSBCommand(){ })); // Requests user to select one DevTools Command Type - const selectedCommandType: InputOptionsSettings | undefined = + const selectedCommandType: InputOptionsSettings | InputOptionsSettings[] | undefined = await editorInput.handleQuickPickSelection( commandTypesOptions, mainConfig.messages.selectCommandType, false ); - if(selectedCommandType){ + if(selectedCommandType && !Array.isArray(selectedCommandType)){ log("debug", `User selected in ${selectedCommandType.label} DevTools Command type.`); const commands: DevToolsCommandSetting[] = DevToolsCommands.getCommandsListByType(selectedCommandType.id); @@ -336,14 +252,14 @@ async function handleDevToolsSBCommand(){ detail: command.description })); // Requests user to select one DevTools Command Type - const selectedCommandOption: InputOptionsSettings | undefined = + const selectedCommandOption: InputOptionsSettings | InputOptionsSettings[] | undefined = await editorInput.handleQuickPickSelection( commandsOptions, mainConfig.messages.selectCommand, false ); - if(selectedCommandOption){ + if(selectedCommandOption && !Array.isArray(selectedCommandOption)){ log("debug", `User selected in ${selectedCommandOption.label} DevTools Command.`); if(devtoolsContainers.isCredentialBUSelected()){ log("info", "Credential/BU is selected..."); @@ -354,8 +270,9 @@ async function handleDevToolsSBCommand(){ DevToolsCommands.runCommand( selectedCommandType.id, selectedCommandOption.id, + editorWorkspace.getWorkspaceURIPath(), { bu: selectedCredentialBU.replace(mainConfig.allPlaceholder, "'*'") }, - (result: any) => console.log(result) + (result: any) => log("info", result) ); }else{ log("error", `main_handleDevToolsCommandSelection: Failed to retrieve Credential/BU.`); @@ -420,7 +337,7 @@ function handleDevToolsCMCommand(action: string, path: string){ // result 4 - credential/bu "metadata" "key" args = { bu: `${credName}/${bUnit ? bUnit : '*'}`, - mdtype: type ? `"${type}"` : "", + mdtypes: type ? `"${type}"` : "", key: key, }; } @@ -428,9 +345,10 @@ function handleDevToolsCMCommand(action: string, path: string){ DevToolsCommands.runCommand( "", action, + projectPath, args, - (result: any) => console.log(result) - ) + (result: any) => log("info", result) + ); } export const devtoolsMain = { diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index 6796b1a..40b5b70 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -4,6 +4,7 @@ import { editorInput } from "../editor/input"; import { editorWebview } from "../editor/webview"; import { log } from "../editor/output"; import { devtoolsInstaller } from "./installer"; +import { editorWorkspace } from "../editor/workspace"; interface PrerequisitesInstalledReturn { prerequisitesInstalled: boolean, @@ -16,7 +17,10 @@ function arePrerequisitesInstalled(): PrerequisitesInstalledReturn { try{ // executes each prerequisite command to check if they are installed in the system // if not installed throws exception - executeSyncTerminalCommand(command); + executeSyncTerminalCommand( + command, + editorWorkspace.getWorkspaceURIPath() + ); }catch(error){ log("debug", `${prerequisite} is not installed.`); prerequisiteResult = { diff --git a/src/editor/input.ts b/src/editor/input.ts index 03ef6c9..54574b9 100644 --- a/src/editor/input.ts +++ b/src/editor/input.ts @@ -2,10 +2,10 @@ import { ProgressLocation, window } from "vscode"; import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; async function handleQuickPickSelection( - optionsList: Array, + optionsList: InputOptionsSettings[], placeHolder: string, - canPickMany: boolean): Promise { - const selectedOption = await window.showQuickPick( + canPickMany: boolean): Promise { + const selectedOption: InputOptionsSettings | InputOptionsSettings[] | undefined = await window.showQuickPick( optionsList, { placeHolder: placeHolder, canPickMany: canPickMany, ignoreFocusOut: true } ); diff --git a/src/shared/interfaces/devToolsCommandRunner.ts b/src/shared/interfaces/devToolsCommandRunner.ts index 59ab60a..ecb559f 100644 --- a/src/shared/interfaces/devToolsCommandRunner.ts +++ b/src/shared/interfaces/devToolsCommandRunner.ts @@ -4,6 +4,7 @@ interface DevToolsCommandRunner{ commandId: string, commandConfig: DevToolsCommandSetting, commandArgs: { [key: string]: any }, + commandPath: string, commandResultHandler: (result: any) => void } diff --git a/src/shared/utils/terminal.ts b/src/shared/utils/terminal.ts index 16af4b4..033d22b 100644 --- a/src/shared/utils/terminal.ts +++ b/src/shared/utils/terminal.ts @@ -1,28 +1,17 @@ import { execSync } from 'child_process'; import { log } from '../../editor/output'; -// import { Terminal, window } from 'vscode'; -// const DEVTOOLS_TERMINAL_NAME: string = 'sfmc-devtools'; // TODO - -export function executeSyncTerminalCommand(command: string): string { +export function executeSyncTerminalCommand(command: string, path: string): string { try { - return execSync(command) + path = path.startsWith("/c:") ? path.replace("/c:", "") : path; + return execSync(command, { cwd: path }) .toString() .trim(); }catch(error){ - log("error", error); + log("error", `terminal_executeSyncTerminalCommand: ${error}`); throw new Error(`Error executing the command: ${command}`); } } -// export async function execInWindowTerminal(command: string): Promise{ -// const activeDevToolsTerminals: Array = window.terminals.filter(term => term.name === DEVTOOLS_TERMINAL_NAME); -// const devToolsTerminal: Terminal = activeDevToolsTerminals.length ? -// activeDevToolsTerminals[0] : -// window.createTerminal(DEVTOOLS_TERMINAL_NAME); -// devToolsTerminal.sendText(command); -// devToolsTerminal.show(); -// } - From 5d2c3c769d7133e1cfcce69bc3349dcf5cc2fad3 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Wed, 14 Jun 2023 22:58:26 +0200 Subject: [PATCH 13/24] initialized method implemented --- src/config/main.config.ts | 8 +++- .../commands/DevToolsAdminCommands.ts | 37 +++++++++++++++++-- src/devtools/commands/DevToolsCommands.ts | 12 +++++- .../commands/DevToolsStandardCommands.ts | 23 +++++++++++- src/devtools/commands/commands.config.json | 10 ++++- src/devtools/containers.ts | 1 - src/devtools/main.ts | 32 +++++++++++++--- src/editor/input.ts | 8 +++- 8 files changed, 114 insertions(+), 17 deletions(-) diff --git a/src/config/main.config.ts b/src/config/main.config.ts index efc05c0..9f9ccb0 100644 --- a/src/config/main.config.ts +++ b/src/config/main.config.ts @@ -6,7 +6,9 @@ export const mainConfig: { selectCredential: string, selectBusinessUnit: string, selectCommandType: string, - selectCommand: string + selectCommand: string, + initDevTools: string, + initiatingDevTools: string, } } = { credentialsFilename: ".mcdevrc.json", @@ -16,6 +18,8 @@ export const mainConfig: { selectCredential: "Select all or one of the credentials below...", selectBusinessUnit: "Select all or one of the business units below...", selectCommandType: "Select one DevTools command type...", - selectCommand: "Select one DevToolsCommand " + selectCommand: "Select one DevTools Command...", + initDevTools: "Do you wish to initialize SFMC DevTools project in the current directory?", + initiatingDevTools: "Initiating SFMC DevTools project..." } }; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts index 9f4318d..2a8deab 100644 --- a/src/devtools/commands/DevToolsAdminCommands.ts +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -1,8 +1,8 @@ -import { log } from "../../editor/output"; import DevToolsCommands from "./DevToolsCommands"; import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; import DevToolsCommandRunner from "../../shared/interfaces/devToolsCommandRunner"; import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; +import { log } from "../../editor/output"; class DevToolsAdminCommands extends DevToolsCommands { @@ -45,8 +45,39 @@ class DevToolsAdminCommands extends DevToolsCommands { this.metadataTypes = mdTypes; } - init(commandConfig: DevToolsCommandSetting, args: {[key: string]: any}, path: string, handleResult: (result: any) => void){ - log("info", `Running DevTools Admin Command: Explain Types...`); + async init(config: DevToolsCommandSetting, args: {[key: string]: any}, path: string, handleResult: (result: any) => void){ + log("info", `Running DevTools Admin Command: Init...`); + const initArgs: {[key: string]: string } = {}; + if("command" in config && config.command){ + for(const param of config.requiredParams){ + const userResponse: string | undefined = await this.handleUserInputBox(param); + if(!userResponse){ + log("debug", `User did not insert a param for '${param}'`); + break; + } + + // Remove all whitespace from response (including spaces, tabs and newline characters) + initArgs[param] = userResponse.replace(/\s/g, ''); + } + log("debug", `Init payload: ${JSON.stringify(initArgs)}`); + + const commandConfigured: string | undefined = + await this.configureCommandWithParameters( + config, + initArgs, + [] + ); + // Checks if the command is still missing so required parameter + if(this.hasPlaceholders(commandConfigured)){ + log("debug", `Required Parameters missing from Init command: ${commandConfigured}`); + return; + } + log("debug", `Init final command: ${commandConfigured}`); + const commandResult = this.executeCommand(commandConfigured, path); + handleResult(commandResult); + }else{ + log("error", "DevToolsAdminCommand_Init: Command is empty or missing the configuration."); + } } diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index ad18cde..9627b68 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -3,11 +3,11 @@ import * as commandsConfig from "./commands.config.json"; import DevToolsCommandSetting from "../../shared/interfaces/devToolsCommandSetting"; import DevToolsCommandRunner from "../../shared/interfaces/devToolsCommandRunner"; import SupportedMetadataTypes from "../../shared/interfaces/supportedMetadataTypes"; +import InputOptionsSettings from "../../shared/interfaces/inputOptionsSettings"; import { editorInput } from "../../editor/input"; import { log } from "../../editor/output"; import { lib } from "../../shared/utils/lib"; import { executeSyncTerminalCommand } from "../../shared/utils/terminal"; -import InputOptionsSettings from "../../shared/interfaces/inputOptionsSettings"; abstract class DevToolsCommands { @@ -77,6 +77,16 @@ abstract class DevToolsCommands { return; } + hasPlaceholders(command: string): boolean { + const pattern: RegExp = /{{.*?}}/g; + return pattern.test(command); + } + + async handleUserInputBox(placeholderText: string): Promise { + const response: string | undefined = await editorInput.handleShowInputBox(placeholderText); + return response; + } + static init(path: string){ log("info", "Initializing DevTools Commands..."); if(!this.commandMap){ diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index aa4b368..e67ebde 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -48,14 +48,24 @@ class DevToolsStandardCommands extends DevToolsCommands { async retrieve(config: DevToolsCommandSetting, args: {[key: string]: string }, path: string, handleResult: (result: any) => void){ log("info", `Running DevTools Standard Command: Retrieve...`); if("command" in config && config.command){ + // Gets that metadata types that are supported for retrieve const supportedMdTypes: SupportedMetadataTypes[] = this.metadataTypes .filter((mdType: SupportedMetadataTypes) => mdType.supports.retrieve); + + // Configures the command to replace all the parameters with the values const commandConfigured: string | undefined = await this.configureCommandWithParameters( config, args, supportedMdTypes ); + + // Checks if the command is still missing so required parameter + if(this.hasPlaceholders(commandConfigured)){ + log("debug", `Required Parameters missing from Retrieve command: ${commandConfigured}`); + return; + } + log("debug", `Retrieve Command configured: ${commandConfigured}`); const commandResult: string = this.executeCommand(commandConfigured, path); handleResult(commandResult); @@ -67,8 +77,11 @@ class DevToolsStandardCommands extends DevToolsCommands { async deploy(config: DevToolsCommandSetting, args: {[key: string]: any }, path: string, handleResult: (result: any) => void){ log("info", `Running DevTools Standard Command: Deploy...`); if("command" in config && config.command){ + // Gets that metadata types that are supported for deploy const supportedMdTypes: SupportedMetadataTypes[] = this.metadataTypes .filter((mdType: SupportedMetadataTypes) => mdType.supports.retrieve); + + // Configures the command to replace all the parameters with the values const commandConfigured: string | undefined = await this.configureCommandWithParameters( config, @@ -76,9 +89,15 @@ class DevToolsStandardCommands extends DevToolsCommands { supportedMdTypes ); + // Checks if the command is still missing so required parameter + if(this.hasPlaceholders(commandConfigured)){ + log("debug", `Required Parameters missing from Deploy command: ${commandConfigured}`); + return; + } + log("debug", `Deploy Command configured: ${commandConfigured}`); - // const commandResult: string = this.executeCommand(commandConfigured, path); - // handleResult(commandResult); + const commandResult: string = this.executeCommand(commandConfigured, path); + handleResult(commandResult); }else{ log("error", "DevToolsStandardCommand_deploy: Command is empty or missing the configuration."); } diff --git a/src/devtools/commands/commands.config.json b/src/devtools/commands/commands.config.json index 115a049..8189523 100644 --- a/src/devtools/commands/commands.config.json +++ b/src/devtools/commands/commands.config.json @@ -4,7 +4,15 @@ "title": "Admin Command", "isAvailable": true, "commands": [ - {"id":"init", "title": "Init", "command": "mcdev init", "requiredParams": [], "optionalParams": [], "description": "Initates SFMC DevTools or adds additional credentials to your project.", "isAvailable": true}, + { + "id":"init", + "title": "Init", + "command": "mcdev init --y.credentialName {{credentialName}} --y.client_id {{client_id}} --y.client_secret {{client_secret}} --y.auth_url {{auth_url}} --y.gitRemoteUrl {{gitRemoteUrl}} --y.account_id {{account_id}}", + "requiredParams": ["credentialName", "client_id", "client_secret", "auth_url", "gitRemoteUrl", "account_id"], + "optionalParams": [], + "description": "Initates SFMC DevTools or adds additional credentials to your project.", + "isAvailable": true + }, {"id":"join", "title": "Join", "command": "", "requiredParams": [], "optionalParams": [], "description": "Clones an existing project from git.", "isAvailable": false}, {"id":"upgrade", "title": "Upgrade", "command": "", "requiredParams": [], "optionalParams": [], "description": "Add NPM dependencies and IDE configuration files to your project.", "isAvailable": false}, {"id":"rbus", "title": "Reload BUs", "command": "", "requiredParams": [], "optionalParams": [], "description": "Loads the list of available BUs from the server and saves it in your project.", "isAvailable": false}, diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts index 16e118d..b447588 100644 --- a/src/devtools/containers.ts +++ b/src/devtools/containers.ts @@ -4,7 +4,6 @@ import { ExtensionContext, editorContext } from "../editor/context"; import { StatusBarItem, editorContainers } from "../editor/containers"; import { editorCommands } from "../editor/commands"; import { log } from "../editor/output"; -import DevToolsCommands from "./commands/DevToolsCommands"; // Contains all the status bars that are displayed in the extension let statusBarContainer: StatusBarItem | StatusBarItem[]; diff --git a/src/devtools/main.ts b/src/devtools/main.ts index d92748b..6066bc8 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -10,6 +10,7 @@ import { editorContext } from "../editor/context"; import { editorWorkspace } from "../editor/workspace"; import { editorCommands } from "../editor/commands"; import { log } from "../editor/output"; +import { InstallDevToolsResponseOptions } from "../config/installer.config"; async function initDevToolsExtension(){ @@ -29,7 +30,7 @@ async function initDevToolsExtension(){ // If it's already a mcdev project it will check if prerequisites and devtools are installed if(isDevtoolsProject){ - await handleDevToolsRequirements(); + await handleDevToolsRequirements(true); return; } @@ -52,7 +53,7 @@ async function isADevToolsProject(): Promise { return findMcdevFiles.every((result: boolean) => result === true); } -async function handleDevToolsRequirements(): Promise{ +async function handleDevToolsRequirements(isDevToolsProject: boolean): Promise{ log("info", "Checking SFMC DevTools requirements..."); const prerequisites: PrerequisitesInstalledReturn = devtoolsPrerequisites.arePrerequisitesInstalled(); log("info", `SFMC Pre-Requisites ${ @@ -64,8 +65,12 @@ async function handleDevToolsRequirements(): Promise{ return; } log("info", "SFMC DevTools is installed."); - // activate status bar immediately when isDevToolsProject is false - devtoolsContainers.activateStatusBar(true, DevToolsCommands.commandPrefix); + + // Needs to check if it's a DevTools Project or not + if(isDevToolsProject){ + // activate status bar immediately when isDevToolsProject is true + devtoolsContainers.activateStatusBar(true, DevToolsCommands.commandPrefix); + } // init DevTools Commands DevToolsCommands.init(editorWorkspace.getWorkspaceURIPath()); @@ -285,8 +290,23 @@ async function handleDevToolsSBCommand(){ } } -function initialize(){ - log("debug", "Initialize DevTools status bar command"); +async function initialize(){ + await handleDevToolsRequirements(false); + + const userResponse: string | undefined = await editorInput.handleShowInformationMessage( + mainConfig.messages.initDevTools, + Object.keys(InstallDevToolsResponseOptions).filter((v) => isNaN(Number(v))) + ); + + if(userResponse && + InstallDevToolsResponseOptions[userResponse as keyof typeof InstallDevToolsResponseOptions]){ + log("info", "Initializing SFMC DevTools project..."); + DevToolsCommands.runCommand("", "init", editorWorkspace.getWorkspaceURIPath(), [], (result: any) => { + log("debug", result); + editorWorkspace.reloadWorkspace(); + }); + + } } function handleDevToolsCMCommand(action: string, path: string){ diff --git a/src/editor/input.ts b/src/editor/input.ts index 54574b9..818fc9e 100644 --- a/src/editor/input.ts +++ b/src/editor/input.ts @@ -17,6 +17,11 @@ async function handleShowInformationMessage(message: string, actions: string[]): return response; } +async function handleShowInputBox(placeHolder: string): Promise { + const response: string | undefined = await window.showInputBox({ placeHolder, ignoreFocusOut: true}); + return response; +} + async function handleInProgressMessage(local: string, reportMessage: string, callbackFn: () => void ){ await window.withProgress({ location: ProgressLocation[local as keyof typeof ProgressLocation]}, async(progress) => { @@ -29,5 +34,6 @@ async function handleInProgressMessage(local: string, reportMessage: string, cal export const editorInput = { handleQuickPickSelection, handleShowInformationMessage, - handleInProgressMessage + handleInProgressMessage, + handleShowInputBox }; \ No newline at end of file From d314300d75c4670df29b2384391729a4b48780e5 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Tue, 20 Jun 2023 13:41:17 +0200 Subject: [PATCH 14/24] subfolders logic implementation --- package.json | 4 +- src/config/installer.config.ts | 2 +- .../commands/DevToolsAdminCommands.ts | 47 ++-- src/devtools/commands/DevToolsCommands.ts | 34 ++- .../commands/DevToolsStandardCommands.ts | 4 +- src/devtools/helpers/initHelper.ts | 79 ------- src/devtools/installer.ts | 82 ++++--- src/devtools/main.ts | 206 +++++++++++------- src/devtools/prerequisites.ts | 62 ++++-- src/editor/commands.ts | 2 +- src/editor/input.ts | 16 +- src/editor/workspace.ts | 25 ++- src/extension.ts | 2 +- .../interfaces/terminalCommandRunner.ts | 8 + src/shared/utils/lib.ts | 15 +- src/shared/utils/terminal.ts | 33 ++- 16 files changed, 347 insertions(+), 274 deletions(-) delete mode 100644 src/devtools/helpers/initHelper.ts create mode 100644 src/shared/interfaces/terminalCommandRunner.ts diff --git a/package.json b/package.json index 3a30d86..a1c9e5a 100644 --- a/package.json +++ b/package.json @@ -34,12 +34,12 @@ "menus": { "explorer/context": [ { - "when": "resourcePath =~ /retrieve/ && sfmc-devtools-vscext.isDevToolsProject", + "when": "resourcePath =~ /retrieve/", "command": "sfmc-devtools-vscext.devtoolsCMRetrieve", "group": "devtools" }, { - "when": "resourcePath =~ /deploy/ && sfmc-devtools-vscext.isDevToolsProject", + "when": "resourcePath =~ /deploy/", "command": "sfmc-devtools-vscext.devtoolsCMDeploy", "group": "devtools" } diff --git a/src/config/installer.config.ts b/src/config/installer.config.ts index c2c9f19..8fb2a07 100644 --- a/src/config/installer.config.ts +++ b/src/config/installer.config.ts @@ -18,6 +18,6 @@ export const installerConfig: { messages: { noDevToolsInstalled: "SFMC DevTools could not be located on your system.", askUserToInstallDevTools: "Would you like to install SFMC DevTools?", - installingDevToolsProgress: "Please wait while SFMC DevTools is being installed (window will reload after completation)." + installingDevToolsProgress: "Please wait while SFMC DevTools is being installed..." } }; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts index 2a8deab..7ef9370 100644 --- a/src/devtools/commands/DevToolsAdminCommands.ts +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -11,10 +11,9 @@ class DevToolsAdminCommands extends DevToolsCommands { config: DevToolsCommandSetting, args: {[key: string]: any }, path: string, - handleResult: (result: any) => void) + handleResult: (result?: any) => void) => void } = {}; - private metadataTypes: SupportedMetadataTypes[] = []; constructor(){ super(); log("debug", "DevToolsAdminCommands Class created"); @@ -41,11 +40,9 @@ class DevToolsAdminCommands extends DevToolsCommands { } } - setMetadataTypes(mdTypes: SupportedMetadataTypes[]): void { - this.metadataTypes = mdTypes; - } + setMetadataTypes(_: SupportedMetadataTypes[]): void {} - async init(config: DevToolsCommandSetting, args: {[key: string]: any}, path: string, handleResult: (result: any) => void){ + async init(config: DevToolsCommandSetting, _: {[key: string]: any}, path: string, handleResult: (result?: any) => void){ log("info", `Running DevTools Admin Command: Init...`); const initArgs: {[key: string]: string } = {}; if("command" in config && config.command){ @@ -73,8 +70,8 @@ class DevToolsAdminCommands extends DevToolsCommands { return; } log("debug", `Init final command: ${commandConfigured}`); - const commandResult = this.executeCommand(commandConfigured, path); - handleResult(commandResult); + await this.executeCommand(commandConfigured, path, true); + handleResult(); }else{ log("error", "DevToolsAdminCommand_Init: Command is empty or missing the configuration."); } @@ -82,22 +79,28 @@ class DevToolsAdminCommands extends DevToolsCommands { } async explainTypes(config: DevToolsCommandSetting, args: {[key: string]: any }, path: string, handleResult: (result: any) => void){ - log("info", `Running DevTools Admin Command: Explain Types...`); - if("command" in config && config.command){ - const commandConfigured: string | undefined = - await this.configureCommandWithParameters( - config, - { json: "json" in args && args.json ? "--json" : ""}, - [] - ); - log("debug", `Explain types final command: ${commandConfigured}`); - const commandResult = this.executeCommand(commandConfigured, path); - handleResult(commandResult); - }else{ - log("error", "DevToolsAdminCommand_explainTypes: Command is empty or missing the configuration."); + try{ + log("info", `Running DevTools Admin Command: Explain Types...`); + if("command" in config && config.command){ + const commandConfigured: string | undefined = + await this.configureCommandWithParameters( + config, + { json: "json" in args && args.json ? "--json" : ""}, + [] + ); + log("debug", `Explain types final command: ${commandConfigured}`); + const commandResult = await this.executeCommand( + commandConfigured, + path, + !("json" in args)); + handleResult(commandResult); + }else{ + log("error", "DevToolsAdminCommand_explainTypes: Command is empty or missing the configuration."); + } + }catch(error){ + log("error", `DevToolsAdminCommand_explainTypes Error: ${error}`); } } - } export default DevToolsAdminCommands; \ No newline at end of file diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 9627b68..87d13f1 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -7,7 +7,7 @@ import InputOptionsSettings from "../../shared/interfaces/inputOptionsSettings"; import { editorInput } from "../../editor/input"; import { log } from "../../editor/output"; import { lib } from "../../shared/utils/lib"; -import { executeSyncTerminalCommand } from "../../shared/utils/terminal"; +import { terminal } from "../../shared/utils/terminal"; abstract class DevToolsCommands { @@ -17,9 +17,33 @@ abstract class DevToolsCommands { abstract run(commandRunner: DevToolsCommandRunner): void; abstract setMetadataTypes(mdTypes: SupportedMetadataTypes[]): void; - executeCommand(command: string, path: string){ + executeCommand(command: string, path: string, showOnTerminal: boolean): Promise{ log("info", `Running DevTools Command: ${command}`); - return executeSyncTerminalCommand(command, path); + return new Promise(async resolve => { + terminal.executeTerminalCommand({ + command: command, + args: [], + cwd: path, + handleResult(error: string | null, output: string | null, code: number | null) { + if(code !== null){ + log("debug", `[DevToolsCommands_executeCommand] Exit Code: '${code}'`); + resolve(""); + } + if (error) { + log("error", + `[DevToolsCommands_executeCommand] Exit Code: ${error}` + ); + } + if (output) { + if(showOnTerminal){ + log("debug", output); + }else{ + resolve(output); + } + } + }, + }); + }); } async configureCommandWithParameters( @@ -27,6 +51,7 @@ abstract class DevToolsCommands { args: {[key: string]: string }, mdTypes: SupportedMetadataTypes[]): Promise { + log("debug", `ConfigureCommandWithParameters: ${JSON.stringify(config)}`); let { command } = config; // Configured required Params if("requiredParams" in config && config.requiredParams.length){ @@ -115,7 +140,6 @@ abstract class DevToolsCommands { path, { json: true }, ((result: any) => { - // Parses the list of supported mtdata types const parsedResult: SupportedMetadataTypes[] = JSON.parse(result); if(parsedResult && parsedResult.length){ @@ -136,7 +160,7 @@ abstract class DevToolsCommands { commandId: string, commandPath: string, args: any, - handleResult: (result: any)=> void) { + handleResult: (result: any) => void) { // When the DevTools command type is unknown to the application if(!typeId && commandId){ const [{ id }]: { id: string }[] = diff --git a/src/devtools/commands/DevToolsStandardCommands.ts b/src/devtools/commands/DevToolsStandardCommands.ts index e67ebde..c728a04 100644 --- a/src/devtools/commands/DevToolsStandardCommands.ts +++ b/src/devtools/commands/DevToolsStandardCommands.ts @@ -67,7 +67,7 @@ class DevToolsStandardCommands extends DevToolsCommands { } log("debug", `Retrieve Command configured: ${commandConfigured}`); - const commandResult: string = this.executeCommand(commandConfigured, path); + const commandResult: Promise = this.executeCommand(commandConfigured, path, true); handleResult(commandResult); }else{ log("error", "DevToolsStandardCommand_retrieve: Command is empty or missing the configuration."); @@ -96,7 +96,7 @@ class DevToolsStandardCommands extends DevToolsCommands { } log("debug", `Deploy Command configured: ${commandConfigured}`); - const commandResult: string = this.executeCommand(commandConfigured, path); + const commandResult: Promise = this.executeCommand(commandConfigured, path, true); handleResult(commandResult); }else{ log("error", "DevToolsStandardCommand_deploy: Command is empty or missing the configuration."); diff --git a/src/devtools/helpers/initHelper.ts b/src/devtools/helpers/initHelper.ts deleted file mode 100644 index 095919c..0000000 --- a/src/devtools/helpers/initHelper.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* eslint-disable @typescript-eslint/naming-convention */ -// import { window, ExtensionContext } from 'vscode'; -// import { activateEditorSettings } from '../../editor/editorSettings'; -// import { execInWindowTerminal } from '../../shared/utils/terminal'; -// import { isFileInFolder } from '../../shared/utils/file'; - -// interface DevToolsForm { -// credentialName: string, -// client_id: string, -// client_secret: string, -// auth_url: string, -// account_id: string, -// gitRemoteUrl: string -// }; -// const INIT_DEVTOOLS_CMD: string = 'mcdev init'; -// const INIT_DEVTOOLS_FILES: Array = [".mcdevrc.json", ".mcdev-auth.json"]; -// const INIT_FORM_PLACEHOLDERS: { [key: string]: string } = { -// credentialName: 'Type the Credential name of your Business Unit...', -// client_id: 'Type the Salesforce Marketing Cloud client ID...', -// client_secret: 'Type the Salesforce Marketing Cloud client secret...', -// auth_url: 'Type the Salesforce Marketing Cloud Authentication Base URI...', -// account_id: 'Type the Salesforce Marketing Cloud MID of the parent BU...', -// gitRemoteUrl: 'Type the URL of your git remote repository...' -// }; - -// const MESSAGES: {[key: string]: string } = { -// initDevToolsRequest: "Do you wish to initialize SFMC DevTools?", -// initDevTools: "Initalizing DevTools..." -// }; - -// export async function initHelper(context: ExtensionContext){ -// const isInitiated = await isProjectInitiated(); -// if(!isInitiated){ -// let response = await window.showInformationMessage(MESSAGES['initDevToolsRequest'], ...["Yes", "No"]); -// if(response && response.toLowerCase() === "yes"){ -// await initializeDevTools(); -// activateEditorSettings(context); -// } -// }else{ -// activateEditorSettings(context); -// } -// } - -// async function initializeDevTools(){ -// let inputForm: DevToolsForm = { -// credentialName: '', -// client_id: ' ', -// client_secret: '', -// auth_url: '', -// account_id: '', -// gitRemoteUrl: '' -// }; - -// for(const key in inputForm){ -// do{ -// inputForm = { -// ...inputForm, -// [key]: await window.showInputBox({ -// placeHolder: INIT_FORM_PLACEHOLDERS[key], -// ignoreFocusOut: true -// }) -// }; -// }while( -// inputForm[key as keyof DevToolsForm] === '' || -// inputForm[key as keyof DevToolsForm] === undefined -// ); -// } - -// const initCmd: string = Object.keys(inputForm).reduce( -// (prevValue, currValue) => (prevValue += ` --y.${currValue} ${inputForm[currValue as keyof DevToolsForm]}`), -// INIT_DEVTOOLS_CMD -// ); -// execInWindowTerminal(initCmd); -// } - -// async function isProjectInitiated(){ -// const fileExistsList = await Promise.all(INIT_DEVTOOLS_FILES.map(async file => await isFileInFolder(file))); -// return fileExistsList.every(res => res === true); -// } \ No newline at end of file diff --git a/src/devtools/installer.ts b/src/devtools/installer.ts index f4a895c..69808e3 100644 --- a/src/devtools/installer.ts +++ b/src/devtools/installer.ts @@ -2,42 +2,68 @@ import { InstallDevToolsResponseOptions, installerConfig } from "../config/insta import { editorWorkspace } from "../editor/workspace"; import { editorInput } from "../editor/input"; import { log } from "../editor/output"; -import { executeSyncTerminalCommand } from "../shared/utils/terminal"; +import { terminal } from "../shared/utils/terminal"; +import { lib } from "../shared/utils/lib"; -function isDevToolsInstalled(): boolean { - try{ - // executes mcdev --versio command to check if mcdev is installed - // if not installed throws exception - executeSyncTerminalCommand( - installerConfig.package.mcdev.version, - editorWorkspace.getWorkspaceURIPath() - ); - return true; - }catch(error){ - log("error", `installer_isDevToolsInstalled: Failed to check if DevTools is installed: ${error}`); - return false; - } +async function isDevToolsInstalled(): Promise { + return new Promise(resolve => { + terminal.executeTerminalCommand({ + command: installerConfig.package.mcdev.version, + args: [], + cwd: editorWorkspace.getWorkspaceURIPath(), + handleResult(error: string | null, output: string | null, code: number | null) { + if(code !== null){ + log("debug", `[installer_isDevToolsInstalled] Exit Code: '${code}'`); + } + if(output){ + log("debug", `[installer_isDevToolsInstalled] Output: '${output}'`); + resolve(output.length > 0); + } + if(error){ + log("error", `[installer_isDevToolsInstalled] Error: '${error}'`); + resolve(false); + } + }, + }); + }); } -function installDevTools(){ +async function installDevTools(): Promise{ try{ log("info", "Installing SFMC DevTools..."); - - editorInput.handleInProgressMessage( + await editorInput.handleInProgressMessage( "Notification", - installerConfig.messages.installingDevToolsProgress, - () => executeSyncTerminalCommand( - installerConfig.package.mcdev.install, - editorWorkspace.getWorkspaceURIPath() - ) + (progress) => { + progress.report({message: installerConfig.messages.installingDevToolsProgress}); + return new Promise(resolve => { + terminal.executeTerminalCommand({ + command: installerConfig.package.mcdev.install, + args: [], + cwd: editorWorkspace.getWorkspaceURIPath(), + handleResult: (error: string | null, output: string | null, code: number | null) => { + if(output){ + log("info", output); + } + if(error){ + log("error", `[installer_installDevTools] Exit Code ${error}`); + } + if(code !== null){ + log("debug", `[installer_installDevTools] Exit Code ${code}`); + resolve(); + } + }, + }); + }); + } ); - - log("info", "Reloading workspace window..."); - // Reloads the workspace after DevTools installation - editorWorkspace.reloadWorkspace(); + log("info", "Reloading VSCode workspace window..."); + lib.waitTime(5000, () => { + // Reloads the workspace after DevTools installation + editorWorkspace.reloadWorkspace(); + }); }catch(error){ log("warning", "Something went wrong! SFMC DevTools installation failed."); - log("error", `installer_installDevTools: Failed to install DevTools: ${error}`); + log("error", `[installer_installDevTools] Failed to install DevTools: ${error}`); } } @@ -53,7 +79,7 @@ async function noDevToolsHandler(){ Object.keys(InstallDevToolsResponseOptions).filter((v) => isNaN(Number(v))) ); - log("debug", `noDevToolsHandler: user response = ${userResponse}`); + log("debug", `[installer_noDevToolsHandler] User Response = ${userResponse}`); if(userResponse && InstallDevToolsResponseOptions[userResponse as keyof typeof InstallDevToolsResponseOptions]){ diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 6066bc8..12b93e9 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -8,45 +8,44 @@ import { devtoolsContainers } from "./containers"; import { editorInput } from "../editor/input"; import { editorContext } from "../editor/context"; import { editorWorkspace } from "../editor/workspace"; -import { editorCommands } from "../editor/commands"; import { log } from "../editor/output"; import { InstallDevToolsResponseOptions } from "../config/installer.config"; +import { lib } from "../shared/utils/lib"; -async function initDevToolsExtension(){ +async function initDevToolsExtension(): Promise{ try{ log("info", "Running SFMC DevTools extension..."); - const isDevtoolsProject: boolean = await isADevToolsProject(); - // Executes the command setContext to indicate if the project - // is a DevTools Project or not - editorCommands.executeCommand( - "setContext", - [`sfmc-devtools-vscext.isDevToolsProject`, isDevtoolsProject] - ); - // activate the context menus options devtoolsContainers.activateContextMenuCommands(); // If it's already a mcdev project it will check if prerequisites and devtools are installed - if(isDevtoolsProject){ + if(await isADevToolsProject()){ await handleDevToolsRequirements(true); return; + }else{ + // activate status bar immediately when isDevToolsProject is false + devtoolsContainers.activateStatusBar(false, DevToolsCommands.commandPrefix); + if(await anySubFolderIsDevToolsProject()){ + log("debug", "One or more subfolders is a DevTools project."); + // init DevTools Commands + DevToolsCommands.init(editorWorkspace.getWorkspaceURIPath()); + } } - - // activate status bar immediately when isDevToolsProject is false - devtoolsContainers.activateStatusBar(false, DevToolsCommands.commandPrefix); - }catch(error){ - log("error", `main_initDevToolsExtension: ${error}`); + log("error", `[main_initDevToolsExtension] Error: ${error}`); } } -async function isADevToolsProject(): Promise { +async function isADevToolsProject(projectName?: string): Promise { log("info", "Checking if folder is a SFMC DevTools project..."); log("debug", `DevTools files: [${mainConfig.requiredFiles}]`); + const findMcdevFiles: boolean[] = await Promise.all(mainConfig.requiredFiles - .map(async(filename: string) => editorWorkspace.isFileInFolder(filename))); + .map(async(filename: string) => editorWorkspace.isFileInFolder( + `${projectName || '' }${filename}` + ))); log("info", `Folder ${findMcdevFiles.every((result: boolean) => result === true) ? 'is' : 'is not'} a SFMC DevTools project.` ); @@ -55,12 +54,13 @@ async function isADevToolsProject(): Promise { async function handleDevToolsRequirements(isDevToolsProject: boolean): Promise{ log("info", "Checking SFMC DevTools requirements..."); - const prerequisites: PrerequisitesInstalledReturn = devtoolsPrerequisites.arePrerequisitesInstalled(); + const prerequisites: PrerequisitesInstalledReturn = await devtoolsPrerequisites.arePrerequisitesInstalled(); log("info", `SFMC Pre-Requisites ${ prerequisites.prerequisitesInstalled ? 'are' : 'are not' } installed.`); if(prerequisites.prerequisitesInstalled){ - if(!devtoolsInstaller.isDevToolsInstalled()){ + const isDevToolsInstalled: boolean = await devtoolsInstaller.isDevToolsInstalled(); + if(!isDevToolsInstalled){ await devtoolsInstaller.noDevToolsHandler(); return; } @@ -83,7 +83,19 @@ async function handleDevToolsRequirements(isDevToolsProject: boolean): Promise { + const subFolders: string[] = await editorWorkspace.getWorkspaceSubFolders(); + if(subFolders.length){ + const subFolderProjects: boolean[] = + await Promise.all(subFolders.map(async (sf: string) => await isADevToolsProject(sf + "/"))); + return subFolderProjects.some((sfResult: boolean) => sfResult); + }else{ + log("debug", "Workspace don't contain any sub folders."); + } + return false; +} + +function handleStatusBarActions(action: string): void { log("debug", "Setting Status Bar Actions..."); log("debug", `Action: ${action}`); switch(action.toLowerCase()){ @@ -101,7 +113,7 @@ function handleStatusBarActions(action: string){ } } -function handleContextMenuActions(action: string, path: string){ +function handleContextMenuActions(action: string, path: string): void { log("debug", "Setting Context Menu Actions..."); log("debug", `Action: ${action} Path: ${path}`); switch(action.toLowerCase()){ @@ -141,15 +153,16 @@ async function getCredentialsBU(): Promise<{[key: string]: string[] } | undefine } }, {}); } - log("error", `main_getCredentialsBU: Could not find any credentials in the '${mainConfig.credentialsFilename}' file.`); - return; + log("error", + `[main_getCredentialsBU] Error: Could not find any credentials in the '${mainConfig.credentialsFilename}' file.` + ); }catch(error){ - log("error", `main_getCredentialsBU: ${error}`); - return; + log("error", `[main_getCredentialsBU] Error: ${error}`); } + return; } -async function changeCredentialsBU(){ +async function changeCredentialsBU(): Promise{ log("info", "Changing SFMC DevTools credententials/bu..."); const credentialsBUList: {[key: string]: string[]} | undefined = await getCredentialsBU(); @@ -219,11 +232,11 @@ async function changeCredentialsBU(){ } } }else{ - log("error", "main_changeCredentialsBU: CredentialBU List is undefined."); + log("error", "[main_changeCredentialsBU] Error: CredentialBU List is undefined."); } } -async function handleDevToolsSBCommand(){ +async function handleDevToolsSBCommand(): Promise{ log("info", "Selecting SB SFMC DevTools command..."); const devToolsCommandTypes: {id: string, title: string}[] = DevToolsCommands.getAllCommandTypes(); @@ -280,7 +293,9 @@ async function handleDevToolsSBCommand(){ (result: any) => log("info", result) ); }else{ - log("error", `main_handleDevToolsCommandSelection: Failed to retrieve Credential/BU.`); + log("error", + `[main_handleDevToolsCommandSelection] Error: Failed to retrieve Credential/BU.` + ); } }else{ // show error TODO @@ -290,7 +305,7 @@ async function handleDevToolsSBCommand(){ } } -async function initialize(){ +async function initialize(): Promise{ await handleDevToolsRequirements(false); const userResponse: string | undefined = await editorInput.handleShowInformationMessage( @@ -301,74 +316,97 @@ async function initialize(){ if(userResponse && InstallDevToolsResponseOptions[userResponse as keyof typeof InstallDevToolsResponseOptions]){ log("info", "Initializing SFMC DevTools project..."); - DevToolsCommands.runCommand("", "init", editorWorkspace.getWorkspaceURIPath(), [], (result: any) => { - log("debug", result); - editorWorkspace.reloadWorkspace(); + DevToolsCommands.runCommand("", "init", editorWorkspace.getWorkspaceURIPath(), [], () => { + log("info", "Reloading VSCode workspace window..."); + lib.waitTime(5000, () => editorWorkspace.reloadWorkspace()); }); - } } -function handleDevToolsCMCommand(action: string, path: string){ +async function handleDevToolsCMCommand(action: string, path: string): Promise{ log("info", "Selecting CM SFMC DevTools command..."); + try{ - let args: {[key: string]: string } = {}; - const [ projectPath, cmPath ]: string[] = path.split(`/${action}/`);; + let args: {[key: string]: string } = {}; + let [ projectPath, cmPath ]: string[] = path.split(`/${action}`); - const workspaceUriFolder = editorWorkspace.getWorkspaceURIPath(); + const workspaceFolderPath: string = editorWorkspace.getWorkspaceURIPath(); - log("debug", `Current workspace folder path: ${workspaceUriFolder}`); - log("debug", `Context Menu Action path: ${projectPath}`); + log("debug", `Current workspace folder path: ${workspaceFolderPath}`); + log("debug", `Project path: ${projectPath}`); + log("debug", `Context Menu path: ${cmPath}`); - log("debug", `Context Menu Action outside of project directory? = ${workspaceUriFolder !== projectPath}`); + log("info", `Project ${workspaceFolderPath === projectPath ? 'is': 'is not'} the workspace folder.`); - if(projectPath && !cmPath && projectPath.endsWith(`/${action}`)){ - args = { bu: `"*"` }; - } + // Check if context menu being triggered is from outside of the workspace folder + if(workspaceFolderPath !== projectPath){ + const projectName: string = lib.getProjectNameFromPath(projectPath); + const isSubFolderDevToolsProject: boolean = + await isADevToolsProject( + projectName + "/" + ); + log("info", + `SubFolder project '${projectPath}' ${ isSubFolderDevToolsProject ? 'is': 'is not'} a DevTools Project.` + ); + if(!isSubFolderDevToolsProject){ + editorInput.handleShowErrorMessage(`Folder '${projectName}' is not a SFMC DevTools Project.`); + return; + } + } - if(cmPath){ - let [ credName, bUnit, type, ...keys ]: string[] = cmPath.split("/"); - let key: string = ""; - // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder - if(type === "asset" && keys.length){ - // Gets the asset subfolder and asset key - const [ assetFolder, assetKey ] = keys; - if(!assetKey){ - // if user only selected an asset subfolder - // type will be changed to "asset-[name of the asset subfolder]" - type = `${type}-${assetFolder}`; - } - // if user selects a file inside a subfolder of asset - // the key will be the name of the file - keys = assetKey ? [ assetKey ] : []; + if(projectPath && !cmPath){ + args = { bu: `"*"` }; + log("debug", `Updated project path for '${action} "*"': ${projectPath}.`); } - - if(keys.length){ - const [ typeKey ]: string[] = keys; - key = `"${typeKey.startsWith(".") ? - '.' + typeKey.substring(1).split(".")[0] : - typeKey.split(".")[0] - }"`; + + if(cmPath){ + let [ credName, bUnit, type, ...keys ]: string[] = cmPath.substring(1).split("/"); + let key: string = ""; + // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder + if(type === "asset" && keys.length){ + // Gets the asset subfolder and asset key + const [ assetFolder, assetKey ] = keys; + if(!assetKey){ + // if user only selected an asset subfolder + // type will be changed to "asset-[name of the asset subfolder]" + type = `${type}-${assetFolder}`; + } + // if user selects a file inside a subfolder of asset + // the key will be the name of the file + keys = assetKey ? [ assetKey ] : []; + } + + if(keys.length){ + const [ typeKey ]: string[] = keys; + key = `"${typeKey.startsWith(".") ? + '.' + typeKey.substring(1).split(".")[0] : + typeKey.split(".")[0] + }"`; + } + + // result 1 - credential/* + // result 2 - credential/bu + // result 3 - credential/bu "metadata" + // result 4 - credential/bu "metadata" "key" + args = { + bu: `${credName}/${bUnit ? bUnit : '*'}`, + mdtypes: type ? `"${type}"` : "", + key: key, + }; } - // result 1 - credential/* - // result 2 - credential/bu - // result 3 - credential/bu "metadata" - // result 4 - credential/bu "metadata" "key" - args = { - bu: `${credName}/${bUnit ? bUnit : '*'}`, - mdtypes: type ? `"${type}"` : "", - key: key, - }; + log("debug", `CM args passed to DevTools command: ${JSON.stringify(args)}`); + DevToolsCommands.runCommand( + "", + action, + projectPath, + args, + (result: any) => log("info", result) + ); + + }catch(error){ + log("error", `[main_handleDevToolsCMCommand] Error: ${error}`); } - log("debug", `CM args passed to DevTools command: ${JSON.stringify(args)}`); - DevToolsCommands.runCommand( - "", - action, - projectPath, - args, - (result: any) => log("info", result) - ); } export const devtoolsMain = { diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index 40b5b70..1c88cc0 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -1,34 +1,52 @@ import { prerequisitesConfig, NoPrerequisitesResponseOptions } from "../config/prerequisites.config"; -import { executeSyncTerminalCommand } from "../shared/utils/terminal"; +import { devtoolsInstaller } from "./installer"; +import { terminal } from "../shared/utils/terminal"; import { editorInput } from "../editor/input"; import { editorWebview } from "../editor/webview"; -import { log } from "../editor/output"; -import { devtoolsInstaller } from "./installer"; import { editorWorkspace } from "../editor/workspace"; +import { log } from "../editor/output"; interface PrerequisitesInstalledReturn { prerequisitesInstalled: boolean, missingPrerequisites: string[] }; -function arePrerequisitesInstalled(): PrerequisitesInstalledReturn { +async function arePrerequisitesInstalled(): Promise { let prerequisiteResult: PrerequisitesInstalledReturn = { prerequisitesInstalled: true, missingPrerequisites: []}; - Object.entries(prerequisitesConfig.packages).forEach(([prerequisite, command]: string[]) => { - try{ - // executes each prerequisite command to check if they are installed in the system - // if not installed throws exception - executeSyncTerminalCommand( + for (const [prerequisite, command] of Object.entries(prerequisitesConfig.packages)){ + await new Promise(resolve => { + terminal.executeTerminalCommand({ command, - editorWorkspace.getWorkspaceURIPath() - ); - }catch(error){ - log("debug", `${prerequisite} is not installed.`); - prerequisiteResult = { - prerequisitesInstalled: false, - missingPrerequisites: [...prerequisiteResult["missingPrerequisites"], prerequisite] - }; - } - }); + args: [], + cwd: editorWorkspace.getWorkspaceURIPath(), + handleResult: (error: string | null, output: string | null, code: number | null) => { + if (error) { + log("error", + `[prerequisites_arePrerequisitesInstalled] Missing Pre-Requisite '${prerequisite}': ${error}` + ); + prerequisiteResult = { + prerequisitesInstalled: false, + missingPrerequisites: [ + ...prerequisiteResult.missingPrerequisites, + prerequisite + ] + }; + } + if (output) { + log("debug", + `[prerequisites_arePrerequisitesInstalled] '${prerequisite}': ${output}` + ); + } + if (code !== null) { + log("debug", + `[prerequisites_arePrerequisitesInstalled] Exit Code: '${code}'` + ); + resolve(); + } + } + }); + }); + } return prerequisiteResult; }; @@ -37,8 +55,6 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite const missingPrerequisitesMessage: string = missingPrerequisites.length === 1 ? prerequisitesConfig.messages["onePrerequisiteMissing"].replace("{{prerequisites}}", missingPrerequisites[0]) : prerequisitesConfig.messages["multiplePrerequisitesMissing"].replace("{{prerequisites}}", missingPrerequisites.join(" and ")); - - log("warning", missingPrerequisites); const message: string = `${missingPrerequisitesMessage} ${prerequisitesConfig.messages.askPrerequisitesToUser}`; @@ -48,7 +64,9 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite Object.keys(NoPrerequisitesResponseOptions).filter((v) => isNaN(Number(v))) ); - log("debug", `noPrerequisitesHandler: user response = ${userResponse}.`); + log("debug", + `[prerequisites_noPrerequisitesHandler] User Response = ${userResponse}.` + ); // If yes creates an webview in vscode with a installation guide if(userResponse && NoPrerequisitesResponseOptions[userResponse as keyof typeof NoPrerequisitesResponseOptions]){ diff --git a/src/editor/commands.ts b/src/editor/commands.ts index dbb2559..68eb7e8 100644 --- a/src/editor/commands.ts +++ b/src/editor/commands.ts @@ -12,7 +12,7 @@ function registerCommand(register: CommandRegister | CommandRegister[]): void { ); } -function executeCommand(command: string | string[], args: (string | boolean)[]){ +function executeCommand(command: string | string[], args: (string | boolean | string[])[]){ [command] .flat() .forEach( diff --git a/src/editor/input.ts b/src/editor/input.ts index 818fc9e..3ae8bff 100644 --- a/src/editor/input.ts +++ b/src/editor/input.ts @@ -1,4 +1,4 @@ -import { ProgressLocation, window } from "vscode"; +import { Progress, ProgressLocation, window } from "vscode"; import InputOptionsSettings from "../shared/interfaces/inputOptionsSettings"; async function handleQuickPickSelection( @@ -22,18 +22,20 @@ async function handleShowInputBox(placeHolder: string): Promise void ){ +async function handleInProgressMessage(local: string, callbackFn: (progress: Progress<{message: string, increment?: number}>) => Promise ){ await window.withProgress({ location: ProgressLocation[local as keyof typeof ProgressLocation]}, - async(progress) => { - progress.report({ message: reportMessage }); - callbackFn(); - } + async(progress) => callbackFn(progress) ); } +function handleShowErrorMessage(message: string){ + window.showErrorMessage(message); +} + export const editorInput = { handleQuickPickSelection, handleShowInformationMessage, handleInProgressMessage, - handleShowInputBox + handleShowInputBox, + handleShowErrorMessage }; \ No newline at end of file diff --git a/src/editor/workspace.ts b/src/editor/workspace.ts index 31f575f..bf39473 100644 --- a/src/editor/workspace.ts +++ b/src/editor/workspace.ts @@ -1,18 +1,28 @@ -import { workspace, Uri, TextDocument, WorkspaceFolder } from "vscode"; +import { workspace, Uri, TextDocument, WorkspaceFolder, FileType } from "vscode"; import { editorCommands } from "./commands"; -function getWorkspaceURIPath(): string { +function getWorkspaceURI(): Uri { const wsFolder: readonly WorkspaceFolder[] | undefined = workspace.workspaceFolders; if(wsFolder){ const [{ uri }] = wsFolder; - if(uri && "path" in uri){ - return uri.path; - } - throw new Error("Failed to find Worspace Uri PATH."); + return uri; }else{ throw new Error("Could not get Workspace Folder."); } } +function getWorkspaceURIPath(): string { + const wsURI: Uri = getWorkspaceURI(); + if(wsURI && "path" in wsURI){ + return wsURI.path; + } + throw new Error("Failed to find Worspace Uri PATH."); +} + +async function getWorkspaceSubFolders(): Promise{ + const wsURI: Uri = getWorkspaceURI(); + const subFolders = await workspace.fs.readDirectory(wsURI); + return subFolders.map(([folderName]: [string, FileType]) => folderName); +} async function isFileInFolder(filename: string): Promise { const fileArray: Uri[] = await workspace.findFiles(filename); @@ -32,5 +42,6 @@ export const editorWorkspace = { isFileInFolder, readFile, reloadWorkspace, - getWorkspaceURIPath + getWorkspaceURIPath, + getWorkspaceSubFolders }; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index c05dc51..f6a0426 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -3,7 +3,7 @@ import { editorContext } from './editor/context'; import { devtoolsMain } from './devtools/main'; import { log } from './editor/output'; -export function activate(context: ExtensionContext) { +export async function activate(context: ExtensionContext) { log("info", "Activating extension..."); log("debug", "Setting context..."); editorContext.set(context); diff --git a/src/shared/interfaces/terminalCommandRunner.ts b/src/shared/interfaces/terminalCommandRunner.ts new file mode 100644 index 0000000..bd912f6 --- /dev/null +++ b/src/shared/interfaces/terminalCommandRunner.ts @@ -0,0 +1,8 @@ +interface TerminalCommandRunner{ + command: string, + args: string[], + cwd: string, + handleResult: (error: string | null, output: string | null, code: number | null) => void +} + +export default TerminalCommandRunner; \ No newline at end of file diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts index aa4964a..4aa2741 100644 --- a/src/shared/utils/lib.ts +++ b/src/shared/utils/lib.ts @@ -32,9 +32,22 @@ function capitalizeFirstLetter(text: string): string { return text.charAt(0).toUpperCase() + text.slice(1); } +function waitTime(timeInMs: number, handleFn: () => void){ + setTimeout(() => handleFn(), timeInMs); +} + +function getProjectNameFromPath(projectPath: string): string { + const projectName : string | undefined = projectPath.split("/").pop(); + if(!projectName){ + throw new Error(`[lib_getProjectNameFromPath]: Failed to retrieve project name from path: ${projectPath}`); + } + return projectName; +} export const lib = { parseArrayJsonStringToArray, mapObject, createFilePath, - capitalizeFirstLetter + capitalizeFirstLetter, + waitTime, + getProjectNameFromPath }; \ No newline at end of file diff --git a/src/shared/utils/terminal.ts b/src/shared/utils/terminal.ts index 033d22b..55e5f9b 100644 --- a/src/shared/utils/terminal.ts +++ b/src/shared/utils/terminal.ts @@ -1,17 +1,26 @@ -import { execSync } from 'child_process'; -import { log } from '../../editor/output'; +import { ChildProcess, spawn } from 'child_process'; +import TerminalCommandRunner from '../interfaces/terminalCommandRunner'; -export function executeSyncTerminalCommand(command: string, path: string): string { - try { - path = path.startsWith("/c:") ? path.replace("/c:", "") : path; - return execSync(command, { cwd: path }) - .toString() - .trim(); - }catch(error){ - log("error", `terminal_executeSyncTerminalCommand: ${error}`); - throw new Error(`Error executing the command: ${command}`); +function executeTerminalCommand(commandRunner: TerminalCommandRunner): void { + const childProcess: ChildProcess = spawn( + commandRunner.command, + commandRunner.args, + { + shell: true, + cwd: commandRunner.cwd.replace("/c:", "") + } + ); + if(childProcess.stdout){ + childProcess.stdout.on('data', (data: Buffer) => commandRunner.handleResult(null, data.toString().trim(), null)); } -} + if(childProcess.stderr){ + childProcess.stderr.on('data', (data: Buffer) => commandRunner.handleResult(data.toString().trim(), null, null)); + } + childProcess.on("exit", (code: number) => commandRunner.handleResult(null, null, code)); +} +export const terminal = { + executeTerminalCommand +}; \ No newline at end of file From fad5f16eb4bb74c6a40f376a21d08d78170db953 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Tue, 20 Jun 2023 16:22:19 +0200 Subject: [PATCH 15/24] Deploy From Retrieve implemented --- package.json | 2 +- src/devtools/commands/DevToolsAdminCommands.ts | 2 +- src/devtools/commands/DevToolsCommands.ts | 3 +++ src/devtools/commands/commands.config.json | 4 ++-- src/devtools/main.ts | 10 +++++++++- src/shared/utils/lib.ts | 2 +- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a1c9e5a..b7aae3a 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "group": "devtools" }, { - "when": "resourcePath =~ /deploy/", + "when": "resourcePath =~ /deploy/ || (resourcePath =~ /retrieve/ && (resourceLangId == json || resourceLangId == html || resourceLangId == sql || resourceLangId == markdown))", "command": "sfmc-devtools-vscext.devtoolsCMDeploy", "group": "devtools" } diff --git a/src/devtools/commands/DevToolsAdminCommands.ts b/src/devtools/commands/DevToolsAdminCommands.ts index 7ef9370..866c543 100644 --- a/src/devtools/commands/DevToolsAdminCommands.ts +++ b/src/devtools/commands/DevToolsAdminCommands.ts @@ -85,7 +85,7 @@ class DevToolsAdminCommands extends DevToolsCommands { const commandConfigured: string | undefined = await this.configureCommandWithParameters( config, - { json: "json" in args && args.json ? "--json" : ""}, + args, [] ); log("debug", `Explain types final command: ${commandConfigured}`); diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 87d13f1..9b426ad 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -73,6 +73,9 @@ abstract class DevToolsCommands { // Configured optional Params if("optionalParams" in config && config.optionalParams.length){ config.optionalParams.forEach((param: string) => { + if(typeof args[param] === "boolean"){ + args[param] = `--${param}`; + } command = command.replace(`{{${param}}}`, param in args ? args[param] : ""); }); } diff --git a/src/devtools/commands/commands.config.json b/src/devtools/commands/commands.config.json index 8189523..e8c104f 100644 --- a/src/devtools/commands/commands.config.json +++ b/src/devtools/commands/commands.config.json @@ -47,9 +47,9 @@ { "id":"deploy", "title": "Deploy", - "command": "mcdev deploy {{bu}} {{mdtypes}} {{key}}", + "command": "mcdev deploy {{bu}} {{mdtypes}} {{key}} {{fromRetrieve}}", "requiredParams": ["bu", "mdtypes"], - "optionalParams": ["key"], + "optionalParams": ["key", "fromRetrieve"], "description": "Deploys local metadata to a business unit.", "isAvailable": true }, diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 12b93e9..e4b828c 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -327,9 +327,16 @@ async function handleDevToolsCMCommand(action: string, path: string): Promise void){ function getProjectNameFromPath(projectPath: string): string { const projectName : string | undefined = projectPath.split("/").pop(); if(!projectName){ - throw new Error(`[lib_getProjectNameFromPath]: Failed to retrieve project name from path: ${projectPath}`); + throw new Error(`[lib_getProjectNameFromPath]: Failed to retrieve last folder name from path: ${projectPath}`); } return projectName; } From cb1649d2cac21ff9d80ab5011e784adb0a5f3572 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Tue, 20 Jun 2023 19:02:19 +0200 Subject: [PATCH 16/24] warning messages configured --- src/config/main.config.ts | 4 +++- src/devtools/commands/DevToolsCommands.ts | 10 +++++++- src/devtools/commands/commands.config.json | 3 +++ src/devtools/main.ts | 25 ++++++++++++++++--- src/editor/input.ts | 28 ++++++++++++++++++---- 5 files changed, 60 insertions(+), 10 deletions(-) diff --git a/src/config/main.config.ts b/src/config/main.config.ts index 9f9ccb0..44a37ba 100644 --- a/src/config/main.config.ts +++ b/src/config/main.config.ts @@ -2,7 +2,8 @@ export const mainConfig: { credentialsFilename: string, requiredFiles: string[], allPlaceholder: string, - messages: { + messages: { + selectedCredentialsBU: string, selectCredential: string, selectBusinessUnit: string, selectCommandType: string, @@ -15,6 +16,7 @@ export const mainConfig: { requiredFiles: [".mcdevrc.json", ".mcdev-auth.json"], allPlaceholder: "*All*", messages: { + selectedCredentialsBU: "Please select a Credential/BU before running the command", selectCredential: "Select all or one of the credentials below...", selectBusinessUnit: "Select all or one of the business units below...", selectCommandType: "Select one DevTools command type...", diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 9b426ad..c6684bd 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -210,7 +210,7 @@ abstract class DevToolsCommands { return; } log("error", - `DevToolsCommands_runCommand: Command Map is not configured configured.` + `[DevToolsCommands_runCommand] Error: Command Map is not configured configured.` ); } @@ -228,6 +228,14 @@ abstract class DevToolsCommands { return commands ? commands.filter((command: DevToolsCommandSetting) => command.isAvailable) : []; } + + static requiresCredentials(id: string): boolean { + if(id in commandsConfig){ + return commandsConfig[id as keyof typeof commandsConfig].requireCredentials; + } + log("error", `[DevToolsCommands_runCommand] Error: Failed to retrieve ${id} from commands configuration.`); + return false; + } } export default DevToolsCommands; \ No newline at end of file diff --git a/src/devtools/commands/commands.config.json b/src/devtools/commands/commands.config.json index e8c104f..b9c3dca 100644 --- a/src/devtools/commands/commands.config.json +++ b/src/devtools/commands/commands.config.json @@ -3,6 +3,7 @@ "id": "admin", "title": "Admin Command", "isAvailable": true, + "requireCredentials": false, "commands": [ { "id":"init", @@ -34,6 +35,7 @@ "id": "standard", "title": "Standard Command", "isAvailable": true, + "requireCredentials": true, "commands": [ { "id":"retrieve", @@ -69,6 +71,7 @@ "id": "templating", "title": "Templating", "isAvailable": false, + "requireCredentials": false, "commands": [ {"id":"rtemp", "title": "Retrieve As Template", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Retrieves a specific metadata file by name from the server for templating.", "isAvailable": false}, {"id":"btemp", "title": "Build Template", "command": "mcdev delete", "requiredParams": [], "optionalParams": [], "description": "Builds a template out of a specific metadata file already in your retrieve folder.", "isAvailable": false}, diff --git a/src/devtools/main.ts b/src/devtools/main.ts index e4b828c..ab4acc1 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -298,7 +298,26 @@ async function handleDevToolsSBCommand(): Promise{ ); } }else{ - // show error TODO + if(DevToolsCommands.requiresCredentials(selectedCommandType.id)){ + log("debug", + `Crendentials are required to be selected first for type '${selectedCommandType.id}'` + ); + editorInput.handleShowNotificationMessage("warning", + `${mainConfig.messages.selectedCredentialsBU} '${ + lib.capitalizeFirstLetter(selectedCommandOption.id) + }'...` + ); + lib.waitTime(1000, () => changeCredentialsBU()); + }else{ + // execute DevTools Command + DevToolsCommands.runCommand( + selectedCommandType.id, + selectedCommandOption.id, + editorWorkspace.getWorkspaceURIPath(), + {}, + (result: any) => log("info", result) + ); + } } } } @@ -308,7 +327,7 @@ async function handleDevToolsSBCommand(): Promise{ async function initialize(): Promise{ await handleDevToolsRequirements(false); - const userResponse: string | undefined = await editorInput.handleShowInformationMessage( + const userResponse: string | undefined = await editorInput.handleShowOptionsMessage( mainConfig.messages.initDevTools, Object.keys(InstallDevToolsResponseOptions).filter((v) => isNaN(Number(v))) ); @@ -356,7 +375,7 @@ async function handleDevToolsCMCommand(action: string, path: string): Promise { +async function handleShowOptionsMessage(message: string, actions: string[]): Promise { const response: string | undefined = await window.showInformationMessage(message, ...actions); return response; } @@ -28,14 +34,26 @@ async function handleInProgressMessage(local: string, callbackFn: (progress: Pro ); } -function handleShowErrorMessage(message: string){ - window.showErrorMessage(message); +function handleShowNotificationMessage(level: keyof typeof NotificationMessage, message: string){ + switch(level){ + case "info": + window.showInformationMessage(message); + break; + case "warning": + window.showWarningMessage(message); + break; + case "error": + window.showErrorMessage(message); + break; + default: + window.showInformationMessage(message); + } } export const editorInput = { handleQuickPickSelection, - handleShowInformationMessage, + handleShowOptionsMessage, handleInProgressMessage, handleShowInputBox, - handleShowErrorMessage + handleShowNotificationMessage }; \ No newline at end of file From 185d884ba213ba28ad9ae4fd5a127d63ef8007cf Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Thu, 22 Jun 2023 18:07:49 +0200 Subject: [PATCH 17/24] multi selection files update --- src/devtools/commands/DevToolsCommands.ts | 8 +- src/devtools/containers.ts | 14 +- src/devtools/installer.ts | 2 +- src/devtools/main.ts | 249 +++++++++++++++------- src/devtools/prerequisites.ts | 2 +- src/editor/containers.ts | 3 - src/editor/workspace.ts | 21 +- src/shared/utils/lib.ts | 35 ++- 8 files changed, 243 insertions(+), 91 deletions(-) diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index c6684bd..6bf2d3b 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -73,8 +73,12 @@ abstract class DevToolsCommands { // Configured optional Params if("optionalParams" in config && config.optionalParams.length){ config.optionalParams.forEach((param: string) => { + console.log(param + ' ---> ', args[param]); if(typeof args[param] === "boolean"){ - args[param] = `--${param}`; + // if args[paran] is true it puts in the command the format --param (eg --json --fromRetrieve) + args[param] = args[param] + ? `--${param}` + : ""; } command = command.replace(`{{${param}}}`, param in args ? args[param] : ""); }); @@ -158,7 +162,7 @@ abstract class DevToolsCommands { })); } - static runCommand( + static async runCommand( typeId: string, commandId: string, commandPath: string, diff --git a/src/devtools/containers.ts b/src/devtools/containers.ts index b447588..79f097c 100644 --- a/src/devtools/containers.ts +++ b/src/devtools/containers.ts @@ -3,6 +3,7 @@ import { devtoolsMain } from "./main"; import { ExtensionContext, editorContext } from "../editor/context"; import { StatusBarItem, editorContainers } from "../editor/containers"; import { editorCommands } from "../editor/commands"; +import { editorWorkspace } from "../editor/workspace"; import { log } from "../editor/output"; // Contains all the status bars that are displayed in the extension @@ -121,9 +122,16 @@ function activateContextMenuCommands(){ containersConfig.contextMenuDeployCommand ].forEach((command: string) => editorCommands.registerCommand({ command, - callbackAction: ({ path }: { path: string }) => { - const [ _, key ]: string[] = command.split(".devtools"); - return devtoolsMain.handleContextMenuActions(key, path); + callbackAction: (_, ...files: any[]) => { + if(files.length && Array.isArray(files[0])){ + const filesPath: string[] = editorWorkspace.getFilesURIPath(files[0]); + const [ __, key ]: string[] = command.split(".devtools"); + return devtoolsMain.handleContextMenuActions(key, filesPath); + }else{ + log("error", + "[container_activateContextMenuCommands] Error: Context Menu Callback didn't return any selected files." + ); + } } })); } diff --git a/src/devtools/installer.ts b/src/devtools/installer.ts index 69808e3..1a3c183 100644 --- a/src/devtools/installer.ts +++ b/src/devtools/installer.ts @@ -74,7 +74,7 @@ async function noDevToolsHandler(){ log("warning", installerConfig.messages.noDevToolsInstalled); // Asks if user wishes to install DevTools - const userResponse: string | undefined = await editorInput.handleShowInformationMessage( + const userResponse: string | undefined = await editorInput.handleShowOptionsMessage( message, Object.keys(InstallDevToolsResponseOptions).filter((v) => isNaN(Number(v))) ); diff --git a/src/devtools/main.ts b/src/devtools/main.ts index ab4acc1..16010c5 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -113,15 +113,15 @@ function handleStatusBarActions(action: string): void { } } -function handleContextMenuActions(action: string, path: string): void { +function handleContextMenuActions(action: string, selectedFiles: string[]): void { log("debug", "Setting Context Menu Actions..."); - log("debug", `Action: ${action} Path: ${path}`); + log("debug", `Action: ${action} Number of Selected Files: ${selectedFiles.length}`); switch(action.toLowerCase()){ case "cmretrieve": - handleDevToolsCMCommand("retrieve", path); + handleDevToolsCMCommand("retrieve", selectedFiles); break; case "cmdeploy": - handleDevToolsCMCommand("deploy", path); + handleDevToolsCMCommand("deploy", selectedFiles); break; default: log("error", `main_handleContextMenuActions: Invalid Context Menu Action '${action}'`); @@ -342,100 +342,193 @@ async function initialize(): Promise{ } } -async function handleDevToolsCMCommand(action: string, path: string): Promise{ +async function handleDevToolsCMCommand(action: string, selectedPaths: string[]): Promise{ log("info", "Selecting CM SFMC DevTools command..."); try{ - let args: {[key: string]: string | boolean } = {}; - let [ projectPath, cmPath ]: string[] = path.split(`/${action}`); + type ArgsConfig = { bu: string, mdtypes: string | string[], key: string | string[], fromRetrieve: boolean}; + type ProjectConfig = { path: string, args: ArgsConfig[] }; + let filesType: string[] = [], folderType: string[] = []; - if(action === "deploy" && !path.includes(action)){ - log("debug", "Context Menu Command Deploy From Retrieve folder..."); - // Action Deploy from Retrieve was triggered - [ projectPath, cmPath ] = path.split(`/retrieve`); - args = { fromRetrieve: true }; + // Separates files and folders into different arrays + for(const path of selectedPaths){ + await editorWorkspace.isFile(path) ? + filesType.push(path) : + folderType.push(path); } - const workspaceFolderPath: string = editorWorkspace.getWorkspaceURIPath(); + // Removes duplicate files (eg. some files have the same name with md and json) + if(filesType.length){ + filesType = lib.removeDuplicates( + lib.removeExtensionFromFile(filesType) + ) as string[]; + } + console.log(folderType); + console.log(filesType); - log("debug", `Current workspace folder path: ${workspaceFolderPath}`); - log("debug", `Project path: ${projectPath}`); - log("debug", `Context Menu path: ${cmPath}`); + const configureArgsProject = async (action: string, selectedPaths: string[]): Promise<{[key: string]: ProjectConfig}> => { - log("info", `Project ${workspaceFolderPath === projectPath ? 'is': 'is not'} the workspace folder.`); + const projectArgsMap: {[key: string]: ProjectConfig} = {}; - // Check if context menu being triggered is from outside of the workspace folder - if(workspaceFolderPath !== projectPath){ - const projectName: string = lib.getProjectNameFromPath(projectPath); - const isSubFolderDevToolsProject: boolean = - await isADevToolsProject( - projectName + "/" - ); - log("info", - `SubFolder project '${projectPath}' ${ isSubFolderDevToolsProject ? 'is': 'is not'} a DevTools Project.` - ); - if(!isSubFolderDevToolsProject){ - editorInput.handleShowNotificationMessage("error",`Folder '${projectName}' is not a SFMC DevTools Project.`); - return; - } - } + // gets workspace directory + const workspaceFolderPath: string = editorWorkspace.getWorkspaceURIPath(); - if(projectPath && !cmPath){ - args = { bu: `"*"` }; - log("debug", `Updated project path for '${action} "*"': ${projectPath}.`); - } + for(const filePath of selectedPaths){ + + let projectName: string = ""; + let [ projectPath, cmPath ]: string[] = []; + let args: ArgsConfig[] = []; + let fromRetrieve: boolean = false; - if(cmPath){ - let [ credName, bUnit, type, ...keys ]: string[] = cmPath.substring(1).split("/"); - let key: string = ""; - // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder - if(type === "asset" && keys.length){ - // Gets the asset subfolder and asset key - const [ assetFolder, assetKey ] = keys; - if(!assetKey){ - // if user only selected an asset subfolder - // type will be changed to "asset-[name of the asset subfolder]" - type = `${type}-${assetFolder}`; + if(filePath.includes(action)){ + // Action Retrieve or Deploy were triggered from their folder + [ projectPath, cmPath ] = filePath.split(`/${action}`); + }else{ + if(action === "deploy"){ + log("debug", "Context Menu Command Deploy From Retrieve folder..."); + // Action Deploy from Retrieve was triggered (fromRetrieve) + [ projectPath, cmPath ] = filePath.split(`/retrieve`); + fromRetrieve = true; + }else{ + // error + } } - // if user selects a file inside a subfolder of asset - // the key will be the name of the file - keys = assetKey ? [ assetKey ] : []; - } - - if(keys.length){ - const [ typeKey ]: string[] = keys; - key = `"${typeKey.startsWith(".") ? - '.' + typeKey.substring(1).split(".")[0] : - typeKey.split(".")[0] - }"`; - } - // result 1 - credential/* - // result 2 - credential/bu - // result 3 - credential/bu "metadata" - // result 4 - credential/bu "metadata" "key" - args = { - ...args, - bu: `${credName}/${bUnit ? bUnit : '*'}`, - mdtypes: type ? `"${type}"` : "", - key: key, - }; - } + // Gets the project folder name + projectName = lib.getProjectNameFromPath(projectPath); - log("debug", `CM args passed to DevTools command: ${JSON.stringify(args)}`); - DevToolsCommands.runCommand( - "", - action, - projectPath, - args, - (result: any) => log("info", result) - ); + log("debug", `Current workspace folder path: ${workspaceFolderPath}`); + log("debug", `Project Name: ${projectName}`); + log("debug", `Project path: ${projectPath}`); + log("debug", `Context Menu path: ${cmPath}`); + + log("info", `Project ${workspaceFolderPath === projectPath ? 'is': 'is not'} the workspace folder.`); + + // Check if context menu being triggered is from outside of the workspace folder + if(workspaceFolderPath !== projectPath){ + // Check if folder is a DevTools project + const isSubFolderDevToolsProject: boolean = + await isADevToolsProject( projectName + "/" ); + log("info", + `SubFolder project '${projectPath}' ${ isSubFolderDevToolsProject ? 'is': 'is not'} a DevTools Project.` + ); + if(!isSubFolderDevToolsProject){ + editorInput.handleShowNotificationMessage("error",`Folder '${projectName}' is not a SFMC DevTools Project.`); + return {}; + } + } + + // Checks if the project name is already in the map + if(!(projectName in projectArgsMap)){ + projectArgsMap[projectName] = { + path: projectPath, + args: [] + }; + } + + args = projectArgsMap[projectName].args; + // When user only clicks on retrieve or deploy folder + if(projectPath && !cmPath){ + let filteredByBU: ArgsConfig[] = + args.filter(({ bu }: ArgsConfig) => bu !== undefined && bu === `"*"`); + if(!filteredByBU.length){ + args = [...args, { bu: `"*"`, mdtypes: [], key: [], fromRetrieve}]; + } + log("debug", `Updated project path for '${action} "*"': ${projectPath}.`); + } + + // When user clicks inside a retrieve or deploy folder + if(cmPath){ + let [ credName, bUnit, type, ...keys ]: string[] = cmPath.substring(1).split("/"); + let key: string = ""; + + // If user selected to retrieve/deploy a subfolder/file inside metadata type asset folder + if(type === "asset" && keys.length){ + // Gets the asset subfolder and asset key + const [ assetFolder, assetKey ] = keys; + if(!assetKey){ + // if user only selected an asset subfolder + // type will be changed to "asset-[name of the asset subfolder]" + type = `${type}-${assetFolder}`; + } + // if user selects a file inside a subfolder of asset + // the key will be the name of the file + keys = assetKey ? [ assetKey ] : []; + } + + key = keys.length ? keys[0] : ""; + + let filteredByBU: ArgsConfig[] = + args.filter(({ bu }: ArgsConfig) => bu !== undefined && bu === `${credName}/${bUnit ? bUnit : '*'}`); + + if(filteredByBU.length){ + let newArgs: ArgsConfig = { + bu: filteredByBU[0].bu, + mdtypes: lib.removeNonValues( + (lib.removeDuplicates([...filteredByBU[0]['mdtypes'], type]) as string[]) + ) as string[], + key: lib.removeNonValues( + (lib.removeDuplicates([...filteredByBU[0]['key'], key]) as string[]) + ) as string[], + fromRetrieve: filteredByBU[0].fromRetrieve + }; + args = [ + ...args.filter(({ bu }: ArgsConfig) => bu !== `${credName}/${bUnit ? bUnit : '*'}`), + newArgs + ]; + }else{ + args = [ + ...args, + { + bu: `${credName}/${bUnit ? bUnit : '*'}`, + mdtypes: lib.removeNonValues([type]) as string[], + key: lib.removeNonValues([key]) as string[], + fromRetrieve + } + ]; + } + } + projectArgsMap[projectName].args = args; + } + return projectArgsMap; + }; + + for(const optionType of [filesType, folderType]){ + if(optionType.length){ + const projectMap: {[key: string]: ProjectConfig} = + await configureArgsProject(action, optionType); + console.log(projectMap); + await Promise.all(Object.keys(projectMap).map(async (projName: string) => { + log("debug", `Running DevTools Command for project ${projName}`); + let { path, args }: ProjectConfig = projectMap[projName]; + args = args.map((arg: ArgsConfig) => ({ + ...arg, + mdtypes: arg.mdtypes.length + ? `"${(arg.mdtypes as string[]).join(",")}"` + : "", + key: arg.key.length ? `"${(arg.key as string[]).join(",")}"`: "" + })); + + for(const dtArgs of args){ + log("debug", `Action: ${action} Args: ${JSON.stringify(dtArgs)}`); + DevToolsCommands.runCommand( + "", + action, + path, + dtArgs, + (result: any) => log("info", `${action} Result: ${result}`) + ); + } + })); + } + } }catch(error){ log("error", `[main_handleDevToolsCMCommand] Error: ${error}`); } } + export const devtoolsMain = { initDevToolsExtension, handleStatusBarActions, diff --git a/src/devtools/prerequisites.ts b/src/devtools/prerequisites.ts index 1c88cc0..9ce8ccb 100644 --- a/src/devtools/prerequisites.ts +++ b/src/devtools/prerequisites.ts @@ -59,7 +59,7 @@ async function noPrerequisitesHandler(extensionPath: string, missingPrerequisite const message: string = `${missingPrerequisitesMessage} ${prerequisitesConfig.messages.askPrerequisitesToUser}`; // Asks if user wishes to follow the guide of how to install the prerequisites - const userResponse: string | undefined = await editorInput.handleShowInformationMessage( + const userResponse: string | undefined = await editorInput.handleShowOptionsMessage( message, Object.keys(NoPrerequisitesResponseOptions).filter((v) => isNaN(Number(v))) ); diff --git a/src/editor/containers.ts b/src/editor/containers.ts index 10c9880..694e907 100644 --- a/src/editor/containers.ts +++ b/src/editor/containers.ts @@ -1,6 +1,3 @@ -// import { commands, ExtensionContext, StatusBarAlignment, StatusBarItem, window } from "vscode"; -// import { devToolsExtension } from "../devtools/extension"; - import { window, StatusBarItem, StatusBarAlignment } from "vscode"; function createStatusBarItem(command: string, title: string, name: string): StatusBarItem { diff --git a/src/editor/workspace.ts b/src/editor/workspace.ts index bf39473..be8c3b8 100644 --- a/src/editor/workspace.ts +++ b/src/editor/workspace.ts @@ -1,4 +1,4 @@ -import { workspace, Uri, TextDocument, WorkspaceFolder, FileType } from "vscode"; +import { workspace, Uri, TextDocument, WorkspaceFolder, FileType, FileStat } from "vscode"; import { editorCommands } from "./commands"; function getWorkspaceURI(): Uri { @@ -38,10 +38,27 @@ function reloadWorkspace(){ editorCommands.executeCommand("workbench.action.reloadWindow", []); } +function getFilesURIPath(files: Uri | Uri[]){ + return [files] + .flat() + .map((file: Uri) => file.path); +} + +async function isFile(file: string | Uri){ + if(typeof file === "string"){ + file = Uri.file(file); + } + const { type }: FileStat = await workspace.fs.stat(file); + const fileType: string = FileType[type]; + return fileType.toLowerCase() === "file"; +} + export const editorWorkspace = { isFileInFolder, readFile, reloadWorkspace, getWorkspaceURIPath, - getWorkspaceSubFolders + getWorkspaceSubFolders, + getFilesURIPath, + isFile }; \ No newline at end of file diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts index f0df154..ae047d6 100644 --- a/src/shared/utils/lib.ts +++ b/src/shared/utils/lib.ts @@ -43,11 +43,44 @@ function getProjectNameFromPath(projectPath: string): string { } return projectName; } + +function removeDuplicates(array: (string | number)[]): (string | number)[] { + return [...new Set(array)]; +} + +function removeNonValues(array: (string | number)[]): (string | number)[]{ + return array + .filter( + (value: string | number) => (value !== undefined && value !== null && value !== "") + ); +} + +function removeExtensionFromFile(files: string | string[]): string[] { + return [files] + .flat() + .map((file: string) => { + const filePathSplit: string[] = file.split("/"); + let fileName: string | undefined = filePathSplit.pop(); + if(fileName){ + fileName = fileName.startsWith(".") + ? `.${fileName.substring(1).split(".")[0]}` + : fileName.split(".")[0]; + filePathSplit.push(fileName); + }else{ + throw Error(`[lib_removeExtensionFromFile]: Failed to get filename for file ${file}`); + } + return filePathSplit.join("/"); + }); +} + export const lib = { parseArrayJsonStringToArray, mapObject, createFilePath, capitalizeFirstLetter, waitTime, - getProjectNameFromPath + getProjectNameFromPath, + removeDuplicates, + removeNonValues, + removeExtensionFromFile }; \ No newline at end of file From 79e36afb3fce6065fe8e098e95cb019e8656c8f5 Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Mon, 3 Jul 2023 09:33:12 +0200 Subject: [PATCH 18/24] log fixing for multiproject folder incomplete --- package-lock.json | 4914 +++++++++++++++++++-- package.json | 7 +- src/devtools/commands/DevToolsCommands.ts | 1 - src/devtools/main.ts | 3 +- src/editor/output.ts | 50 +- src/extension.ts | 7 +- src/shared/utils/fileLogger.ts | 24 + src/shared/utils/lib.ts | 4 +- 8 files changed, 4700 insertions(+), 310 deletions(-) create mode 100644 src/shared/utils/fileLogger.ts diff --git a/package-lock.json b/package-lock.json index 4c9c45f..8f71382 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,8 @@ "name": "sfmc-devtools-vscode", "version": "0.0.1", "dependencies": { - "@salesforce-ux/design-system": "^2.8.1" + "@salesforce-ux/design-system": "^2.8.1", + "winston": "^3.9.0" }, "devDependencies": { "@types/chai": "^4.3.5", @@ -29,6 +30,9 @@ }, "engines": { "vscode": "^1.60.0" + }, + "peerDependencies": { + "mcdev": ">=5.1.0" } }, "node_modules/@ampproject/remapping": { @@ -657,6 +661,14 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -683,6 +695,16 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -1231,6 +1253,21 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "peer": true, + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "peer": true + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1280,6 +1317,15 @@ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@sinonjs/commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", @@ -1298,6 +1344,18 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "peer": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -1479,6 +1537,11 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "node_modules/@types/triple-beam": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", + "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + }, "node_modules/@types/vscode": { "version": "1.76.0", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz", @@ -1926,6 +1989,45 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -1935,6 +2037,15 @@ "ajv": "^6.9.1" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "peer": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -1948,7 +2059,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -1963,7 +2073,6 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, "engines": { "node": ">=10" }, @@ -1975,7 +2084,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -1984,7 +2092,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2025,6 +2132,19 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2052,6 +2172,49 @@ "node": ">=8" } }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "peer": true + }, + "node_modules/atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "peer": true, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", @@ -2174,6 +2337,88 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/beauty-amp-core": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/beauty-amp-core/-/beauty-amp-core-0.3.7.tgz", + "integrity": "sha512-/a3jRMN0IZ4SaV8PoVLqprk0sSEXvTOOVs4jdSQhgNBJYRkHau0PhUwju6PzfNvQpleZXWdechrPQAVAxIKnHA==", + "peer": true + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "peer": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "peer": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2245,12 +2490,91 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "peer": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "peer": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2264,7 +2588,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, "engines": { "node": ">=10" }, @@ -2310,7 +2633,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2331,6 +2653,12 @@ "node": ">=10" } }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "peer": true + }, "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -2370,65 +2698,211 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "peer": true, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "peer": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">=8" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/cli-progress": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", + "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "peer": true, "dependencies": { - "color-name": "~1.1.4" + "string-width": "^4.2.3" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, + "node_modules/cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "peer": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -2436,6 +2910,93 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/conf": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "peer": true, + "dependencies": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conf/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/conf/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "peer": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "peer": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console.table": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", + "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", + "peer": true, + "dependencies": { + "easy-table": "1.1.0" + }, + "engines": { + "node": "> 0.10" + } + }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -2470,11 +3031,43 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "peer": true, + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debounce-fn/node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -2487,6 +3080,18 @@ } } }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "peer": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -2505,6 +3110,50 @@ "node": ">=6" } }, + "node_modules/deep-equal": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", + "peer": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-equal/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "peer": true + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2520,6 +3169,49 @@ "node": ">=0.10.0" } }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "peer": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "peer": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "peer": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2550,6 +3242,12 @@ "node": ">=8" } }, + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "peer": true + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2562,6 +3260,36 @@ "node": ">=6.0.0" } }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "peer": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "peer": true + }, + "node_modules/easy-table": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", + "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "peer": true, + "optionalDependencies": { + "wcwidth": ">=1.0.1" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.328", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", @@ -2583,8 +3311,21 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "peer": true, + "dependencies": { + "once": "^1.4.0" + } }, "node_modules/enhanced-resolve": { "version": "5.12.0", @@ -2611,6 +3352,15 @@ "node": ">=8.6" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -2632,6 +3382,32 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "peer": true + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -2642,11 +3418,19 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2954,11 +3738,24 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "peer": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.12", @@ -3000,6 +3797,22 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-xml-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.0.tgz", + "integrity": "sha512-+zVQv4aVTO+o8oRUyRL7PjgeVo1J6oP8Cw2+a8UTZQcj5V0yUK5T63gTN0ldgiHDPghUjKc4OpT6SwMTwnOQug==", + "peer": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -3027,6 +3840,35 @@ "bser": "2.1.1" } }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "peer": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -3051,6 +3893,18 @@ "node": ">=8" } }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "peer": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -3070,6 +3924,68 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "peer": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "peer": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3080,7 +3996,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -3093,8 +4008,7 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -3102,6 +4016,15 @@ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3115,7 +4038,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -3129,6 +4051,21 @@ "node": "*" } }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "peer": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -3176,6 +4113,21 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "peer": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globals": { "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", @@ -3211,17 +4163,61 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "peer": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -3229,11 +4225,79 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "peer": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "peer": true, "engines": { "node": ">=8" } @@ -3244,6 +4308,12 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "peer": true + }, "node_modules/http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -3280,6 +4350,38 @@ "node": ">=10.17.0" } }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -3311,6 +4413,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -3334,7 +4445,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -3352,8 +4462,56 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "peer": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/interpret": { "version": "2.2.0", @@ -3364,12 +4522,100 @@ "node": ">= 0.10" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "peer": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "peer": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "peer": true + }, "node_modules/is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -3382,6 +4628,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3395,7 +4656,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -3421,13 +4681,92 @@ "node": ">=0.10.0" } }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "peer": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "peer": true, + "engines": { + "node": ">=8" } }, "node_modules/is-plain-object": { @@ -3442,11 +4781,47 @@ "node": ">=0.10.0" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, "engines": { "node": ">=8" }, @@ -3454,6 +4829,101 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "peer": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "peer": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "peer": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "peer": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "peer": true + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3659,47 +5129,6 @@ } } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-config": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", @@ -4269,6 +5698,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "peer": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4281,12 +5716,28 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", + "peer": true + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json-to-table": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/json-to-table/-/json-to-table-4.2.1.tgz", + "integrity": "sha512-4PSWfPZyFssRj5BwjusoMSPSKoqfoULLZdrAgHvDkpXSZVID4gSe32NdemeePANf7oLa+x8znIWVIc8ba4gM/g==", + "peer": true, + "dependencies": { + "lodash": "~4.17.20", + "traverse": "~0.6.6" + } + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4299,6 +5750,18 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -4311,6 +5774,15 @@ "setimmediate": "^1.0.5" } }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "peer": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -4329,6 +5801,23 @@ "node": ">=6" } }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "peer": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -4375,6 +5864,34 @@ "node": ">=6.11.5" } }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "peer": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "peer": true + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -4393,6 +5910,35 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/logform": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", + "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", + "dependencies": { + "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, "node_modules/loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -4402,6 +5948,15 @@ "get-func-name": "^2.0.0" } }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -4415,7 +5970,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -4430,7 +5984,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -4450,6 +6003,62 @@ "tmpl": "1.0.5" } }, + "node_modules/mcdev": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mcdev/-/mcdev-5.1.0.tgz", + "integrity": "sha512-RWRaEVy0WsQAT4w2T3SHS9CS36sn3pTTOyyDWApQctYCQxdvNzwvjbVtQRrmv32M/k+Xlyau8M4L/Kk2/jCHkQ==", + "peer": true, + "dependencies": { + "beauty-amp-core": "0.3.7", + "cli-progress": "3.11.2", + "command-exists": "1.2.9", + "conf": "10.2.0", + "console.table": "0.10.0", + "deep-equal": "2.2.1", + "fs-extra": "11.1.0", + "inquirer": "8.2.5", + "json-to-table": "4.2.1", + "mustache": "4.2.0", + "p-limit": "3.1.0", + "prettier": "2.8.8", + "prettier-plugin-sql": "0.14.0", + "semver": "7.5.0", + "sfmc-sdk": "1.0.1", + "simple-git": "3.18.0", + "toposort": "2.0.2", + "update-notifier": "5.1.0", + "winston": "3.9.0", + "yargs": "17.7.2" + }, + "bin": { + "mcdev": "lib/cli.js" + }, + "engines": { + "node": ">=15.0.0" + }, + "funding": { + "type": "corporate", + "url": "https://github.com/Accenture/sfmc-devtools" + }, + "optionalDependencies": { + "fsevents": "*" + } + }, + "node_modules/mcdev/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -4482,7 +6091,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -4491,7 +6099,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -4503,11 +6110,19 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4520,11 +6135,40 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "peer": true + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "peer": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "peer": true }, "node_modules/natural-compare": { "version": "1.4.0", @@ -4532,6 +6176,28 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "peer": true, + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -4550,6 +6216,18 @@ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, + "node_modules/node-sql-parser": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.7.0.tgz", + "integrity": "sha512-6pKgpQ15gwzDdIZVSDYH/5rVOOEWXzIrVOcq7FLCtoo+AVXTFIDmJjgRZOhTW+mDjj9trSHELXv+2AOK4C2dlQ==", + "peer": true, + "dependencies": { + "big-integer": "^1.6.48" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4559,6 +6237,15 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -4571,20 +6258,78 @@ "node": ">=8" } }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -4612,11 +6357,51 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "peer": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -4627,15 +6412,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "peer": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "peer": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -4798,6 +6618,18 @@ "node": ">=8" } }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "peer": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -4843,6 +6675,56 @@ "node": ">= 0.8.0" } }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-sql": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.14.0.tgz", + "integrity": "sha512-dRgINgNd3ZhBDuO/+EFalJjSlAqNXvXv9XDtSCeMufXaP6O64HHLBo1Szo+l+cfvXFxwvkTSGrS+sjpEpSchNA==", + "peer": true, + "dependencies": { + "node-sql-parser": "^4.6.6", + "sql-formatter": "^12.2.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + }, + "peerDependencies": { + "prettier": "^2.0.0" + } + }, + "node_modules/prettier-plugin-sql/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "peer": true + }, "node_modules/pretty-format": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", @@ -4897,15 +6779,42 @@ "node": ">= 6" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "peer": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pure-rand": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", @@ -4942,6 +6851,25 @@ } ] }, + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", + "peer": true + }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "peer": true, + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -4951,6 +6879,36 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "peer": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "peer": true + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -4984,6 +6942,23 @@ "node": ">= 0.10" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -4996,11 +6971,34 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "peer": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "peer": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5009,7 +7007,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5070,6 +7067,37 @@ "node": ">=10" } }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "peer": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "peer": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "peer": true, + "engines": { + "node": ">=0.12" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -5095,6 +7123,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5118,32 +7155,79 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "peer": true + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "peer": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -5154,8 +7238,7 @@ "node_modules/semver/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/serialize-javascript": { "version": "6.0.1", @@ -5172,6 +7255,36 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, + "node_modules/sfmc-sdk": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sfmc-sdk/-/sfmc-sdk-1.0.1.tgz", + "integrity": "sha512-0GdDnNa6jqoLGSHf3ByoQNAzlzdGxjSHeH55zFaY9tM4YPtSRgTrsBkZCh5xOBLwr4u7u2X9lbJpxbTWyULhpA==", + "peer": true, + "dependencies": { + "axios": "^1.3.5", + "fast-xml-parser": "4.2.0", + "p-limit": "3.1.0" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.14.4" + } + }, + "node_modules/sfmc-sdk/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -5205,11 +7318,52 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-git": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.18.0.tgz", + "integrity": "sha512-Yt0GJ5aYrpPci3JyrYcsPz8Xc05Hi4JPSOb+Sgn/BmPX35fn/6Fp9Mef8eMBCrL2siY5w4j49TA5Q+bxPpri1Q==", + "peer": true, + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, "node_modules/sisteransi": { "version": "1.0.5", @@ -5277,6 +7431,33 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/sql-formatter": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-12.2.3.tgz", + "integrity": "sha512-sVRjEBTKJ5to2kfn11eDHcfVswz1//AL6HdGbPVN8ROWQ/XTv7E3z7rjgRxEimaBq5yDBE55JCljgcJ8a3+s7Q==", + "peer": true, + "dependencies": { + "argparse": "^2.0.1", + "nearley": "^2.20.1" + }, + "bin": { + "sql-formatter": "bin/sql-formatter-cli.cjs" + } + }, + "node_modules/sql-formatter/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -5298,11 +7479,22 @@ "node": ">=8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "peer": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -5324,7 +7516,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5338,7 +7529,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5376,11 +7566,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "peer": true + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -5543,12 +7738,35 @@ "node": ">=8" } }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "peer": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "peer": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -5564,6 +7782,15 @@ "node": ">=4" } }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5576,6 +7803,26 @@ "node": ">=8.0" } }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "peer": true + }, + "node_modules/traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + }, "node_modules/ts-jest": { "version": "29.1.0", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", @@ -5619,15 +7866,6 @@ } } }, - "node_modules/ts-jest/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/ts-loader": { "version": "9.4.2", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", @@ -5763,7 +8001,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -5771,6 +8008,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "peer": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/typescript": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", @@ -5784,6 +8030,27 @@ "node": ">=12.20" } }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "peer": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -5810,20 +8077,58 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "peer": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "peer": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/v8-compile-cache": { "version": "2.3.0", @@ -5875,6 +8180,15 @@ "node": ">=10.13.0" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "peer": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/webpack": { "version": "5.76.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", @@ -6054,12 +8368,135 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "peer": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "peer": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "peer": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "peer": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, + "node_modules/winston": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.9.0.tgz", + "integrity": "sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==", + "dependencies": { + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -6073,7 +8510,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6089,14 +8525,33 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "peer": true, + "engines": { + "node": ">=8" + } }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "engines": { "node": ">=10" } @@ -6107,6 +8562,31 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -6122,7 +8602,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "engines": { "node": ">=10" }, @@ -6608,6 +9087,11 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + }, "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -6633,6 +9117,16 @@ } } }, + "@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -7071,6 +9565,21 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "peer": true, + "requires": { + "debug": "^4.1.1" + } + }, + "@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "peer": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -7109,6 +9618,12 @@ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "peer": true + }, "@sinonjs/commons": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", @@ -7127,6 +9642,15 @@ "@sinonjs/commons": "^3.0.0" } }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "peer": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -7305,6 +9829,11 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "@types/triple-beam": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", + "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + }, "@types/vscode": { "version": "1.76.0", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz", @@ -7644,6 +10173,35 @@ "uri-js": "^4.2.2" } }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "peer": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + } + } + }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -7651,6 +10209,15 @@ "dev": true, "requires": {} }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "peer": true, + "requires": { + "string-width": "^4.1.0" + } + }, "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -7661,7 +10228,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, "requires": { "type-fest": "^0.21.3" }, @@ -7669,22 +10235,19 @@ "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" } } }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -7716,6 +10279,16 @@ "sprintf-js": "~1.0.2" } }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -7734,6 +10307,40 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "peer": true + }, + "atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "peer": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "peer": true + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "babel-jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", @@ -7831,6 +10438,64 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "peer": true + }, + "beauty-amp-core": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/beauty-amp-core/-/beauty-amp-core-0.3.7.tgz", + "integrity": "sha512-/a3jRMN0IZ4SaV8PoVLqprk0sSEXvTOOVs4jdSQhgNBJYRkHau0PhUwju6PzfNvQpleZXWdechrPQAVAxIKnHA==", + "peer": true + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "peer": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "peer": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "peer": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -7880,12 +10545,64 @@ "node-int64": "^0.4.0" } }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "peer": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "peer": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "peer": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "peer": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -7895,8 +10612,7 @@ "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { "version": "1.0.30001465", @@ -7923,7 +10639,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7935,6 +10650,12 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "peer": true + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -7959,6 +10680,58 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "peer": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "peer": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-progress": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", + "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "peer": true, + "requires": { + "string-width": "^4.2.3" + } + }, + "cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "peer": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "peer": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "peer": true + }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -7970,6 +10743,15 @@ "shallow-clone": "^3.0.0" } }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "peer": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -7982,11 +10764,34 @@ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + } + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -7994,8 +10799,16 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } }, "colorette": { "version": "2.0.19", @@ -8003,11 +10816,34 @@ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, + "colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "requires": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "peer": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "concat-map": { "version": "0.0.1", @@ -8015,6 +10851,78 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "conf": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "peer": true, + "requires": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + } + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "peer": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "peer": true, + "requires": { + "is-obj": "^2.0.0" + } + } + } + }, + "console.table": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", + "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", + "peer": true, + "requires": { + "easy-table": "1.1.0" + } + }, "convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -8046,15 +10954,46 @@ "which": "^2.0.1" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "peer": true + }, + "debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "peer": true, + "requires": { + "mimic-fn": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "peer": true + } + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "requires": { "ms": "2.1.2" } }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "peer": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -8070,6 +11009,46 @@ "type-detect": "^4.0.0" } }, + "deep-equal": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", + "peer": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "peer": true + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "peer": true + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -8082,6 +11061,37 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "peer": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "peer": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "peer": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "peer": true + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -8103,6 +11113,12 @@ "path-type": "^4.0.0" } }, + "discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "peer": true + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -8112,6 +11128,30 @@ "esutils": "^2.0.2" } }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "peer": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "peer": true + }, + "easy-table": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", + "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "peer": true, + "requires": { + "wcwidth": ">=1.0.1" + } + }, "electron-to-chromium": { "version": "1.4.328", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", @@ -8127,8 +11167,21 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "peer": true, + "requires": { + "once": "^1.4.0" + } }, "enhanced-resolve": { "version": "5.12.0", @@ -8149,6 +11202,12 @@ "ansi-colors": "^4.1.1" } }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "peer": true + }, "envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -8164,6 +11223,31 @@ "is-arrayish": "^0.2.1" } }, + "es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "peer": true + } + } + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -8173,8 +11257,13 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "peer": true }, "escape-string-regexp": { "version": "4.0.0", @@ -8402,11 +11491,21 @@ "jest-util": "^29.5.0" } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "peer": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.12", @@ -8444,6 +11543,15 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-xml-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.0.tgz", + "integrity": "sha512-+zVQv4aVTO+o8oRUyRL7PjgeVo1J6oP8Cw2+a8UTZQcj5V0yUK5T63gTN0ldgiHDPghUjKc4OpT6SwMTwnOQug==", + "peer": true, + "requires": { + "strnum": "^1.0.5" + } + }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -8468,6 +11576,28 @@ "bser": "2.1.1" } }, + "fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "peer": true, + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true + } + } + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -8486,6 +11616,15 @@ "to-regex-range": "^5.0.1" } }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "peer": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -8502,6 +11641,48 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "peer": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "peer": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8512,14 +11693,12 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -8527,6 +11706,12 @@ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "peer": true + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -8536,8 +11721,7 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-func-name": { "version": "2.0.0", @@ -8545,6 +11729,18 @@ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "peer": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -8577,6 +11773,15 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "peer": true, + "requires": { + "ini": "2.0.0" + } + }, "globals": { "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", @@ -8600,26 +11805,104 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "peer": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "peer": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "peer": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "peer": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "peer": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "peer": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "peer": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "peer": true }, "html-escaper": { "version": "2.0.2", @@ -8627,6 +11910,12 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "peer": true + }, "http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -8654,6 +11943,21 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "peer": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "peer": true + }, "ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -8676,6 +11980,12 @@ "resolve-from": "^4.0.0" } }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "peer": true + }, "import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -8689,8 +11999,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "inflight": { "version": "1.0.6", @@ -8705,8 +12014,47 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "peer": true + }, + "inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "peer": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "peer": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } }, "interpret": { "version": "2.2.0", @@ -8714,12 +12062,75 @@ "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "peer": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "peer": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "peer": true, + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "peer": true + } + } + }, "is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -8729,6 +12140,15 @@ "has": "^1.0.3" } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "peer": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -8738,8 +12158,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-generator-fn": { "version": "2.1.0", @@ -8756,12 +12175,61 @@ "is-extglob": "^2.1.1" } }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "peer": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "peer": true + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "peer": true + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "peer": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "peer": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "peer": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "peer": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -8771,11 +12239,100 @@ "isobject": "^3.0.1" } }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "peer": true + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "peer": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "peer": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "peer": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "peer": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "peer": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "peer": true + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "peer": true + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "peer": true }, "isarray": { "version": "1.0.0", @@ -8923,40 +12480,6 @@ "jest-validate": "^29.5.0", "prompts": "^2.0.1", "yargs": "^17.3.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } } }, "jest-config": { @@ -9407,6 +12930,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "peer": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -9419,18 +12948,44 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", + "peer": true + }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json-to-table": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/json-to-table/-/json-to-table-4.2.1.tgz", + "integrity": "sha512-4PSWfPZyFssRj5BwjusoMSPSKoqfoULLZdrAgHvDkpXSZVID4gSe32NdemeePANf7oLa+x8znIWVIc8ba4gM/g==", + "peer": true, + "requires": { + "lodash": "~4.17.20", + "traverse": "~0.6.6" + } + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -9443,6 +12998,15 @@ "setimmediate": "^1.0.5" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "peer": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -9455,6 +13019,20 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, + "kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "peer": true, + "requires": { + "package-json": "^6.3.0" + } + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -9492,6 +13070,30 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "peer": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true + } + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "peer": true + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -9510,6 +13112,29 @@ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "peer": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "logform": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", + "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", + "requires": { + "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, "loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -9519,6 +13144,12 @@ "get-func-name": "^2.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "peer": true + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9532,7 +13163,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -9540,8 +13170,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -9560,6 +13189,46 @@ "tmpl": "1.0.5" } }, + "mcdev": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mcdev/-/mcdev-5.1.0.tgz", + "integrity": "sha512-RWRaEVy0WsQAT4w2T3SHS9CS36sn3pTTOyyDWApQctYCQxdvNzwvjbVtQRrmv32M/k+Xlyau8M4L/Kk2/jCHkQ==", + "peer": true, + "requires": { + "beauty-amp-core": "0.3.7", + "cli-progress": "3.11.2", + "command-exists": "1.2.9", + "conf": "10.2.0", + "console.table": "0.10.0", + "deep-equal": "2.2.1", + "fs-extra": "11.1.0", + "fsevents": "*", + "inquirer": "8.2.5", + "json-to-table": "4.2.1", + "mustache": "4.2.0", + "p-limit": "3.1.0", + "prettier": "2.8.8", + "prettier-plugin-sql": "0.14.0", + "semver": "7.5.0", + "sfmc-sdk": "1.0.1", + "simple-git": "3.18.0", + "toposort": "2.0.2", + "update-notifier": "5.1.0", + "winston": "3.9.0", + "yargs": "17.7.2" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -9585,14 +13254,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -9600,8 +13267,13 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "peer": true }, "minimatch": { "version": "3.1.2", @@ -9612,11 +13284,34 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "peer": true + }, + "moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "peer": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "peer": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "peer": true }, "natural-compare": { "version": "1.4.0", @@ -9624,6 +13319,18 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "peer": true, + "requires": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + } + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -9642,12 +13349,27 @@ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, + "node-sql-parser": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.7.0.tgz", + "integrity": "sha512-6pKgpQ15gwzDdIZVSDYH/5rVOOEWXzIrVOcq7FLCtoo+AVXTFIDmJjgRZOhTW+mDjj9trSHELXv+2AOK4C2dlQ==", + "peer": true, + "requires": { + "big-integer": "^1.6.48" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "peer": true + }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -9657,20 +13379,60 @@ "path-key": "^3.0.0" } }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "peer": true + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "peer": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } }, + "one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "requires": { + "fn.name": "1.x.x" + } + }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "requires": { "mimic-fn": "^2.1.0" } @@ -9689,20 +13451,76 @@ "word-wrap": "^1.2.3" } }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "peer": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "peer": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "peer": true + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "peer": true, + "requires": { + "p-limit": "^2.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "peer": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } }, "pako": { "version": "1.0.11", @@ -9823,6 +13641,15 @@ } } }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "peer": true, + "requires": { + "find-up": "^3.0.0" + } + }, "postcss": { "version": "8.4.21", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", @@ -9848,6 +13675,37 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "peer": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "peer": true + }, + "prettier-plugin-sql": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.14.0.tgz", + "integrity": "sha512-dRgINgNd3ZhBDuO/+EFalJjSlAqNXvXv9XDtSCeMufXaP6O64HHLBo1Szo+l+cfvXFxwvkTSGrS+sjpEpSchNA==", + "peer": true, + "requires": { + "node-sql-parser": "^4.6.6", + "sql-formatter": "^12.2.0", + "tslib": "^2.5.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "peer": true + } + } + }, "pretty-format": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", @@ -9889,11 +13747,35 @@ "sisteransi": "^1.0.5" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "peer": true, + "requires": { + "escape-goat": "^2.0.0" + } }, "pure-rand": { "version": "6.0.2", @@ -9907,6 +13789,22 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", + "peer": true + }, + "randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "peer": true, + "requires": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9916,6 +13814,32 @@ "safe-buffer": "^5.1.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "peer": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "peer": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "peer": true + } + } + }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -9946,23 +13870,50 @@ "resolve": "^1.9.0" } }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "peer": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "peer": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "peer": true, + "requires": { + "rc": "^1.2.8" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, "resolve": { "version": "1.22.1", @@ -10004,6 +13955,31 @@ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "peer": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "peer": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "peer": true + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10019,6 +13995,12 @@ "glob": "^7.1.3" } }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "peer": true + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -10028,17 +14010,43 @@ "queue-microtask": "^1.2.2" } }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "peer": true, + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "peer": true + } + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "requires": { "lru-cache": "^6.0.0" }, @@ -10047,7 +14055,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -10055,8 +14062,24 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "peer": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true } } }, @@ -10075,6 +14098,28 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, + "sfmc-sdk": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sfmc-sdk/-/sfmc-sdk-1.0.1.tgz", + "integrity": "sha512-0GdDnNa6jqoLGSHf3ByoQNAzlzdGxjSHeH55zFaY9tM4YPtSRgTrsBkZCh5xOBLwr4u7u2X9lbJpxbTWyULhpA==", + "peer": true, + "requires": { + "axios": "^1.3.5", + "fast-xml-parser": "4.2.0", + "p-limit": "3.1.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -10099,11 +14144,47 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "peer": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-git": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.18.0.tgz", + "integrity": "sha512-Yt0GJ5aYrpPci3JyrYcsPz8Xc05Hi4JPSOb+Sgn/BmPX35fn/6Fp9Mef8eMBCrL2siY5w4j49TA5Q+bxPpri1Q==", + "peer": true, + "requires": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.4" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } }, "sisteransi": { "version": "1.0.5", @@ -10156,6 +14237,29 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "sql-formatter": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-12.2.3.tgz", + "integrity": "sha512-sVRjEBTKJ5to2kfn11eDHcfVswz1//AL6HdGbPVN8ROWQ/XTv7E3z7rjgRxEimaBq5yDBE55JCljgcJ8a3+s7Q==", + "peer": true, + "requires": { + "argparse": "^2.0.1", + "nearley": "^2.20.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + } + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" + }, "stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -10173,11 +14277,19 @@ } } }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "peer": true, + "requires": { + "internal-slot": "^1.0.4" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -10196,7 +14308,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -10207,7 +14318,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -10230,11 +14340,16 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "peer": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -10341,12 +14456,32 @@ "minimatch": "^3.0.4" } }, + "text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "peer": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "peer": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -10359,6 +14494,12 @@ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "peer": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -10368,6 +14509,23 @@ "is-number": "^7.0.0" } }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "peer": true + }, + "traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "peer": true + }, + "triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + }, "ts-jest": { "version": "29.1.0", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", @@ -10382,14 +14540,6 @@ "make-error": "1.x", "semver": "7.x", "yargs-parser": "^21.0.1" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } } }, "ts-loader": { @@ -10478,8 +14628,16 @@ "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "peer": true, + "requires": { + "is-typedarray": "^1.0.0" + } }, "typescript": { "version": "5.0.4", @@ -10487,6 +14645,21 @@ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "peer": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "peer": true + }, "update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -10497,20 +14670,49 @@ "picocolors": "^1.0.0" } }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "peer": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "peer": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "v8-compile-cache": { "version": "2.3.0", @@ -10556,6 +14758,15 @@ "graceful-fs": "^4.1.2" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "peer": true, + "requires": { + "defaults": "^1.0.3" + } + }, "webpack": { "version": "5.76.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", @@ -10667,12 +14878,112 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "peer": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "peer": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "peer": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "peer": true, + "requires": { + "string-width": "^4.0.0" + } + }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, + "winston": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.9.0.tgz", + "integrity": "sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==", + "requires": { + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "requires": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -10683,7 +14994,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10693,14 +15003,30 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "peer": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "peer": true }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yallist": { "version": "3.1.1", @@ -10708,6 +15034,25 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -10719,8 +15064,7 @@ "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/package.json b/package.json index b7aae3a..5f8f6d0 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "Accenture Salesforce Marketing Cloud DevTools Vscode Extension", "version": "0.0.1", "peerDependencies": { - "mcdev": ">=5.1.0" - }, + "mcdev": ">=5.1.0" + }, "repository": { "type": "git", "url": "https://github.com/Accenture/sfmc-devtools-vscode.git" @@ -74,6 +74,7 @@ "webpack-cli": "^4.7.0" }, "dependencies": { - "@salesforce-ux/design-system": "^2.8.1" + "@salesforce-ux/design-system": "^2.8.1", + "winston": "^3.9.0" } } diff --git a/src/devtools/commands/DevToolsCommands.ts b/src/devtools/commands/DevToolsCommands.ts index 6bf2d3b..893e553 100644 --- a/src/devtools/commands/DevToolsCommands.ts +++ b/src/devtools/commands/DevToolsCommands.ts @@ -73,7 +73,6 @@ abstract class DevToolsCommands { // Configured optional Params if("optionalParams" in config && config.optionalParams.length){ config.optionalParams.forEach((param: string) => { - console.log(param + ' ---> ', args[param]); if(typeof args[param] === "boolean"){ // if args[paran] is true it puts in the command the format --param (eg --json --fromRetrieve) args[param] = args[param] diff --git a/src/devtools/main.ts b/src/devtools/main.ts index 16010c5..ab17f42 100644 --- a/src/devtools/main.ts +++ b/src/devtools/main.ts @@ -8,10 +8,11 @@ import { devtoolsContainers } from "./containers"; import { editorInput } from "../editor/input"; import { editorContext } from "../editor/context"; import { editorWorkspace } from "../editor/workspace"; -import { log } from "../editor/output"; +import { editorOutput, log } from "../editor/output"; import { InstallDevToolsResponseOptions } from "../config/installer.config"; import { lib } from "../shared/utils/lib"; + async function initDevToolsExtension(): Promise{ try{ diff --git a/src/editor/output.ts b/src/editor/output.ts index 10a8e61..c85385f 100644 --- a/src/editor/output.ts +++ b/src/editor/output.ts @@ -1,6 +1,6 @@ import { OutputChannel, window } from "vscode"; import { lib } from "../shared/utils/lib"; - +import { fileLogger, FileLogger } from "../shared/utils/fileLogger"; enum LogLevel { debug = "DEBUG", info = "INFO", @@ -8,23 +8,51 @@ enum LogLevel { error = "ERROR" } +// DEBUG, WARNING AND ERROR => File logger +// INFO => OutputChannel + let outputChannel: OutputChannel; +let fileLoggerMap: { [key: string]: FileLogger } = {}; + +function initFileLogger(logPath: string | string[]){ + fileLoggerMap = [logPath] + .flat() + .reduce((prev: {}, path: string) => { + const projectName: string = lib.getProjectNameFromPath(path); + return { + ...prev, + [projectName]: fileLogger.createFileLogger(path.replace('/c:', '')) + }; + },{}); +} + +function showOuputChannel(){ + if(outputChannel){ + outputChannel.show(); + } +} -function log(level: keyof typeof LogLevel, ...output: any){ +function log(level: keyof typeof LogLevel, output: string | number | object, logProject?: string){ + const outputStr: string = lib.mapObject(output); // creates an output channel if(!outputChannel){ outputChannel = window.createOutputChannel("SFMC Devtools"); + outputChannel.hide(); } - const date: string = new Date() - .toISOString() - .replace("T", " ").replace(/\..+/, ''); + if(LogLevel[level] === LogLevel.info){ + outputChannel.appendLine(`${outputStr}\n`); + } - outputChannel.appendLine(`${date} ${LogLevel[level]}: `); - output.map((args: any) => { - outputChannel.appendLine('' + lib.mapObject(args) + '\n'); - }); - outputChannel.show(); + if(logProject && logProject in fileLoggerMap){ + const logger: FileLogger = fileLoggerMap[logProject]; + logger[level](outputStr); + } } -export { log }; \ No newline at end of file + +export { log }; +export const editorOutput = { + initFileLogger, + showOuputChannel +}; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index f6a0426..482a5fb 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,11 +1,6 @@ -import { ExtensionContext } from 'vscode'; -import { editorContext } from './editor/context'; +import { editorContext, ExtensionContext } from './editor/context'; import { devtoolsMain } from './devtools/main'; -import { log } from './editor/output'; - export async function activate(context: ExtensionContext) { - log("info", "Activating extension..."); - log("debug", "Setting context..."); editorContext.set(context); devtoolsMain.initDevToolsExtension(); } diff --git a/src/shared/utils/fileLogger.ts b/src/shared/utils/fileLogger.ts new file mode 100644 index 0000000..2d5d1df --- /dev/null +++ b/src/shared/utils/fileLogger.ts @@ -0,0 +1,24 @@ +import winston from "winston"; +const vscodeFileLogsLevel: string[] = ["info", "error"]; +const vscodeLogsPath: string = 'logs/vscode-logs'; + +function createFileLogger(logPath: string): winston.Logger { + const logFileName: string = new Date().toISOString().split(':').join('.'); + const transports: winston.transports.FileTransportInstance[] = + vscodeFileLogsLevel + .map((level: string) => new winston.transports.File({ + filename: `${logPath}/${vscodeLogsPath}/${logFileName}${level === "error" ? "-error" : ""}.log`, + level: level, + format: winston.format.combine( + winston.format.timestamp({ format: 'HH:mm:ss.SSS' }), + winston.format.simple(), + winston.format.printf((info) => `${info.timestamp} ${info.level}: ${info.message}`) + ), + })); + return winston.createLogger({transports}); +} + +export type FileLogger = winston.Logger; +export const fileLogger = { + createFileLogger +}; \ No newline at end of file diff --git a/src/shared/utils/lib.ts b/src/shared/utils/lib.ts index ae047d6..43b0bdd 100644 --- a/src/shared/utils/lib.ts +++ b/src/shared/utils/lib.ts @@ -5,10 +5,8 @@ function parseArrayJsonStringToArray(jsonStr: string): return JSON.parse(jsonStr); } -function mapObject(object: any): string { +function mapObject(object: string | number | object): string { switch(typeof object){ - case "undefined": - return "undefined"; case "string": return object; case "number": From 3f9dfaf6ebb965fb53a59ca9173062da638a6d4f Mon Sep 17 00:00:00 2001 From: Ana Silva Date: Mon, 3 Jul 2023 15:11:15 +0200 Subject: [PATCH 19/24] updated vsix extension file --- .vscodeignore | 3 +++ sfmc-devtools-vscode-0.0.1.vsix | Bin 19609458 -> 265849 bytes src/devtools/main.ts | 2 +- src/editor/output.ts | 10 ++++++---- 4 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 .vscodeignore diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..280451f --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,3 @@ +**/*.ts +node_modules +src \ No newline at end of file diff --git a/sfmc-devtools-vscode-0.0.1.vsix b/sfmc-devtools-vscode-0.0.1.vsix index f419c33ede022d9da42b2ca54ef2fe364683f9da..cd536d75debf6da2fc12918faa8c09baaa857d9e 100644 GIT binary patch literal 265849 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

    (?${fp=HgZlX;h{GCVzmE;%aTa| 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%0DJ8YUj@CIlOn-zbK#awZdna{cSkIUA~Lb@M7U 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%0AS$kGBF~09Wss&y>(^`Qsb-TiqpeK2J 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

  2. xmF_;n8!Zs(h7em=G>xPHO_#c?282ra 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 z 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