From 2c03939f5abe7bd883c3b0ae6a138596621dc1a7 Mon Sep 17 00:00:00 2001 From: CeciliaAvila Date: Fri, 1 Jul 2022 14:09:18 -0300 Subject: [PATCH 01/68] Update Settings labels to show as Configure --- .../packages/client/src/components/ProjectTree/treeItem.tsx | 2 +- .../DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Composer/packages/client/src/components/ProjectTree/treeItem.tsx b/Composer/packages/client/src/components/ProjectTree/treeItem.tsx index 4ff65867ae..937993492e 100644 --- a/Composer/packages/client/src/components/ProjectTree/treeItem.tsx +++ b/Composer/packages/client/src/components/ProjectTree/treeItem.tsx @@ -373,7 +373,7 @@ const DiagnosticIcons = (props: { {errors.map((item) => { let linkText = item.source; if (item.source === 'appsettings.json') { - linkText = 'Fix in bot settings'; + linkText = 'Fix in Configure your bot'; } return (
diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts index 8324d0979d..aaf63571ef 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts @@ -211,7 +211,7 @@ export class SettingDiagnostic extends DiagnosticInfo { super(rootProjectId, projectId, id, location, diagnostic); this.message = `${replaceDialogDiagnosticLabel(diagnostic.path)} ${diagnostic.message}`; this.dialogPath = diagnostic.path; - this.friendlyLocationBreadcrumbItems = ['Settings']; + this.friendlyLocationBreadcrumbItems = ['Configure']; } getUrl = (hash?: string) => { return createBotSettingUrl(this.rootProjectId, this.projectId, hash); From 8300f371e90d3592ac674af4f124ae677439acd0 Mon Sep 17 00:00:00 2001 From: Cecilia Avila <44245136+ceciliaavila@users.noreply.github.com> Date: Tue, 28 Feb 2023 13:59:38 -0300 Subject: [PATCH 02/68] fix: [#9364] Missing InputHint support for IgnoringSpeechInput and IgnoringNonSpeechInput (#9456) * fix: add missing prompt options * chore: revert extra changes * add values to util.ts * updated yarn-berry.lock * Update yarn-berry.lock files * Update yarn-berry.lock --------- Co-authored-by: Nahuel Perales Co-authored-by: tracyboehrer Co-authored-by: Chris Whitten --- .../__tests__/mocks/mockProjectResponse.json | 2 +- .../src/lg/modalityEditors/SpeechModalityEditor.tsx | 10 ++++++++++ Composer/packages/lib/code-editor/src/lg/types.ts | 8 +++++++- Composer/packages/server/src/locales/en-US.json | 6 ++++++ .../language-servers/language-generation/src/utils.ts | 2 +- extensions/azurePublish/yarn-berry.lock | 3 ++- 6 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/mocks/mockProjectResponse.json b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/mocks/mockProjectResponse.json index f5ea636495..7413d32a0d 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/mocks/mockProjectResponse.json +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/mocks/mockProjectResponse.json @@ -3085,7 +3085,7 @@ "title": "speak" }, "inputHint": { - "description": "Indicates whether your bot is accepting,\nexpecting, or ignoring user input after the message is delivered to the client. Possible\nvalues include: 'acceptingInput', 'ignoringInput', 'expectingInput'", + "description": "Indicates whether your bot is accepting,\nexpecting, or ignoring user input after the message is delivered to the client. Possible\nvalues include: 'acceptingInput', 'ignoringInput', 'expectingInput', 'ignoringSpeechInput', 'ignoringNonSpeechInput'", "type": "string", "title": "inputHint" }, diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx index 312e04623b..b75e32888c 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx @@ -79,6 +79,16 @@ const SpeechModalityEditor = React.memo( text: formatMessage('Expecting'), selected: inputHint === 'expectingInput', }, + { + key: 'ignoringSpeechInput', + text: formatMessage('Ignoring Speech'), + selected: inputHint === 'ignoringSpeechInput', + }, + { + key: 'ignoringNonSpeechInput', + text: formatMessage('Ignoring Non Speech'), + selected: inputHint === 'ignoringNonSpeechInput', + }, ], [inputHint] ); diff --git a/Composer/packages/lib/code-editor/src/lg/types.ts b/Composer/packages/lib/code-editor/src/lg/types.ts index 0a5a0766cb..bf8003fb12 100644 --- a/Composer/packages/lib/code-editor/src/lg/types.ts +++ b/Composer/packages/lib/code-editor/src/lg/types.ts @@ -34,7 +34,13 @@ export type CommonModalityEditorProps = { /** * Structured response types. */ -export const acceptedInputHintValues = ['expectingInput', 'ignoringInput', 'acceptingInput'] as const; +export const acceptedInputHintValues = [ + 'expectingInput', + 'ignoringInput', + 'acceptingInput', + 'ignoringSpeechInput', + 'ignoringNonSpeechInput', +] as const; export const acceptedAttachmentLayout = ['carousel', 'list'] as const; export const modalityTypes = ['Text', 'Speak', 'Attachments', 'SuggestedActions'] as const; diff --git a/Composer/packages/server/src/locales/en-US.json b/Composer/packages/server/src/locales/en-US.json index 95d8a0e0e2..955c3f84e9 100644 --- a/Composer/packages/server/src/locales/en-US.json +++ b/Composer/packages/server/src/locales/en-US.json @@ -1955,6 +1955,12 @@ "ignoring_dc76ef87": { "message": "Ignoring" }, + "ignoring_non_speech_d2746d71": { + "message": "Ignoring Non Speech" + }, + "ignoring_speech_fe0a02ce": { + "message": "Ignoring Speech" + }, "import_as_new_35630827": { "message": "Import as new" }, diff --git a/Composer/packages/tools/language-servers/language-generation/src/utils.ts b/Composer/packages/tools/language-servers/language-generation/src/utils.ts index ecc67c5dce..2044402857 100644 --- a/Composer/packages/tools/language-servers/language-generation/src/utils.ts +++ b/Composer/packages/tools/language-servers/language-generation/src/utils.ts @@ -168,7 +168,7 @@ export const cardPropPossibleValueType = { Text: 'Text | ${Expression}', Speak: 'Text | ${Expression}', Attachments: 'List of attachments', - InputHint: 'accepting | ignoring | expecting', + InputHint: 'accepting | ignoring | expecting | ignoringSpeech | ignoringNonSpeech', AttachmentLayout: 'list | carousel', SuggestedActions: 'Text | ${Expression}', }; diff --git a/extensions/azurePublish/yarn-berry.lock b/extensions/azurePublish/yarn-berry.lock index 493207d0da..b659e091b8 100644 --- a/extensions/azurePublish/yarn-berry.lock +++ b/extensions/azurePublish/yarn-berry.lock @@ -1852,7 +1852,7 @@ __metadata: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=e05bfa&locator=azurePublish%40workspace%3A." + resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=9daeab&locator=azurePublish%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -1875,6 +1875,7 @@ __metadata: "@bfc/ui-shared": "*" react: 16.13.1 react-dom: 16.13.1 + checksum: a0df5aa27ed60aa635a93c64c60feaaa3e7709ad306bc923a291616fb639898c2fd35909ee51858637295ee349001cb697ea92bbe86c34b1a7ec2d6038be7cc6 languageName: node linkType: hard From a95764529a99ff2e1cc9351c56fb46e21660849c Mon Sep 17 00:00:00 2001 From: sw-joelmut Date: Fri, 27 Jan 2023 17:20:20 -0300 Subject: [PATCH 03/68] Fix WebChat get attachment --- .../server/src/directline/middleware/attachmentHandler.ts | 3 +-- .../packages/server/src/middleware/logNetworkTraffic.ts | 8 +++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Composer/packages/server/src/directline/middleware/attachmentHandler.ts b/Composer/packages/server/src/directline/middleware/attachmentHandler.ts index b4396af9df..50ef44ade6 100644 --- a/Composer/packages/server/src/directline/middleware/attachmentHandler.ts +++ b/Composer/packages/server/src/directline/middleware/attachmentHandler.ts @@ -76,8 +76,7 @@ export function createGetAttachmentHandler(state: DLServerState) { buffer = Buffer.from(attachmentBase64.toString(), 'base64'); } - res.type(attachment.type); - res.send(StatusCodes.OK, buffer); + res.status(StatusCodes.OK).type(attachment.type).send(buffer); } else { handleDirectLineErrors(req, res, { status: StatusCodes.NOT_FOUND, diff --git a/Composer/packages/server/src/middleware/logNetworkTraffic.ts b/Composer/packages/server/src/middleware/logNetworkTraffic.ts index 175cd5a552..6a93c6866c 100644 --- a/Composer/packages/server/src/middleware/logNetworkTraffic.ts +++ b/Composer/packages/server/src/middleware/logNetworkTraffic.ts @@ -18,9 +18,11 @@ export function logNetworkTraffic(req: Request, res: Response, next?: NextFuncti // when the request finishes, log the payload and status code to the client res.once('finish', () => { let data: ConversationNetworkErrorItem | ConversationNetworkTrafficItem | undefined; + let payload = (res as any).sentData; + payload = typeof payload === 'string' ? JSON.parse(payload || '{}') : payload; if (res.statusCode >= 400) { // an error was sent to the client - const { error = {} } = JSON.parse((res as any).sentData || '{}'); + const { error = {} } = payload; data = { error: { details: error.details, @@ -29,7 +31,7 @@ export function logNetworkTraffic(req: Request, res: Response, next?: NextFuncti id: uuid(), request: { method: req.method, payload: req.body, route: req.originalUrl }, response: { - payload: JSON.parse((res as any).sentData || '{}'), + payload, statusCode: res.statusCode, }, timestamp: Date.now(), @@ -41,7 +43,7 @@ export function logNetworkTraffic(req: Request, res: Response, next?: NextFuncti id: uuid(), request: { method: req.method, payload: req.body, route: req.originalUrl }, response: { - payload: JSON.parse((res as any).sentData || '{}'), + payload, statusCode: res.statusCode, }, timestamp: Date.now(), From ee8b66ca6a1492676323e480af3be62c6399c269 Mon Sep 17 00:00:00 2001 From: sw-joelmut Date: Tue, 7 Feb 2023 13:09:34 -0300 Subject: [PATCH 04/68] Fix attachmentHandler unit tests --- .../__tests__/attachmentHandler.test.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Composer/packages/server/src/directline/middleware/__tests__/attachmentHandler.test.ts b/Composer/packages/server/src/directline/middleware/__tests__/attachmentHandler.test.ts index 1f97be9f81..c687ad9a3d 100644 --- a/Composer/packages/server/src/directline/middleware/__tests__/attachmentHandler.test.ts +++ b/Composer/packages/server/src/directline/middleware/__tests__/attachmentHandler.test.ts @@ -20,9 +20,14 @@ const mockSend = jest.fn(() => ({ end: mockEnd, })); +const mockType = jest.fn(() => ({ + send: mockSend, +})); + const mockStatus = jest.fn(() => ({ json: mockJsonResponse, send: mockSend, + type: mockType, })); describe('getAttachment handler', () => { @@ -54,12 +59,15 @@ describe('getAttachment handler', () => { end: jest.fn(), send: jest.fn(), type: jest.fn(), + status: mockStatus, json: mockJsonResponse, }; getAttachmentHandler(req, res); - expect(res.send).toHaveBeenCalledWith(StatusCodes.OK, Buffer.from(mockAttachmentData)); + expect(res.status).toHaveBeenCalledWith(StatusCodes.OK); + expect(res.status().type).toHaveBeenCalledWith('text/plain'); + expect(res.status().type().send).toHaveBeenCalledWith(Buffer.from(mockAttachmentData)); }); it('should return the attachment content uploaded via the bot', () => { @@ -80,12 +88,14 @@ describe('getAttachment handler', () => { end: jest.fn(), type: jest.fn(), send: jest.fn(), - status: jest.fn(), + status: mockStatus, }; getAttachmentHandler(req, res); - expect(res.send).toHaveBeenCalledWith(StatusCodes.OK, Buffer.from(mockAttachmentData.toString(), 'base64')); + expect(res.status).toHaveBeenCalledWith(StatusCodes.OK); + expect(res.status().type).toHaveBeenCalledWith('text/plain'); + expect(res.status().type().send).toHaveBeenCalledWith(Buffer.from(mockAttachmentData.toString(), 'base64')); }); it('should send an error message if the original view is requested, but missing', () => { From 04de997c3bd75ff38e3abb748e18213e4f1f9c7e Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 1 Mar 2023 16:05:56 -0800 Subject: [PATCH 05/68] fix: package manager readme display in sidebar and modal --- extensions/packageManager/src/pages/Library.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/packageManager/src/pages/Library.tsx b/extensions/packageManager/src/pages/Library.tsx index 99783ae6ca..2691ae8f26 100644 --- a/extensions/packageManager/src/pages/Library.tsx +++ b/extensions/packageManager/src/pages/Library.tsx @@ -211,7 +211,7 @@ const Library: React.FC = () => { }; const getReadmeAPI = (packageName: string) => { - return httpClient.get(`${API_ROOT}/readme/${packageName}`); + return httpClient.get(`${API_ROOT}/readme/${encodeURIComponent(packageName)}`); }; const uninstallComponentAPI = (projectId: string, packageName: string) => { @@ -446,6 +446,8 @@ const Library: React.FC = () => { setWorking(''); updateInstalledComponents(results.data.components); + await reloadProject(); + // find newly installed item // and pop up the readme if one exists. const newItem = results.data.components.find((i) => i.name === packageName); @@ -453,8 +455,6 @@ const Library: React.FC = () => { setSelectedItem(newItem); setReadmeHidden(false); } - - await reloadProject(); } } catch (err) { telemetryClient.track('PackageInstallFailed', { package: packageName, version: version, isUpdate: isUpdating }); @@ -631,7 +631,7 @@ const Library: React.FC = () => { {selectedItem && (
diff --git a/Composer/packages/client/src/pages/botProject/BotLanguage.tsx b/Composer/packages/client/src/pages/botProject/BotLanguage.tsx index ef2a8649f2..b1b9798a94 100644 --- a/Composer/packages/client/src/pages/botProject/BotLanguage.tsx +++ b/Composer/packages/client/src/pages/botProject/BotLanguage.tsx @@ -121,14 +121,8 @@ export const BotLanguage: React.FC = (props) => { const mergedSettings = mergePropertiesManagedByRootBot(projectId, rootBotProjectId, settings); const locale = useRecoilValue(localeState(projectId)); const showAddLanguageModal = useRecoilValue(showAddLanguageModalState(projectId)); - const { - addLanguageDialogBegin, - setSettings, - deleteLanguages, - setLocale, - addLanguageDialogCancel, - addLanguages, - } = useRecoilValue(dispatcherState); + const { addLanguageDialogBegin, setSettings, deleteLanguages, setLocale, addLanguageDialogCancel, addLanguages } = + useRecoilValue(dispatcherState); const languageListOptions = useMemo(() => { const languageList = languageListTemplates(languages, locale, defaultLanguage); @@ -170,7 +164,7 @@ export const BotLanguage: React.FC = (props) => {
{formatMessage( - 'List of languages that bot will be able to understand (User input) and respond to (Bot responses). To make this bot available in other languages, click ‘Manage languages’ to create a copy of the default language, and translate the content into the new language.' + 'List of languages that bot will be able to understand (User input) and respond to (Bot responses). To make this bot available in other languages, click ‘Manage languages’ to create a copy of the default language, and translate the content into the new language.', )}
> = (props) => { +export const BotProjectInfo: React.FC< + RouteComponentProps<{ + projectId?: string; + isRootBot?: boolean; + }> +> = (props) => { const { projectId = '', isRootBot = false } = props; const botProjects = useRecoilValue(localBotsDataSelector); const botProject = botProjects.find((b) => b.projectId === projectId); diff --git a/Composer/packages/client/src/pages/botProject/BotProjectsSettingsTabView.tsx b/Composer/packages/client/src/pages/botProject/BotProjectsSettingsTabView.tsx index 99fe7fe256..0d3a91a98c 100644 --- a/Composer/packages/client/src/pages/botProject/BotProjectsSettingsTabView.tsx +++ b/Composer/packages/client/src/pages/botProject/BotProjectsSettingsTabView.tsx @@ -62,10 +62,12 @@ enum PivotItemKey { // -------------------- BotProjectSettingsTabView -------------------- // -export const BotProjectSettingsTabView: React.FC> = (props) => { +export const BotProjectSettingsTabView: React.FC< + RouteComponentProps<{ + projectId: string; + scrollToSectionId: string; + }> +> = (props) => { const { projectId = '', scrollToSectionId = '' } = props; const botProjects = useRecoilValue(localBotsDataSelector); const botProject = botProjects.find((b) => b.projectId === projectId); diff --git a/Composer/packages/client/src/pages/botProject/CreatePublishProfileDialog.tsx b/Composer/packages/client/src/pages/botProject/CreatePublishProfileDialog.tsx index 410c724b36..12de04701f 100644 --- a/Composer/packages/client/src/pages/botProject/CreatePublishProfileDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/CreatePublishProfileDialog.tsx @@ -36,7 +36,7 @@ export const CreatePublishProfileDialog: React.FC Promise) => { const warningText = formatMessage( - 'Are you sure you want to delete your bot? This action cannot be undone and your bot and all related files in the bot project folder will be permanently deleted. Your Azure resources will remain unchanged.' + 'Are you sure you want to delete your bot? This action cannot be undone and your bot and all related files in the bot project folder will be permanently deleted. Your Azure resources will remain unchanged.', ); const title = formatMessage('Delete Bot'); const settings = { diff --git a/Composer/packages/client/src/pages/botProject/GetAppInfoFromPublishProfileDialog.tsx b/Composer/packages/client/src/pages/botProject/GetAppInfoFromPublishProfileDialog.tsx index 153197023b..4e1c71fe2f 100644 --- a/Composer/packages/client/src/pages/botProject/GetAppInfoFromPublishProfileDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/GetAppInfoFromPublishProfileDialog.tsx @@ -66,7 +66,7 @@ export const GetAppInfoFromPublishProfileDialog: React.FC = (props) => { const dialogTitle = { title: formatMessage('Retrieve App ID from publishing profile'), subText: formatMessage( - 'A publishing profile contains the information necessary to provision and publish your bot, including its App ID.' + 'A publishing profile contains the information necessary to provision and publish your bot, including its App ID.', ), }; diff --git a/Composer/packages/client/src/pages/botProject/PublishProfieWrapperDialog.tsx b/Composer/packages/client/src/pages/botProject/PublishProfieWrapperDialog.tsx index 6682f0a405..195947da23 100644 --- a/Composer/packages/client/src/pages/botProject/PublishProfieWrapperDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/PublishProfieWrapperDialog.tsx @@ -28,7 +28,7 @@ export const PublishProfileWrapperDialog: React.FC( - null + null, ); useEffect(() => { diff --git a/Composer/packages/client/src/pages/botProject/PublishTargets.tsx b/Composer/packages/client/src/pages/botProject/PublishTargets.tsx index e635384026..004cbd884f 100644 --- a/Composer/packages/client/src/pages/botProject/PublishTargets.tsx +++ b/Composer/packages/client/src/pages/botProject/PublishTargets.tsx @@ -101,8 +101,8 @@ export const PublishTargets: React.FC = (props) => { formatMessage('Delete?'), formatMessage( 'Are you sure you want to remove {targetName}? This will remove only the profile and will not delete provisioned resources.', - { targetName } - ) + { targetName }, + ), ); if (confirmed) { const newPublishTargets = publishTargets.filter((t) => t.name !== targetName); diff --git a/Composer/packages/client/src/pages/botProject/RootBotExternalService.tsx b/Composer/packages/client/src/pages/botProject/RootBotExternalService.tsx index e93f81b957..c3a959e810 100644 --- a/Composer/packages/client/src/pages/botProject/RootBotExternalService.tsx +++ b/Composer/packages/client/src/pages/botProject/RootBotExternalService.tsx @@ -155,7 +155,9 @@ export const RootBotExternalService: React.FC = (pr setLocalRootLuisKey(value); } else { setLuisKeyErrorMsg( - formatMessage('LUIS key is required with the current recognizer setting to start your bot locally, and publish') + formatMessage( + 'LUIS key is required with the current recognizer setting to start your bot locally, and publish', + ), ); setLocalRootLuisKey(''); } @@ -185,8 +187,8 @@ export const RootBotExternalService: React.FC = (pr if (!localRootLuisKey) { setLuisKeyErrorMsg( formatMessage( - 'LUIS authoring key is required with the current recognizer setting to start your bot locally, and publish' - ) + 'LUIS authoring key is required with the current recognizer setting to start your bot locally, and publish', + ), ); } else { setLuisKeyErrorMsg(''); @@ -252,7 +254,9 @@ export const RootBotExternalService: React.FC = (pr const handleRootLuisAuthoringKeyOnBlur = () => { if (!localRootLuisKey) { setLuisKeyErrorMsg( - formatMessage('LUIS key is required with the current recognizer setting to start your bot locally, and publish') + formatMessage( + 'LUIS key is required with the current recognizer setting to start your bot locally, and publish', + ), ); } setSettings(projectId, { @@ -325,7 +329,7 @@ export const RootBotExternalService: React.FC = (pr {children} ), - } + }, )}
@@ -393,7 +397,7 @@ export const RootBotExternalService: React.FC = (pr @@ -410,7 +414,7 @@ export const RootBotExternalService: React.FC = (pr {children} ), - } + }, )} )} @@ -439,7 +443,7 @@ export const RootBotExternalService: React.FC = (pr {children} ), - } + }, )}
diff --git a/Composer/packages/client/src/pages/botProject/SkillBotExternalService.tsx b/Composer/packages/client/src/pages/botProject/SkillBotExternalService.tsx index 415a8b3be6..3a6cbe3dbc 100644 --- a/Composer/packages/client/src/pages/botProject/SkillBotExternalService.tsx +++ b/Composer/packages/client/src/pages/botProject/SkillBotExternalService.tsx @@ -168,7 +168,7 @@ export const SkillBotExternalService: React.FC = ( {children} ), - } + }, )}
@@ -223,7 +223,7 @@ export const SkillBotExternalService: React.FC = ( = ( {children} ), - } + }, )}
diff --git a/Composer/packages/client/src/pages/botProject/SkillHostEndPoint.tsx b/Composer/packages/client/src/pages/botProject/SkillHostEndPoint.tsx index 33d2252512..49d5751331 100644 --- a/Composer/packages/client/src/pages/botProject/SkillHostEndPoint.tsx +++ b/Composer/packages/client/src/pages/botProject/SkillHostEndPoint.tsx @@ -60,7 +60,7 @@ export const SkillHostEndPoint: React.FC = (props) => { {children} ), - } + }, )}
= (props) => { {children} ), - } + }, )}
), @@ -437,8 +437,8 @@ export const ABSChannels: React.FC = (props) => { const result = await OpenConfirmModal( formatMessage('Enable speech'), formatMessage( - 'This cognitive service account is already set as the default for another bot. Do you want to enable this service without setting it as default?' - ) + 'This cognitive service account is already set as the default for another bot. Do you want to enable this service without setting it as default?', + ), ); if (result) { toggleSpeechOn(settings, false); @@ -588,7 +588,7 @@ export const ABSChannels: React.FC = (props) => { > {formatMessage( - 'Teams requires a few more steps to get your connection up and running. Follow the instructions on our documentation page to learn how.' + 'Teams requires a few more steps to get your connection up and running. Follow the instructions on our documentation page to learn how.', )} diff --git a/Composer/packages/client/src/pages/botProject/adapters/AdapterSection.tsx b/Composer/packages/client/src/pages/botProject/adapters/AdapterSection.tsx index 7351a40f9c..853a60df5d 100644 --- a/Composer/packages/client/src/pages/botProject/adapters/AdapterSection.tsx +++ b/Composer/packages/client/src/pages/botProject/adapters/AdapterSection.tsx @@ -43,7 +43,7 @@ const AdapterSection = ({ projectId, scrollToSectionId }: Props) => { {children} ), - } + }, )}
@@ -78,7 +78,7 @@ const AdapterSection = ({ projectId, scrollToSectionId }: Props) => { {children} ), - } + }, )} diff --git a/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx b/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx index eb1a117117..7e3900c038 100644 --- a/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/create-publish-profile/ProfileFormDialog.tsx @@ -91,7 +91,7 @@ export const ProfileFormDialog: React.FC = (props) => { setTargetType(type.name); } }, - [types] + [types], ); const saveDisabled = useMemo(() => { diff --git a/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx b/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx index 7cffe90f13..424e5d83a3 100644 --- a/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx +++ b/Composer/packages/client/src/pages/botProject/create-publish-profile/PublishProfileDialog.tsx @@ -41,21 +41,14 @@ const formatDialogTitle = (current) => { subText: formatMessage( 'To test, run and publish your bot, it needs Azure resources such as app registration, hosting and channels.' + ' Other resources, such as language understanding and storage are optional.' + - ' A publishing profile contains all of the information necessary to provision and publish your bot, including its Azure resources.' + ' A publishing profile contains all of the information necessary to provision and publish your bot, including its Azure resources.', ), }; }; export const PublishProfileDialog: React.FC = (props) => { - const { - current, - types, - projectId, - closeDialog, - targets, - setPublishTargets, - onUpdateIsCreateProfileFromSkill, - } = props; + const { current, types, projectId, closeDialog, targets, setPublishTargets, onUpdateIsCreateProfileFromSkill } = + props; const [name, setName] = useState(current?.item.name || ''); const [targetType, setTargetType] = useState(current?.item.type || ''); @@ -146,7 +139,7 @@ export const PublishProfileDialog: React.FC = (props) TelemetryClient.track('NewPublishingProfileSaved', { type }); } }, - [targets, projectId] + [targets, projectId], ); useEffect(() => { diff --git a/Composer/packages/client/src/pages/botProject/runtime-settings/RuntimeSettings.tsx b/Composer/packages/client/src/pages/botProject/runtime-settings/RuntimeSettings.tsx index 0b3f4a5306..d390224a79 100644 --- a/Composer/packages/client/src/pages/botProject/runtime-settings/RuntimeSettings.tsx +++ b/Composer/packages/client/src/pages/botProject/runtime-settings/RuntimeSettings.tsx @@ -83,7 +83,7 @@ export const RuntimeSettings: React.FC = React.memo(({ projectId }) => { }; }) .filter((item) => Boolean(item)) as IToolbarItem[], - [] + [], ); const toolbarItems: IToolbarItem[] = useMemo( @@ -179,7 +179,7 @@ const CommandBar: React.FC = React.memo(({ projectId }) => { }, }, ], - [showDisableBtn, showEnableBtn, actionSelected, canUndo, canRedo, debugItems] + [showDisableBtn, showEnableBtn, actionSelected, canUndo, canRedo, debugItems], ); const addNewBtnRef = useCallback((addNew) => { diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts index aaf63571ef..fee9cc2dbf 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticType.ts @@ -44,7 +44,7 @@ function generateResourcePageUrl( skillId: string | null, resourceType: ResourceType, resourceId: string, - line = 0 + line = 0, ) { let uri = `/bot/${rootProjectId}`; if (skillId !== null && skillId !== rootProjectId) { @@ -60,7 +60,7 @@ const getFriendlyPath = (dialogPath: string | undefined, dialogs: DialogInfo[]) if (!dialogPath) { return []; } - const [dialogName, triggerPath, ...actionPaths] = dialogPath.split('#')[0]?.split('.'); + const [dialogName, triggerPath, ...actionPaths] = dialogPath.split('#')[0]?.split('.') ?? []; if (dialogName) { const matchedDialog = dialogs.find(({ displayName }) => displayName === dialogName); @@ -151,7 +151,7 @@ export class DialogDiagnostic extends DiagnosticInfo { id: string, location: string, diagnostic: Diagnostic, - dialogs: DialogInfo[] + dialogs: DialogInfo[], ) { super(rootProjectId, projectId, id, location, diagnostic); this.message = `In ${replaceDialogDiagnosticLabel(diagnostic.path)} ${diagnostic.message}`; @@ -178,7 +178,7 @@ export class SchemaDiagnostic extends DialogDiagnostic { id: string, location: string, diagnostic: Diagnostic, - dialogs: DialogInfo[] + dialogs: DialogInfo[], ) { super(rootProjectId, projectId, id, location, diagnostic, dialogs); this.message = diagnostic.message; @@ -227,7 +227,7 @@ export class LgDiagnostic extends DiagnosticInfo { location: string, diagnostic: Diagnostic, lgFile: LgFile, - dialogs: DialogInfo[] + dialogs: DialogInfo[], ) { super(rootProjectId, projectId, id, location, diagnostic); this.message = createSingleMessage(diagnostic); @@ -242,7 +242,7 @@ export class LgDiagnostic extends DiagnosticInfo { const mappedTemplate = lgFile.templates.find( (t) => get(diagnostic, 'range.start.line') >= get(t, 'range.start.line') && - get(diagnostic, 'range.end.line') <= get(t, 'range.end.line') + get(diagnostic, 'range.end.line') <= get(t, 'range.end.line'), ); if (mappedTemplate?.name?.match(LgNamePattern)) { //should navigate to design page @@ -262,7 +262,7 @@ export class LgDiagnostic extends DiagnosticInfo { projectId, 'language-generation', resourceId, - diagnostic.range?.start.line + diagnostic.range?.start.line, ); //the format of item.id is lgFile#inlineTemplateId if (dialogPath) { @@ -281,7 +281,7 @@ export class LuDiagnostic extends DiagnosticInfo { location: string, diagnostic: Diagnostic, luFile: LuFile, - dialogs: DialogInfo[] + dialogs: DialogInfo[], ) { super(rootProjectId, projectId, id, location, diagnostic); this.dialogPath = this.findDialogPath(luFile, dialogs, diagnostic); @@ -311,7 +311,7 @@ export class LuDiagnostic extends DiagnosticInfo { projectId, 'language-understanding', resourceId, - diagnostic.range?.start.line + diagnostic.range?.start.line, ); if (dialogPath) { uri = convertPathToUrl(rootProjectId, rootProjectId === projectId ? null : projectId, resourceId, dialogPath); @@ -335,7 +335,7 @@ export class QnADiagnostic extends DiagnosticInfo { projectId, 'knowledge-base', resourceId, - diagnostic.range?.start.line + diagnostic.range?.start.line, ); }; } diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticsStatus.tsx b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticsStatus.tsx index 9b4921b569..d6ade59328 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticsStatus.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/DiagnosticsStatus.tsx @@ -32,7 +32,7 @@ export const DiagnosticsStatus = () => { =1 {One error} other {# errors} }`, - { errorsCount } + { errorsCount }, ); const warningLabel = formatMessage( @@ -42,7 +42,7 @@ export const DiagnosticsStatus = () => { =1 {One warning} other {# warnings} }`, - { warningsCount } + { warningsCount }, ); return ( diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/useDiagnostics.ts b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/useDiagnostics.ts index 0f954c9bf0..f4d98bfa33 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/useDiagnostics.ts +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/DiagnosticsTab/useDiagnostics.ts @@ -10,7 +10,7 @@ import { IDiagnosticInfo } from './DiagnosticType'; export const useDiagnosticsData = (): IDiagnosticInfo[] => { const diagnosticData = useRecoilValue( - allDiagnosticsSelectorFamily([DiagnosticSeverity.Error, DiagnosticSeverity.Warning]) + allDiagnosticsSelectorFamily([DiagnosticSeverity.Error, DiagnosticSeverity.Warning]), ); return diagnosticData ?? []; diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WatchTab/WatchTabContent.tsx b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WatchTab/WatchTabContent.tsx index 51540ef25e..56fc9fc07c 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WatchTab/WatchTabContent.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WatchTab/WatchTabContent.tsx @@ -129,7 +129,7 @@ const watchTableLayout: DetailsListLayoutMode = DetailsListLayoutMode.justified; // Ex. getValueFromBotTraceMemory('user.address.city', trace) export const getValueFromBotTraceMemory = ( valuePath: string, - botTrace: Activity + botTrace: Activity, ): { value: any; propertyIsAvailable: boolean } => { const pathSegments = valuePath.split('.'); if (pathSegments.length === 1) { @@ -164,7 +164,7 @@ export const WatchTabContent: React.FC = ({ isActive } setSelectedVariables(watchedVariablesSelection.current.getSelection()); }, selectionMode: SelectionMode.multiple, - }) + }), ); // reset state when switching to a new project @@ -174,7 +174,7 @@ export const WatchTabContent: React.FC = ({ isActive } const mostRecentBotState = useMemo(() => { const botStateTraffic = rawWebChatTraffic.filter( - (t) => t.trafficType === 'activity' && t.activity.type === 'trace' && t.activity.name === 'BotState' + (t) => t.trafficType === 'activity' && t.activity.type === 'trace' && t.activity.name === 'BotState', ) as ConversationActivityTrafficItem[]; if (botStateTraffic.length) { return botStateTraffic[botStateTraffic.length - 1]; @@ -185,7 +185,7 @@ export const WatchTabContent: React.FC = ({ isActive } (item: { key: string; value: string }, index: number | undefined, column: IColumn | undefined) => { return ; }, - [] + [], ); const onRenderVariableValue = useCallback( @@ -221,7 +221,7 @@ export const WatchTabContent: React.FC = ({ isActive } ) : null; } }, - [mostRecentBotState, userSettings, watchedVariables] + [mostRecentBotState, userSettings, watchedVariables], ); // TODO: update to office-ui-fabric-react@7.170.x to gain access to "flexGrow" column property to distribute proprotional column widths @@ -247,7 +247,7 @@ export const WatchTabContent: React.FC = ({ isActive } onRender: onRenderVariableValue, }, ], - [onRenderVariableName, onRenderVariableValue] + [onRenderVariableName, onRenderVariableValue], ); // we need to refresh the details list when we get a new bot state, add a new row, or submit a variable to watch @@ -363,7 +363,7 @@ export const WatchTabContent: React.FC = ({ isActive } = ({ isActive } {children} ), - } + }, )} )} diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatInspectorPane.tsx b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatInspectorPane.tsx index f17d4dd75d..cb6c58f86a 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatInspectorPane.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatInspectorPane.tsx @@ -55,7 +55,7 @@ export const WebChatInspectorPane: React.FC = (props) } } }, - [inspectionData, onSetInspectionData] + [inspectionData, onSetInspectionData], ); const renderHeader = useCallback( (inspectionData: WebChatInspectionData) => { @@ -81,7 +81,7 @@ export const WebChatInspectorPane: React.FC = (props) return null; } }, - [handleInspectorTabClick] + [handleInspectorTabClick], ); const getInspectedData = (inspectionData: WebChatInspectionData) => { diff --git a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatLogContent.tsx b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatLogContent.tsx index 4e82735366..96b983264a 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatLogContent.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/TabExtensions/WebChatLog/WebChatLogContent.tsx @@ -102,7 +102,7 @@ export const WebChatLogContent: React.FC = ({ isActive setWebChatInspectionData(currentProjectId, { item: trafficItem }); } } - }, 500) + }, 500), ).current; const inspectLatestLogMessage = () => { @@ -139,7 +139,7 @@ export const WebChatLogContent: React.FC = ({ isActive setWebChatInspectionData(currentProjectId, data); } }, - [currentProjectId] + [currentProjectId], ); const renderLogItem = useCallback( @@ -180,7 +180,7 @@ export const WebChatLogContent: React.FC = ({ isActive return null; } }, - [onClickTraffic] + [onClickTraffic], ); const displayedTraffic = useMemo(() => { @@ -222,7 +222,7 @@ export const WebChatLogContent: React.FC = ({ isActive {children} ), - } + }, )} ); diff --git a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/WatchVariablePicker.tsx b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/WatchVariablePicker.tsx index e3181fc542..1664492d35 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/WatchVariablePicker.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/WatchVariablePicker.tsx @@ -206,7 +206,7 @@ export const WatchVariablePicker = React.memo((props: WatchVariablePickerProps) setItems(menuItems); } }, 500), - [getFilterPredicate, menuItems] + [getFilterPredicate, menuItems], ); const onInputChange = useCallback( @@ -214,7 +214,7 @@ export const WatchVariablePicker = React.memo((props: WatchVariablePickerProps) setQuery(val ?? ''); performDebouncedSearch(val); }, - [performDebouncedSearch] + [performDebouncedSearch], ); const onTextBoxFocus = (event: FocusEvent) => { @@ -238,7 +238,7 @@ export const WatchVariablePicker = React.memo((props: WatchVariablePickerProps) } } }, - [currentProjectId, onHideContextualMenu, variableId, query, watchedVariables] + [currentProjectId, onHideContextualMenu, variableId, query, watchedVariables], ); const onDismiss = useCallback(() => { diff --git a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PickerContextualMenuItem.tsx b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PickerContextualMenuItem.tsx index 40fabf7ed1..9f7c483c63 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PickerContextualMenuItem.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PickerContextualMenuItem.tsx @@ -19,53 +19,52 @@ const labelContainerStyle: IStackStyles = { }, }; -export const getPickerContextualMenuItem = (query: string, propertyTreeExpanded: Record) => ( - itemProps: IContextualMenuItemProps -) => { - const { - item: { secondaryText: path }, - } = itemProps; +export const getPickerContextualMenuItem = + (query: string, propertyTreeExpanded: Record) => (itemProps: IContextualMenuItemProps) => { + const { + item: { secondaryText: path }, + } = itemProps; - const { onToggleExpand, level, node } = itemProps.item.data as { - node: PropertyItem; - onToggleExpand: (itemId: string, expanded: boolean) => void; - level: number; - }; + const { onToggleExpand, level, node } = itemProps.item.data as { + node: PropertyItem; + onToggleExpand: (itemId: string, expanded: boolean) => void; + level: number; + }; - const renderLabel = () => { - const pathNodes = (path ?? '').split('.'); - return ( - - {pathNodes.map((pathNode, idx) => ( - - {`${pathNode}${idx === pathNodes.length - 1 && node.children.length === 0 ? '' : '.'}`} - - ))} + const renderLabel = () => { + const pathNodes = (path ?? '').split('.'); + return ( + + {pathNodes.map((pathNode, idx) => ( + + {`${pathNode}${idx === pathNodes.length - 1 && node.children.length === 0 ? '' : '.'}`} + + ))} + + ); + }; + + const renderSearchResultLabel = () => ( + + {path} ); - }; - - const renderSearchResultLabel = () => ( - - {path} - - ); - return ( - - ); -}; + return ( + + ); + }; diff --git a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PropertyTreeItem.tsx b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PropertyTreeItem.tsx index a5acdf2cd6..b2784ab088 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PropertyTreeItem.tsx +++ b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/components/PropertyTreeItem.tsx @@ -67,7 +67,7 @@ export const PropertyTreeItem = React.memo((props: PropertyTreeItemProps) => { e.stopPropagation(); onToggleExpand?.(item.id, !expanded); }, - [expanded, onToggleExpand, item] + [expanded, onToggleExpand, item], ); const isExpandable = !!item.children?.length && onToggleExpand; diff --git a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/helpers.ts b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/helpers.ts index 1e3696297a..11acdf698e 100644 --- a/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/helpers.ts +++ b/Composer/packages/client/src/pages/design/DebugPanel/WatchVariablePicker/utils/helpers.ts @@ -40,7 +40,7 @@ export const computePropertyItemTree = (properties: readonly string[]): Property n, `${prefix}${prefix ? '.' : ''}${n.name}`, items.filter((i) => i.startsWith(`${prefix}${prefix ? '.' : ''}${n.name}`)), - level + 1 + level + 1, ); } currentNode.children = children; @@ -73,7 +73,7 @@ const getPath = (item: T */ export const getAllNodes = ( root: T, - options?: Partial<{ expanded: Record; skipRoot: boolean }> + options?: Partial<{ expanded: Record; skipRoot: boolean }>, ): { nodes: T[]; levels: Record; diff --git a/Composer/packages/client/src/pages/design/DesignPage.tsx b/Composer/packages/client/src/pages/design/DesignPage.tsx index 19d478ac35..a2ad4628a0 100644 --- a/Composer/packages/client/src/pages/design/DesignPage.tsx +++ b/Composer/packages/client/src/pages/design/DesignPage.tsx @@ -25,7 +25,7 @@ const splitContainer = css` `; const DesignPage: React.FC> = ( - props + props, ) => { const { projectId = '', skillId, location } = props; diff --git a/Composer/packages/client/src/pages/design/PropertyEditor.tsx b/Composer/packages/client/src/pages/design/PropertyEditor.tsx index efbd961d4d..107d08a5ad 100644 --- a/Composer/packages/client/src/pages/design/PropertyEditor.tsx +++ b/Composer/packages/client/src/pages/design/PropertyEditor.tsx @@ -58,7 +58,7 @@ const PropertyEditor: React.FC = () => { if (!isEqual(shellData, localData)) { setLocalData(shellData); } - }, 300) + }, 300), ).current; useEffect(() => { diff --git a/Composer/packages/client/src/pages/design/SideBar.tsx b/Composer/packages/client/src/pages/design/SideBar.tsx index bf6c799c21..cf3f79c229 100644 --- a/Composer/packages/client/src/pages/design/SideBar.tsx +++ b/Composer/packages/client/src/pages/design/SideBar.tsx @@ -95,7 +95,7 @@ const SideBar: React.FC = React.memo(({ projectId }) => { const skillUsedInBotsMap = useRecoilValue(skillUsedInBotsSelector); const selected = decodeDesignerPathToArrayPath( dialogs.find((x) => x.id === dialogId)?.content, - encodedSelected || '' + encodedSelected || '', ); const setTriggerModalInfo = useSetRecoilState(triggerModalInfoState); @@ -185,7 +185,7 @@ const SideBar: React.FC = React.memo(({ projectId }) => { const content = DialogdeleteTrigger(projectDialogsMap[projectId], dialogId, index, async (trigger) => { await deleteTrigger(projectId, dialogId, trigger); announce( - formatMessage(`The trigger {triggerName} has been deleted`, { triggerName: trigger.$designer?.name ?? '' }) + formatMessage(`The trigger {triggerName} has been deleted`, { triggerName: trigger.$designer?.name ?? '' }), ); }); diff --git a/Composer/packages/client/src/pages/design/__tests__/PropertyEditorHeader.test.tsx b/Composer/packages/client/src/pages/design/__tests__/PropertyEditorHeader.test.tsx index 11133b8265..82ba64c63b 100644 --- a/Composer/packages/client/src/pages/design/__tests__/PropertyEditorHeader.test.tsx +++ b/Composer/packages/client/src/pages/design/__tests__/PropertyEditorHeader.test.tsx @@ -43,7 +43,7 @@ describe('', () => { }; const helpLink = 'https://botframework-skill/manifest'; const { findByText } = render( - + , ); expect(findByText('Remote Skill')); expect(findByText('Learn more')); diff --git a/Composer/packages/client/src/pages/design/__tests__/WatchTabContent.test.tsx b/Composer/packages/client/src/pages/design/__tests__/WatchTabContent.test.tsx index f62348cee5..a264f39727 100644 --- a/Composer/packages/client/src/pages/design/__tests__/WatchTabContent.test.tsx +++ b/Composer/packages/client/src/pages/design/__tests__/WatchTabContent.test.tsx @@ -31,7 +31,7 @@ describe('', () => { isRootBot: true, isRemote: false, }); - } + }, ); const addButton = await findByText('Add property'); const removeButton = await findByText('Remove from list'); diff --git a/Composer/packages/client/src/pages/design/__tests__/WebChatLogItemHeader.test.tsx b/Composer/packages/client/src/pages/design/__tests__/WebChatLogItemHeader.test.tsx index 69240c6892..aab7d65284 100644 --- a/Composer/packages/client/src/pages/design/__tests__/WebChatLogItemHeader.test.tsx +++ b/Composer/packages/client/src/pages/design/__tests__/WebChatLogItemHeader.test.tsx @@ -46,7 +46,7 @@ describe('', () => { response: { payload: {}, statusCode: 400 }, }, ]); - } + }, ); await findByTestId('DebugErrorIndicator'); @@ -73,7 +73,7 @@ describe('', () => { response: { payload: {}, statusCode: 400 }, }, ]); - }) + }), ); expect(queryByTestId('DebugErrorIndicator')).toBeNull(); }); diff --git a/Composer/packages/client/src/pages/design/createDialogModal.tsx b/Composer/packages/client/src/pages/design/createDialogModal.tsx index 84322a5681..bb7311413b 100644 --- a/Composer/packages/client/src/pages/design/createDialogModal.tsx +++ b/Composer/packages/client/src/pages/design/createDialogModal.tsx @@ -103,7 +103,7 @@ export const CreateDialogModal: React.FC = (props) => { onSubmit(formData.name, dialogData); TelemetryClient.track('AddNewDialogCompleted'); }, - [hasErrors, formData] + [hasErrors, formData], ); return ( diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/__tests__/generateSkillManifest.test.ts b/Composer/packages/client/src/pages/design/exportSkillModal/__tests__/generateSkillManifest.test.ts index 0106f803e0..fe91a79eb3 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/__tests__/generateSkillManifest.test.ts +++ b/Composer/packages/client/src/pages/design/exportSkillModal/__tests__/generateSkillManifest.test.ts @@ -63,7 +63,7 @@ describe('generateOtherActivities', () => { conversationUpdate: { type: 'conversationUpdate', }, - }) + }), ); expect(generateOtherActivities(SDKKinds.OnEndOfConversationActivity)).toEqual( @@ -71,7 +71,7 @@ describe('generateOtherActivities', () => { endOfConversation: { type: 'endOfConversation', }, - }) + }), ); expect(generateOtherActivities(SDKKinds.OnIntent)).toEqual( @@ -79,7 +79,7 @@ describe('generateOtherActivities', () => { message: { type: 'message', }, - }) + }), ); }); }); @@ -95,7 +95,7 @@ describe('generateActivity', () => { type: 'event', name: 'test', }, - }) + }), ); }); @@ -126,7 +126,7 @@ describe('generateActivity', () => { }, }, }, - }) + }), ); }); }); @@ -161,7 +161,7 @@ describe('generateActivities', () => { resultValue: expect.any(Object), }), }, - }) + }), ); }); }); @@ -184,7 +184,7 @@ describe('getDefinitions', () => { equalsExpression: expect.any(Object), integerExpression: expect.any(Object), }, - }) + }), ); }); }); @@ -203,7 +203,7 @@ describe('generateDispatchModels', () => { luFiles, qnaFiles, currentTarget, - projectId + projectId, ); expect(result).toEqual({}); }); @@ -224,7 +224,7 @@ describe('generateDispatchModels', () => { luFiles, qnaFiles, currentTarget, - projectId + projectId, ); expect(result).toEqual({}); }); @@ -245,7 +245,7 @@ describe('generateDispatchModels', () => { luFiles, qnaFiles, currentTarget, - projectId + projectId, ); expect(result).toEqual({}); }); @@ -266,7 +266,7 @@ describe('generateDispatchModels', () => { luFiles, qnaFiles, currentTarget, - projectId + projectId, ); expect(result).toEqual( expect.objectContaining({ @@ -299,7 +299,7 @@ describe('generateDispatchModels', () => { ], }, }, - }) + }), ); }); }); diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/constants.tsx b/Composer/packages/client/src/pages/design/exportSkillModal/constants.tsx index ccce90dc4f..63aa4779b1 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/constants.tsx +++ b/Composer/packages/client/src/pages/design/exportSkillModal/constants.tsx @@ -178,7 +178,7 @@ export const editorSteps: { [key in ManifestEditorSteps]: EditorStep } = { title: () => formatMessage('Export your bot'), subText: () => formatMessage( - 'A skill is a bot that can perform a set of tasks one or more bots. To make your bot available as a skill, it needs a manifest - a JSON file that describes the actions the skill can perform.' + 'A skill is a bot that can perform a set of tasks one or more bots. To make your bot available as a skill, it needs a manifest - a JSON file that describes the actions the skill can perform.', ), validate, }, @@ -190,13 +190,7 @@ export const editorSteps: { [key in ManifestEditorSteps]: EditorStep } = { disabled: ({ publishTarget }) => { try { const config = JSON.parse(publishTarget.configuration); - return !( - config.settings && - config.settings.MicrosoftAppId && - config.hostname && - config.settings.MicrosoftAppId.length > 0 && - config.hostname.length > 0 - ); + return !(config.settings?.MicrosoftAppId?.length > 0 && config.hostname?.length > 0); } catch (err) { console.log(err.message); return true; @@ -205,11 +199,13 @@ export const editorSteps: { [key in ManifestEditorSteps]: EditorStep } = { primary: true, text: () => formatMessage('Generate and Publish'), - onClick: ({ generateManifest, onNext, onPublish }) => () => { - generateManifest(); - onNext({ dismiss: true, save: true }); - onPublish(); - }, + onClick: + ({ generateManifest, onNext, onPublish }) => + () => { + generateManifest(); + onNext({ dismiss: true, save: true }); + onPublish(); + }, }, ], editJson: false, @@ -225,17 +221,19 @@ export const editorSteps: { [key in ManifestEditorSteps]: EditorStep } = { { primary: true, text: () => formatMessage('Next'), - onClick: ({ onNext, onSaveSkill }) => () => { - onSaveSkill(); - onNext(); - }, + onClick: + ({ onNext, onSaveSkill }) => + () => { + onSaveSkill(); + onNext(); + }, }, ], editJson: false, content: AddCallers, subText: () => formatMessage( - 'To ensure a secure connection, provide the App ID of the bots that can connect to your skill. If you don’t have this information, you can also add this information in Skill Configuration.' + 'To ensure a secure connection, provide the App ID of the bots that can connect to your skill. If you don’t have this information, you can also add this information in Skill Configuration.', ), title: () => formatMessage('Which bots can connect to this skill?'), helpLink, @@ -268,7 +266,7 @@ export const editorSteps: { [key in ManifestEditorSteps]: EditorStep } = { editJson: false, subText: () => formatMessage( - 'The capabilities of your bot are defined in its dialogs and triggers. Selected dialogs will be included in the manifest. Internal dialogs or actions may not be relevant to other bots.' + 'The capabilities of your bot are defined in its dialogs and triggers. Selected dialogs will be included in the manifest. Internal dialogs or actions may not be relevant to other bots.', ), title: () => formatMessage('Select dialogs'), helpLink, @@ -280,9 +278,11 @@ export const editorSteps: { [key in ManifestEditorSteps]: EditorStep } = { { primary: true, text: () => formatMessage('Next'), - onClick: ({ onNext }) => () => { - onNext(); - }, + onClick: + ({ onNext }) => + () => { + onNext(); + }, }, ], content: SelectTriggers, diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/content/Description.tsx b/Composer/packages/client/src/pages/design/exportSkillModal/content/Description.tsx index c0b57c22fd..6fbf8c4233 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/content/Description.tsx +++ b/Composer/packages/client/src/pages/design/exportSkillModal/content/Description.tsx @@ -97,7 +97,7 @@ export const Description: React.FC = ({ properties: { ...properties, [key]: { field: InlineLabelField, hideError: true, serializer } }, }; }, - { hidden: [], properties: {} } as any + { hidden: [], properties: {} } as any, ); }, [schema]); diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectDialogs.tsx b/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectDialogs.tsx index 4d8f839697..e4e8924201 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectDialogs.tsx +++ b/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectDialogs.tsx @@ -14,9 +14,10 @@ import { SelectItems } from './SelectItems'; export const SelectDialogs: React.FC = ({ selectedDialogs, setSelectedDialogs, projectId }) => { const dialogs = useRecoilValue(dialogsSelectorFamily(projectId)); - const items = useMemo(() => dialogs.map(({ id, content, displayName }) => ({ id, content, displayName })), [ - projectId, - ]); + const items = useMemo( + () => dialogs.map(({ id, content, displayName }) => ({ id, content, displayName })), + [projectId], + ); // for detail file list in open panel const tableColumns = useMemo( @@ -39,7 +40,7 @@ export const SelectDialogs: React.FC = ({ selectedDialogs, setSele isPadded: true, }, ], - [projectId] + [projectId], ); const selectionRef = useRef( @@ -49,7 +50,7 @@ export const SelectDialogs: React.FC = ({ selectedDialogs, setSele const selectedItems = selectionRef.current.getSelection(); setSelectedDialogs(selectedItems); }, - }) + }), ); useEffect(() => { diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectProfile.tsx b/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectProfile.tsx index e460445f9d..f7d0e64c78 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectProfile.tsx +++ b/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectProfile.tsx @@ -110,7 +110,7 @@ export const SelectProfile: React.FC = ({ }); setCurrentTarget(target); }, - [publishingTargets] + [publishingTargets], ); useEffect(() => { @@ -147,22 +147,17 @@ export const SelectProfile: React.FC = ({ try { const config = JSON.parse(publishTarget.configuration); - return ( - config.settings && - config.settings.MicrosoftAppId && - config.hostname && - config.settings.MicrosoftAppId.length > 0 && - config.hostname.length > 0 - ); + return config.settings?.MicrosoftAppId?.length > 0 && config.hostname?.length > 0; } catch (err) { console.log(err.message); return false; } }; - const hasValidProfile = useMemo(() => !!publishingTargets.some((target) => isValidProfile(target)), [ - publishingTargets, - ]); + const hasValidProfile = useMemo( + () => !!publishingTargets.some((target) => isValidProfile(target)), + [publishingTargets], + ); const publishingOptions = useMemo(() => { return publishingTargets.map((t) => ({ diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectTriggers.tsx b/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectTriggers.tsx index 200674b24b..25151cda37 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectTriggers.tsx +++ b/Composer/packages/client/src/pages/design/exportSkillModal/content/SelectTriggers.tsx @@ -35,8 +35,8 @@ export const SelectTriggers: React.FC = ({ selectedTriggers, setSe ? 1 : -1 : a.type > b.type - ? 1 - : -1 + ? 1 + : -1, ); }, [dialogs]); @@ -87,7 +87,7 @@ export const SelectTriggers: React.FC = ({ selectedTriggers, setSe const selectedItems = selectionRef.current.getSelection(); setSelectedTriggers(selectedItems); }, - }) + }), ); useEffect(() => { diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/generateSkillManifest.ts b/Composer/packages/client/src/pages/design/exportSkillModal/generateSkillManifest.ts index 6984908364..44e5bde3b1 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/generateSkillManifest.ts +++ b/Composer/packages/client/src/pages/design/exportSkillModal/generateSkillManifest.ts @@ -33,7 +33,7 @@ export const generateSkillManifest = ( selectedTriggers: ITrigger[], selectedDialogs: Partial[], currentTarget: PublishTarget, - projectId: string + projectId: string, ) => { const { activities: previousActivities, @@ -71,7 +71,7 @@ export const generateSkillManifest = ( export const generateActivities = ( dialogSchemas: DialogSchemaFile[], triggers: ITrigger[], - dialogs: DialogInfo[] + dialogs: DialogInfo[], ): { activities?: { [name: string]: Activity } } => { const dialogActivities = dialogs.reduce((acc: any, dialog) => { const activity = generateActivity(dialogSchemas, dialog); @@ -120,7 +120,7 @@ export const generateDispatchModels = ( luFiles: LuFile[], qnaFiles: QnAFile[], target: PublishTarget, - projectId: string + projectId: string, ): { dispatchModels?: DispatchModels } => { const intents = selectedTriggers.filter(({ $kind }) => $kind === SDKKinds.OnIntent).map(({ intent }) => intent); const { id: rootId } = dialogs.find((dialog) => dialog?.isRoot) || {}; @@ -214,7 +214,7 @@ export const generateDispatchModels = ( export const getDefinitions = ( dialogSchema: DialogSchemaFile[], - selectedDialogs: DialogInfo[] + selectedDialogs: DialogInfo[], ): { definitions?: { [key: string]: any } } => { const definitions = dialogSchema.reduce((acc, { content = {}, id }) => { if (selectedDialogs.some(({ id: dialogId }) => dialogId === id)) { diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/index.tsx b/Composer/packages/client/src/pages/design/exportSkillModal/index.tsx index a3d0423004..133e85ba04 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/index.tsx +++ b/Composer/packages/client/src/pages/design/exportSkillModal/index.tsx @@ -80,7 +80,7 @@ const ExportSkillModal: React.FC = ({ onSubmit, onDismiss const { setSettings } = useRecoilValue(dispatcherState); const isAdaptive = isUsingAdaptiveRuntime(runtime); const [callers, setCallers] = useState( - !isAdaptive ? skillConfiguration?.allowedCallers : runtimeSettings?.skills?.allowedCallers ?? [] + !isAdaptive ? skillConfiguration?.allowedCallers : runtimeSettings?.skills?.allowedCallers ?? [], ); const [isCreateProfileFromSkill, setIsCreateProfileFromSkill] = useState(false); @@ -92,7 +92,7 @@ const ExportSkillModal: React.FC = ({ onSubmit, onDismiss }; // stop polling updater const stopUpdater = () => { - publishUpdaterRef.current && publishUpdaterRef.current.stop(); + publishUpdaterRef.current?.stop?.(); publishUpdaterRef.current = undefined; resetDialog(); }; @@ -131,13 +131,7 @@ const ExportSkillModal: React.FC = ({ onSubmit, onDismiss if (!publishTargets || publishTargets.length === 0) return; const currentTarget = publishTargets.find((item) => { const config = JSON.parse(item.configuration); - return ( - config.settings && - config.settings.MicrosoftAppId && - config.hostname && - config.settings.MicrosoftAppId.length > 0 && - config.hostname.length > 0 - ); + return config.settings?.MicrosoftAppId?.length > 0 && config.hostname?.length > 0; }); if (isCreateProfileFromSkill && currentTarget) { handleGenerateManifest(currentTarget); @@ -185,7 +179,7 @@ const ExportSkillModal: React.FC = ({ onSubmit, onDismiss }; setSettings(projectId, updatedSetting); }, - [mergedSettings, projectId, isAdaptive, skillConfiguration, runtimeSettings] + [mergedSettings, projectId, isAdaptive, skillConfiguration, runtimeSettings], ); const handleGenerateManifest = (currentTarget?: PublishTarget) => { @@ -199,7 +193,7 @@ const ExportSkillModal: React.FC = ({ onSubmit, onDismiss selectedTriggers, selectedDialogs, currentTarget || currentPublishTarget, - projectId + projectId, ); setSkillManifest(manifest); if (manifest.content && manifest.id) { @@ -233,7 +227,7 @@ const ExportSkillModal: React.FC = ({ onSubmit, onDismiss selectedTriggers, selectedDialogs, currentPublishTarget, - projectId + projectId, ); if (manifest.content && manifest.id) { updateSkillManifest(manifest as SkillManifestFile, projectId); diff --git a/Composer/packages/client/src/pages/design/exportSkillModal/styles.ts b/Composer/packages/client/src/pages/design/exportSkillModal/styles.ts index 86f916e049..6a47c26b5e 100644 --- a/Composer/packages/client/src/pages/design/exportSkillModal/styles.ts +++ b/Composer/packages/client/src/pages/design/exportSkillModal/styles.ts @@ -23,7 +23,7 @@ export const styles = { width: '960px !important', }, scrollableContent: { - overflow: 'hidden' as 'hidden', + overflow: 'hidden' as const, }, }, container: css` diff --git a/Composer/packages/client/src/pages/design/useEmptyPropsHandler.tsx b/Composer/packages/client/src/pages/design/useEmptyPropsHandler.tsx index 1819a7d4ce..343e242434 100644 --- a/Composer/packages/client/src/pages/design/useEmptyPropsHandler.tsx +++ b/Composer/packages/client/src/pages/design/useEmptyPropsHandler.tsx @@ -34,7 +34,7 @@ export const useEmptyPropsHandler = ( projectId: string, location?: WindowLocation, skillId?: string, - dialogId?: string + dialogId?: string, ) => { const activeBot = skillId ?? projectId; @@ -42,13 +42,13 @@ export const useEmptyPropsHandler = ( const locale = useRecoilValue(localeState(activeBot)); const settings = useRecoilValue(settingsState(activeBot)); const [currentLg, setCurrentLg] = useRecoilState( - lgFileState({ projectId: activeBot, lgFileId: `${dialogId}.${locale}` }) + lgFileState({ projectId: activeBot, lgFileId: `${dialogId}.${locale}` }), ); const [currentLu, setCurrentLu] = useRecoilState( - luFileState({ projectId: activeBot, luFileId: `${dialogId}.${locale}` }) + luFileState({ projectId: activeBot, luFileId: `${dialogId}.${locale}` }), ); const [currentQna, setCurrentQna] = useRecoilState( - qnaFileState({ projectId: activeBot, qnaFileId: `${dialogId}.${locale}` }) + qnaFileState({ projectId: activeBot, qnaFileId: `${dialogId}.${locale}` }), ); const lgFiles = useRecoilValue(lgFilesSelectorFamily(projectId)); const luFiles = useRecoilValue(luFilesSelectorFamily(projectId)); @@ -143,8 +143,8 @@ export const useEmptyPropsHandler = ( }); /* eslint-disable no-underscore-dangle */ - // @ts-ignore - globalHistory._onTransitionComplete(); + // @ts-expect-error undocumented API + globalHistory?._onTransitionComplete(); /* eslint-enable */ }, [location, activeBot, currentDialog, dialogId]); }; diff --git a/Composer/packages/client/src/pages/extensions/ExtensionSearchResults.tsx b/Composer/packages/client/src/pages/extensions/ExtensionSearchResults.tsx index 842e9ab0fb..add4ccc2d7 100644 --- a/Composer/packages/client/src/pages/extensions/ExtensionSearchResults.tsx +++ b/Composer/packages/client/src/pages/extensions/ExtensionSearchResults.tsx @@ -42,7 +42,7 @@ const ExtensionSearchResults: React.FC = (props) => onSelectionChanged: () => { onSelect(selection.getSelection()[0] as ExtensionSearchResult); }, - }) + }), ).current; const searchColumns: IColumn[] = [ diff --git a/Composer/packages/client/src/pages/extensions/ExtensionsPage.tsx b/Composer/packages/client/src/pages/extensions/ExtensionsPage.tsx index abd1918767..2dd94d51df 100644 --- a/Composer/packages/client/src/pages/extensions/ExtensionsPage.tsx +++ b/Composer/packages/client/src/pages/extensions/ExtensionsPage.tsx @@ -54,7 +54,7 @@ const ExtensionsPage: React.FC = () => { onSelectionChanged: () => { setSelectedExtensions(selection.getSelection() as ExtensionMetadata[]); }, - }) + }), ).current; const fetchSettings = async () => { diff --git a/Composer/packages/client/src/pages/form-dialog/CreateFormDialogSchemaModal.tsx b/Composer/packages/client/src/pages/form-dialog/CreateFormDialogSchemaModal.tsx index ec55a91903..df7edca0ce 100644 --- a/Composer/packages/client/src/pages/form-dialog/CreateFormDialogSchemaModal.tsx +++ b/Composer/packages/client/src/pages/form-dialog/CreateFormDialogSchemaModal.tsx @@ -55,7 +55,7 @@ const CreateFormDialogSchemaModal: React.FC = (props) => { onSubmit(formData.name); }, - [hasErrors, formData] + [hasErrors, formData], ); return ( diff --git a/Composer/packages/client/src/pages/form-dialog/FormDialogPage.tsx b/Composer/packages/client/src/pages/form-dialog/FormDialogPage.tsx index acb7c974a9..06ce5c7689 100644 --- a/Composer/packages/client/src/pages/form-dialog/FormDialogPage.tsx +++ b/Composer/packages/client/src/pages/form-dialog/FormDialogPage.tsx @@ -63,9 +63,10 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { loadFormDialogSchemaTemplates(); }, []); - const availableTemplates = React.useMemo(() => formDialogLibraryTemplates.filter((t) => !t.$global), [ - formDialogLibraryTemplates, - ]); + const availableTemplates = React.useMemo( + () => formDialogLibraryTemplates.filter((t) => !t.$global), + [formDialogLibraryTemplates], + ); const validSchemaId = React.useMemo(() => formDialogSchemaIds.includes(schemaId), [formDialogSchemaIds, schemaId]); @@ -79,7 +80,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { async (id: string) => { const res = await OpenConfirmModal( formatMessage('Delete form dialog schema?'), - formatMessage('Are you sure you want to remove form dialog schema "{id}"?', { id }) + formatMessage('Are you sure you want to remove form dialog schema "{id}"?', { id }), ); if (res) { removeFormDialogSchema({ id, projectId }); @@ -88,7 +89,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { } } }, - [selectItem, removeFormDialogSchema, schemaId] + [selectItem, removeFormDialogSchema, schemaId], ); const generateDialog = React.useCallback( @@ -108,7 +109,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { generateFormDialog({ projectId, schemaId }); } }, - [generateFormDialog, projectId] + [generateFormDialog, projectId], ); const viewDialog = React.useCallback( @@ -117,7 +118,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { navigateToGeneratedDialog({ projectId, schemaId }); } }, - [navigateToGeneratedDialog, projectId] + [navigateToGeneratedDialog, projectId], ); React.useEffect(() => { @@ -143,7 +144,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { label: formatMessage('View dialog'), onClick: () => generatingSchemaId && viewDialog(generatingSchemaId), }, - }) + }), ); } else { // error, show failed message with error. @@ -152,7 +153,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { type: 'error', title: formatMessage('Dialog generation has failed.'), description: formDialogError.message, - }) + }), ); } } else { @@ -164,7 +165,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { type: 'error', title: formatMessage('Form dialog error'), description: formDialogError.message, - }) + }), ); } } @@ -176,7 +177,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { updateFormDialogSchema({ id, content, projectId }); } }, - [updateFormDialogSchema, schemaId] + [updateFormDialogSchema, schemaId], ); const createItem = React.useCallback( @@ -184,7 +185,7 @@ const FormDialogPage: React.FC = React.memo((props: Props) => { createFormDialogSchema({ id: formDialogName, projectId }); setCreateSchemaDialogOpen(false); }, - [createFormDialogSchema, setCreateSchemaDialogOpen] + [createFormDialogSchema, setCreateSchemaDialogOpen], ); const onMeasuredSizesChanged = (sizes: SplitMeasuredSizes) => { diff --git a/Composer/packages/client/src/pages/form-dialog/FormDialogSchemaList.tsx b/Composer/packages/client/src/pages/form-dialog/FormDialogSchemaList.tsx index acd1706502..14eeb42d66 100644 --- a/Composer/packages/client/src/pages/form-dialog/FormDialogSchemaList.tsx +++ b/Composer/packages/client/src/pages/form-dialog/FormDialogSchemaList.tsx @@ -59,7 +59,7 @@ const Root = styled(Stack)<{ zIndex: 1, }, } - : null + : null, ); const oneLinerStyles = classNamesFunction()({ @@ -110,7 +110,7 @@ const FormDialogSchemaItem = React.memo((props: FormDialogSchemaItemProps) => { onDelete(schemaId); }, - [schemaId, onDelete] + [schemaId, onDelete], ); const generateDialog = React.useCallback( @@ -119,7 +119,7 @@ const FormDialogSchemaItem = React.memo((props: FormDialogSchemaItemProps) => { onGenerate(schemaId); }, - [schemaId, onGenerate] + [schemaId, onGenerate], ); const viewDialog = React.useCallback( @@ -128,12 +128,12 @@ const FormDialogSchemaItem = React.memo((props: FormDialogSchemaItemProps) => { onViewDialog(schemaId); }, - [schemaId, onViewDialog] + [schemaId, onViewDialog], ); const renderOverflowItem = React.useCallback( (item: IOverflowSetItemProps) => , - [] + [], ); const renderOverflowButton = React.useCallback( @@ -150,7 +150,7 @@ const FormDialogSchemaItem = React.memo((props: FormDialogSchemaItemProps) => { /> ), - [] + [], ); return ( @@ -245,7 +245,7 @@ export const FormDialogSchemaList: React.FC = React.m onViewDialog={onViewDialog} /> ), - [selectedId, onSelectItem, onDeleteItem, onGenerate] + [selectedId, onSelectItem, onDeleteItem, onGenerate], ); return ( @@ -270,7 +270,7 @@ export const FormDialogSchemaList: React.FC = React.m 0 {} other {Press down arrow key to navigate the search results} }`, - { itemCount: items.length } + { itemCount: items.length }, )} aria-live="polite" /> diff --git a/Composer/packages/client/src/pages/form-dialog/VisualFormDialogSchemaEditor.tsx b/Composer/packages/client/src/pages/form-dialog/VisualFormDialogSchemaEditor.tsx index ebe39da145..4c2e87d422 100644 --- a/Composer/packages/client/src/pages/form-dialog/VisualFormDialogSchemaEditor.tsx +++ b/Composer/packages/client/src/pages/form-dialog/VisualFormDialogSchemaEditor.tsx @@ -37,7 +37,7 @@ const Root = styled(Stack)<{ background: 'rgba(255,255,255, 0.6)', }, } - : null + : null, ); const noop = () => {}; diff --git a/Composer/packages/client/src/pages/home/CardWidget.tsx b/Composer/packages/client/src/pages/home/CardWidget.tsx index 74f2174470..3ca910861c 100644 --- a/Composer/packages/client/src/pages/home/CardWidget.tsx +++ b/Composer/packages/client/src/pages/home/CardWidget.tsx @@ -54,8 +54,8 @@ export const CardWidget: React.FC = ({ rest.styles || cardType === 'resource' ? home.cardItem : imageCover - ? home.mediaCardItem - : home.mediaCardNoCoverItem; + ? home.mediaCardItem + : home.mediaCardNoCoverItem; const onImageLoading = (state: ImageLoadState) => { if (state === ImageLoadState.error) { diff --git a/Composer/packages/client/src/pages/home/Home.tsx b/Composer/packages/client/src/pages/home/Home.tsx index 4153e0a6da..faba43721d 100644 --- a/Composer/packages/client/src/pages/home/Home.tsx +++ b/Composer/packages/client/src/pages/home/Home.tsx @@ -78,13 +78,8 @@ const Home: React.FC = () => { const recentProjects = useRecoilValue(recentProjectsState); const feed = useRecoilValue(feedState); - const { - openProject, - setCreationFlowStatus, - setCreationFlowType, - setWarnAboutDotNet, - setWarnAboutFunctions, - } = useRecoilValue(dispatcherState); + const { openProject, setCreationFlowStatus, setCreationFlowType, setWarnAboutDotNet, setWarnAboutFunctions } = + useRecoilValue(dispatcherState); const warnAboutDotNet = useRecoilValue(warnAboutDotNetState); const warnAboutFunctions = useRecoilValue(warnAboutFunctionsState); diff --git a/Composer/packages/client/src/pages/knowledge-base/QnAPage.tsx b/Composer/packages/client/src/pages/knowledge-base/QnAPage.tsx index 5bc2b6cc43..84101aefdc 100644 --- a/Composer/packages/client/src/pages/knowledge-base/QnAPage.tsx +++ b/Composer/packages/client/src/pages/knowledge-base/QnAPage.tsx @@ -37,12 +37,14 @@ const qnaContentStyle = css` padding: 0px; `; -const QnAPage: React.FC> = (props) => { +const QnAPage: React.FC< + RouteComponentProps<{ + dialogId: string; + projectId: string; + skillId: string; + qnaFileId: string; + }> +> = (props) => { const { dialogId = '', projectId = '', skillId, qnaFileId = '' } = props; const actualProjectId = skillId ?? projectId; @@ -89,7 +91,7 @@ const QnAPage: React.FC { diff --git a/Composer/packages/client/src/pages/knowledge-base/TabHeader.tsx b/Composer/packages/client/src/pages/knowledge-base/TabHeader.tsx index 8d4f2fafac..cfd818ab35 100644 --- a/Composer/packages/client/src/pages/knowledge-base/TabHeader.tsx +++ b/Composer/packages/client/src/pages/knowledge-base/TabHeader.tsx @@ -27,7 +27,7 @@ export const TabHeader: React.FC = (props) => { const currentLocale = languageList.find( (l) => (!l.isDefault && l.language === item.props.headerText) || - (l.isDefault && `${l.language}(Default)` === item.props.headerText) + (l.isDefault && `${l.language}(Default)` === item.props.headerText), )?.locale as string; setSelectedKey(languageList.findIndex((l) => l.locale === currentLocale)); onChangeLocale(currentLocale); diff --git a/Composer/packages/client/src/pages/knowledge-base/code-editor.tsx b/Composer/packages/client/src/pages/knowledge-base/code-editor.tsx index bbaad59e25..d143dd6d99 100644 --- a/Composer/packages/client/src/pages/knowledge-base/code-editor.tsx +++ b/Composer/packages/client/src/pages/knowledge-base/code-editor.tsx @@ -20,7 +20,7 @@ import TelemetryClient from '../../telemetry/TelemetryClient'; import { backIcon } from './styles'; import { qnaSuffix } from './table-view'; -interface CodeEditorProps extends RouteComponentProps<{}> { +interface CodeEditorProps extends RouteComponentProps { dialogId: string; projectId: string; locale: string; @@ -84,7 +84,7 @@ const CodeEditor: React.FC = (props) => { debounce((newContent: string) => { actions.updateQnAFile({ id: targetFileId, content: newContent, projectId: actualProjectId }); }, 500), - [actualProjectId] + [actualProjectId], ); return ( diff --git a/Composer/packages/client/src/pages/knowledge-base/table-view.tsx b/Composer/packages/client/src/pages/knowledge-base/table-view.tsx index 0a83714e7e..dcb9039471 100644 --- a/Composer/packages/client/src/pages/knowledge-base/table-view.tsx +++ b/Composer/packages/client/src/pages/knowledge-base/table-view.tsx @@ -162,7 +162,7 @@ const TableView: React.FC = (props) => { const currentDialogImportedFileIds = qnaFile?.imports.map(({ id }) => `${getBaseName(id)}.${locale}`) || []; const currentDialogImportedFiles = qnaFiles.filter(({ id }) => currentDialogImportedFileIds.includes(id)); const currentDialogImportedSourceFiles = currentDialogImportedFiles.filter(({ id }) => - id.endsWith(qnaSuffix(locale)) + id.endsWith(qnaSuffix(locale)), ); const allSourceFiles = qnaFiles.filter(({ id }) => id.endsWith(qnaSuffix(locale))); @@ -171,7 +171,7 @@ const TableView: React.FC = (props) => { const allSections = flatMap( qnaFiles.filter(({ id }) => id.endsWith(qnaSuffix(locale))), - generateQnASections + generateQnASections, ); if (dialogId === 'all') { return allSections; @@ -188,7 +188,7 @@ const TableView: React.FC = (props) => { const allSections = flatMap( qnaFiles.filter(({ id }) => id.endsWith(qnaSuffix(locale))), - generateQnASections + generateQnASections, ); if (dialogId === 'all') { setQnASections(allSections); @@ -297,7 +297,7 @@ const TableView: React.FC = (props) => { name: name, projectId: actualProjectId, }); - }) + }), ); if (!qnaFile) return; @@ -309,7 +309,7 @@ const TableView: React.FC = (props) => { newSourceId, projectId: actualProjectId, }); - }) + }), ); setEditQnAFile(undefined); }; @@ -401,7 +401,7 @@ const TableView: React.FC = (props) => { }; const title = formatMessage('Warning'); const subTitle = formatMessage( - 'Deleting one source file will also delete qna files with the same name on other locales' + 'Deleting one source file will also delete qna files with the same name on other locales', ); setting = { @@ -521,7 +521,7 @@ const TableView: React.FC = (props) => { return null; }, - [dialogId, qnaSections] + [dialogId, qnaSections], ); const getTableColums = () => { @@ -875,7 +875,7 @@ const TableView: React.FC = (props) => { ); }, - [dialogId] + [dialogId], ); const onRenderRow = useCallback( @@ -892,7 +892,7 @@ const TableView: React.FC = (props) => { } return null; }, - [dialogId, expandedIndex] + [dialogId, expandedIndex], ); const existedImports = qnaFile?.imports.filter((item) => { diff --git a/Composer/packages/client/src/pages/language-generation/LGPage.tsx b/Composer/packages/client/src/pages/language-generation/LGPage.tsx index 3e412c3e64..0dea831eba 100644 --- a/Composer/packages/client/src/pages/language-generation/LGPage.tsx +++ b/Composer/packages/client/src/pages/language-generation/LGPage.tsx @@ -20,18 +20,20 @@ import lgWorker from '../../recoilModel/parsers/lgWorker'; import TableView from './table-view'; const CodeEditor = React.lazy(() => import('./code-editor')); -const LGPage: React.FC> = (props) => { +const LGPage: React.FC< + RouteComponentProps<{ + dialogId: string; + projectId: string; + skillId: string; + lgFileId: string; + }> +> = (props) => { const { dialogId = '', projectId = '', skillId, lgFileId = '' } = props; const actualProjectId = skillId ?? projectId; const locale = useRecoilValue(localeState(actualProjectId)); const lgFiles = useRecoilValue(lgFilesSelectorFamily(skillId ?? projectId)); const [currentLg, setCurrentLg] = useRecoilState( - lgFileState({ projectId: actualProjectId, lgFileId: `${dialogId}.${locale}` }) + lgFileState({ projectId: actualProjectId, lgFileId: `${dialogId}.${locale}` }), ); const path = props.location?.pathname ?? ''; @@ -71,7 +73,7 @@ const LGPage: React.FC { diff --git a/Composer/packages/client/src/pages/language-generation/code-editor.tsx b/Composer/packages/client/src/pages/language-generation/code-editor.tsx index c2d12ed6a7..ec6221d9a6 100644 --- a/Composer/packages/client/src/pages/language-generation/code-editor.tsx +++ b/Composer/packages/client/src/pages/language-generation/code-editor.tsx @@ -25,7 +25,7 @@ import { DiffCodeEditor } from '../language-understanding/diff-editor'; const lspServerPath = '/lg-language-server'; -interface CodeEditorProps extends RouteComponentProps<{}> { +interface CodeEditorProps extends RouteComponentProps { dialogId: string; projectId: string; skillId?: string; @@ -66,8 +66,8 @@ const CodeEditor: React.FC = (props) => { const templateId = Array.isArray(searchTemplateName) ? searchTemplateName[0] : typeof searchTemplateName === 'string' - ? searchTemplateName - : undefined; + ? searchTemplateName + : undefined; const template = templateId && file ? file.templates.find(({ name }) => name === templateId) : undefined; const hash = props.location?.hash ?? ''; @@ -131,7 +131,7 @@ const CodeEditor: React.FC = (props) => { }; updateLgTemplateDispatcher(payload); }, 500), - [file, template, actualProjectId] + [file, template, actualProjectId], ); const updateLgFile = useMemo( @@ -146,7 +146,7 @@ const CodeEditor: React.FC = (props) => { }; updateLgFileDispatcher(payload); }, 500), - [file, actualProjectId] + [file, actualProjectId], ); const onChange = useCallback( @@ -163,7 +163,7 @@ const CodeEditor: React.FC = (props) => { updateLgFile(value); } }, - [file, template, actualProjectId] + [file, template, actualProjectId], ); const handleSettingsChange = (settings: Partial) => { @@ -191,7 +191,7 @@ const CodeEditor: React.FC = (props) => { } navigateTo(url); }, - [actualProjectId, locale] + [actualProjectId, locale], ); const currentLanguageFileEditor = useMemo(() => { diff --git a/Composer/packages/client/src/pages/language-generation/table-view.tsx b/Composer/packages/client/src/pages/language-generation/table-view.tsx index 93af09bb0b..28372e166e 100644 --- a/Composer/packages/client/src/pages/language-generation/table-view.tsx +++ b/Composer/packages/client/src/pages/language-generation/table-view.tsx @@ -47,13 +47,12 @@ const TableView: React.FC = (props) => { const locale = useRecoilValue(localeState(actualProjectId)); const settings = useRecoilValue(settingsState(actualProjectId)); const dialogs = useRecoilValue(dialogsSelectorFamily(actualProjectId)); - const { createLgTemplate, copyLgTemplate, removeLgTemplate, setMessage, updateLgTemplate } = useRecoilValue( - dispatcherState - ); + const { createLgTemplate, copyLgTemplate, removeLgTemplate, setMessage, updateLgTemplate } = + useRecoilValue(dispatcherState); const { languages, defaultLanguage } = settings; const [defaultLg, setDefaultLg] = useRecoilState( - lgFileState({ projectId: actualProjectId, lgFileId: `${dialogId}.${defaultLanguage}` }) + lgFileState({ projectId: actualProjectId, lgFileId: `${dialogId}.${defaultLanguage}` }), ); const getDefaultLangFile = () => { @@ -92,7 +91,7 @@ const TableView: React.FC = (props) => { const baseURL = skillId == null ? `/bot/${projectId}/` : `/bot/${projectId}/skill/${skillId}/`; navigateTo(`${baseURL}language-generation/${dialogId}/edit?t=${encodeURIComponent(name)}`); }, - [dialogId, projectId, skillId] + [dialogId, projectId, skillId], ); const onCreateNewTemplate = useCallback(() => { @@ -121,7 +120,7 @@ const TableView: React.FC = (props) => { removeLgTemplate(payload); } }, - [file, actualProjectId] + [file, actualProjectId], ); const onCopyTemplate = useCallback( @@ -137,7 +136,7 @@ const TableView: React.FC = (props) => { copyLgTemplate(payload); } }, - [file, actualProjectId] + [file, actualProjectId], ); const handleTemplateUpdate = useCallback( @@ -152,7 +151,7 @@ const TableView: React.FC = (props) => { updateLgTemplate(payload); } }, - [file, actualProjectId] + [file, actualProjectId], ); const handleTemplateUpdateDefaultLocale = useCallback( @@ -167,7 +166,7 @@ const TableView: React.FC = (props) => { updateLgTemplate(payload); } }, - [defaultLangFile, actualProjectId] + [defaultLangFile, actualProjectId], ); const getTemplatesMoreButtons = useCallback( @@ -200,7 +199,7 @@ const TableView: React.FC = (props) => { return buttons; }, - [activeDialog, templates, onClickEdit, onRemoveTemplate, onCopyTemplate, setMessage] + [activeDialog, templates, onClickEdit, onRemoveTemplate, onCopyTemplate, setMessage], ); const getTableColums = useCallback((): IColumn[] => { @@ -405,7 +404,7 @@ const TableView: React.FC = (props) => { // show compairable column when current lang is not default lang if (locale === defaultLanguage) { tableColums = tableColums.filter( - ({ key }) => ['responses-default-lang', 'responses-lang'].includes(key) === false + ({ key }) => ['responses-default-lang', 'responses-lang'].includes(key) === false, ); } else { tableColums = tableColums.filter(({ key }) => ['responses'].includes(key) === false); diff --git a/Composer/packages/client/src/pages/language-understanding/LUPage.tsx b/Composer/packages/client/src/pages/language-understanding/LUPage.tsx index 2d3ed8dc9f..336c889217 100644 --- a/Composer/packages/client/src/pages/language-understanding/LUPage.tsx +++ b/Composer/packages/client/src/pages/language-understanding/LUPage.tsx @@ -17,12 +17,14 @@ import TableView from './table-view'; const CodeEditor = React.lazy(() => import('./code-editor')); -const LUPage: React.FC> = (props) => { +const LUPage: React.FC< + RouteComponentProps<{ + dialogId: string; + projectId: string; + skillId: string; + luFileId: string; + }> +> = (props) => { const { dialogId = '', projectId = '', skillId, luFileId = '' } = props; const actualProjectId = skillId ?? projectId; const locale = useRecoilValue(localeState(actualProjectId)); diff --git a/Composer/packages/client/src/pages/language-understanding/code-editor.tsx b/Composer/packages/client/src/pages/language-understanding/code-editor.tsx index 4db4524cae..4f7320245f 100644 --- a/Composer/packages/client/src/pages/language-understanding/code-editor.tsx +++ b/Composer/packages/client/src/pages/language-understanding/code-editor.tsx @@ -22,7 +22,7 @@ import { DiffCodeEditor } from './diff-editor'; const lspServerPath = '/lu-language-server'; -interface CodeEditorProps extends RouteComponentProps<{}> { +interface CodeEditorProps extends RouteComponentProps { dialogId: string; projectId: string; skillId?: string; @@ -60,8 +60,8 @@ const CodeEditor: React.FC = (props) => { const sectionId = Array.isArray(searchSectionName) ? searchSectionName[0] : typeof searchSectionName === 'string' - ? searchSectionName - : undefined; + ? searchSectionName + : undefined; const intent = sectionId && file ? file.intents.find(({ Name }) => Name === sectionId) : undefined; const hash = props.location?.hash ?? ''; @@ -105,7 +105,7 @@ const CodeEditor: React.FC = (props) => { }; updateLuIntentDispatcher(payload); }, 500), - [file, intent, actualProjectId] + [file, intent, actualProjectId], ); const updateLuFile = useMemo( @@ -120,7 +120,7 @@ const CodeEditor: React.FC = (props) => { }; updateLuFileDispatcher(payload); }, 500), - [file, actualProjectId] + [file, actualProjectId], ); const onChange = useCallback( @@ -132,7 +132,7 @@ const CodeEditor: React.FC = (props) => { updateLuFile(value); } }, - [file, intent, actualProjectId] + [file, intent, actualProjectId], ); const luFeatures = settings?.luFeatures || {}; @@ -157,7 +157,7 @@ const CodeEditor: React.FC = (props) => { : `/bot/${projectId}/language-understanding/${fileId}${sectionId ? `/edit?t=${sectionId}` : ''}`; navigateTo(url); }, - [projectId, locale, currentDialog] + [projectId, locale, currentDialog], ); const currentLanguageFileEditor = useMemo(() => { diff --git a/Composer/packages/client/src/pages/language-understanding/table-view.tsx b/Composer/packages/client/src/pages/language-understanding/table-view.tsx index 59c62d4c5b..ef1f9f3820 100644 --- a/Composer/packages/client/src/pages/language-understanding/table-view.tsx +++ b/Composer/packages/client/src/pages/language-understanding/table-view.tsx @@ -144,7 +144,7 @@ const TableView: React.FC = (props) => { }; updateLuIntent(payload); }, - [actualProjectId] + [actualProjectId], ); const handleTemplateUpdateDefaultLocale = useCallback( @@ -159,7 +159,7 @@ const TableView: React.FC = (props) => { updateLuIntent(payload); } }, - [defaultLangFile, actualProjectId] + [defaultLangFile, actualProjectId], ); const getTemplatesMoreButtons = (item, index, luFileId): IContextualMenuItem[] => { @@ -172,7 +172,7 @@ const TableView: React.FC = (props) => { navigateTo( `${baseURL}language-understanding/${dialogId}${ luFileId ? `/item/${luFileId}/` : '/' - }edit?t=${encodeURIComponent(name)}` + }edit?t=${encodeURIComponent(name)}`, ); }, }, diff --git a/Composer/packages/client/src/pages/plugin/PluginPageContainer.tsx b/Composer/packages/client/src/pages/plugin/PluginPageContainer.tsx index 1159393e5e..e910daaa1c 100644 --- a/Composer/packages/client/src/pages/plugin/PluginPageContainer.tsx +++ b/Composer/packages/client/src/pages/plugin/PluginPageContainer.tsx @@ -7,7 +7,7 @@ import { RouteComponentProps } from '@reach/router'; import { PluginHost } from '../../components/PluginHost/PluginHost'; const PluginPageContainer: React.FC> = ( - props + props, ) => { const { pluginId, bundleId, projectId } = props; diff --git a/Composer/packages/client/src/pages/publish/BotStatusList.tsx b/Composer/packages/client/src/pages/publish/BotStatusList.tsx index 8b5ad34eff..0a819da6c3 100644 --- a/Composer/packages/client/src/pages/publish/BotStatusList.tsx +++ b/Composer/packages/client/src/pages/publish/BotStatusList.tsx @@ -101,13 +101,12 @@ export const BotStatusList: React.FC = ({ const getPublishTargetOptions = (item: BotStatus): IDropdownOption[] => { const options: IDropdownOption[] = []; - item.publishTargets && - item.publishTargets.forEach((target, index) => { - options.push({ - key: target.name, - text: target.name, - }); + item.publishTargets?.forEach((target, index) => { + options.push({ + key: target.name, + text: target.name, }); + }); options.push({ key: 'manageProfiles', text: formatMessage('Manage profiles'), @@ -130,7 +129,7 @@ export const BotStatusList: React.FC = ({ const handleChangePublishTarget = ( event: React.FormEvent, item: BotStatus, - option?: IDropdownOption + option?: IDropdownOption, ): void => { if (option) { if (option.key === 'manageProfiles') { diff --git a/Composer/packages/client/src/pages/publish/Notifications.tsx b/Composer/packages/client/src/pages/publish/Notifications.tsx index f983179d79..9f77225ab1 100644 --- a/Composer/packages/client/src/pages/publish/Notifications.tsx +++ b/Composer/packages/client/src/pages/publish/Notifications.tsx @@ -73,7 +73,7 @@ export const getPublishedNotificationCardProps = (item: BotStatus): CardProps => export const getSkillPublishedNotificationCardProps = ( item: { status: number } & Record, - url?: string + url?: string, ): CardProps => { const skillCardContent = css` display: flex; @@ -121,7 +121,7 @@ export const getSkillPublishedNotificationCardProps = ( description: item.status === 200 ? formatMessage( - 'Keep this URL handy to share it with other developers to use in their bot projects. You can find this URL in the project settings tab.' + 'Keep this URL handy to share it with other developers to use in their bot projects. You can find this URL in the project settings tab.', ) : formatMessage(`Your skill could not be published.`), type: item.status === 200 ? 'success' : 'error', @@ -171,7 +171,7 @@ export const getPendingNotificationCardProps = (items: BotStatus[], isSkill = fa =1 {one bot} other {# bots} }`, - { count: items.length } + { count: items.length }, ); return { title: '', diff --git a/Composer/packages/client/src/pages/publish/Publish.tsx b/Composer/packages/client/src/pages/publish/Publish.tsx index 0b65f23e93..9b7229b897 100644 --- a/Composer/packages/client/src/pages/publish/Publish.tsx +++ b/Composer/packages/client/src/pages/publish/Publish.tsx @@ -95,7 +95,7 @@ const Publish: React.FC( - initUpdaterStatus(publishHistoryList) + initUpdaterStatus(publishHistoryList), ); const [checkedSkillIds, setCheckedSkillIds] = useState([]); @@ -162,7 +162,7 @@ const Publish: React.FC !!bot.publishTarget && !pollingUpdaterList.some((u) => u.isSameUpdater(bot.id, bot.publishTarget)) + (bot) => !!bot.publishTarget && !pollingUpdaterList.some((u) => u.isSameUpdater(bot.id, bot.publishTarget)), ) .forEach((bot) => { if (pollingUpdaterList.some((updater) => updater.isSameUpdater(bot.id, bot.publishTarget))) return; @@ -232,7 +232,7 @@ const Publish: React.FC', () => { it('should render', async () => { const { findByText } = render(); await findByText( - 'You are about to pull project files from the selected publish profiles. The current project will be overwritten by the pulled files, and will be saved as a backup automatically. You will be able to retrieve the backup anytime in the future.' + 'You are about to pull project files from the selected publish profiles. The current project will be overwritten by the pulled files, and will be saved as a backup automatically. You will be able to retrieve the backup anytime in the future.', ); }); diff --git a/Composer/packages/client/src/pages/publish/publishPageUtils.tsx b/Composer/packages/client/src/pages/publish/publishPageUtils.tsx index fb76032a6f..e4f176c7e6 100644 --- a/Composer/packages/client/src/pages/publish/publishPageUtils.tsx +++ b/Composer/packages/client/src/pages/publish/publishPageUtils.tsx @@ -46,7 +46,7 @@ const findSkillManifestUrl = (skillManifests: SkillManifestFile[], hostname: str export const generateBotStatusList = ( botList: Bot[], botPropertyData: BotPropertyType, - botPublishHistoryList: BotPublishHistory + botPublishHistoryList: BotPublishHistory, ): BotStatus[] => { const bots = botList.map((bot) => { const botStatus: BotStatus = Object.assign({ skillManifestUrl: '' }, bot); @@ -70,7 +70,7 @@ export const generateBotStatusList = ( botStatus.skillManifestUrl = findSkillManifestUrl( botPropertyData[bot.id].skillManifests, config.hostname, - appId + appId, ); } } diff --git a/Composer/packages/client/src/pages/publish/pullConfirmationDialog.tsx b/Composer/packages/client/src/pages/publish/pullConfirmationDialog.tsx index 60b5f3e876..21b29e798a 100644 --- a/Composer/packages/client/src/pages/publish/pullConfirmationDialog.tsx +++ b/Composer/packages/client/src/pages/publish/pullConfirmationDialog.tsx @@ -31,7 +31,7 @@ export const PullConfirmationDialog: React.FC = (pr >

{formatMessage( - 'You are about to pull project files from the selected publish profiles. The current project will be overwritten by the pulled files, and will be saved as a backup automatically. You will be able to retrieve the backup anytime in the future.' + 'You are about to pull project files from the selected publish profiles. The current project will be overwritten by the pulled files, and will be saved as a backup automatically. You will be able to retrieve the backup anytime in the future.', )}

{formatMessage('Do you want to proceed?')}

diff --git a/Composer/packages/client/src/pages/publish/pullDialog.tsx b/Composer/packages/client/src/pages/publish/pullDialog.tsx index 61b409e01b..bf892dd195 100644 --- a/Composer/packages/client/src/pages/publish/pullDialog.tsx +++ b/Composer/packages/client/src/pages/publish/pullDialog.tsx @@ -43,7 +43,7 @@ export const PullDialog: React.FC = (props) => { try { // wait for pull result from server const res = await axios.post<{ backupLocation: string }>( - `/api/publish/${projectId}/pull/${selectedTarget.name}` + `/api/publish/${projectId}/pull/${selectedTarget.name}`, ); const { backupLocation } = res.data; // show notification indicating success and close dialog diff --git a/Composer/packages/client/src/pages/publish/pullFailedDialog.tsx b/Composer/packages/client/src/pages/publish/pullFailedDialog.tsx index 444ebec0a3..73cc3dff37 100644 --- a/Composer/packages/client/src/pages/publish/pullFailedDialog.tsx +++ b/Composer/packages/client/src/pages/publish/pullFailedDialog.tsx @@ -45,7 +45,7 @@ export const PullFailedDialog: React.FC = (props) => {

{formatMessage.rich( 'There was an unexpected error pulling from publish profile { selectedTargetName }', - { b: Bold, selectedTargetName } + { b: Bold, selectedTargetName }, )}

{typeof error === 'object' ? JSON.stringify(error, undefined, 2) : error}

diff --git a/Composer/packages/client/src/pages/setting/SettingsPage.tsx b/Composer/packages/client/src/pages/setting/SettingsPage.tsx index 2292203e42..c7075bc4f9 100644 --- a/Composer/packages/client/src/pages/setting/SettingsPage.tsx +++ b/Composer/packages/client/src/pages/setting/SettingsPage.tsx @@ -47,13 +47,8 @@ const getProjectLink = (path: string, id?: string) => { }; const SettingPage: React.FC = () => { - const { - addLanguageDialogCancel, - delLanguageDialogCancel, - addLanguages, - deleteLanguages, - fetchProjectById, - } = useRecoilValue(dispatcherState); + const { addLanguageDialogCancel, delLanguageDialogCancel, addLanguages, deleteLanguages, fetchProjectById } = + useRecoilValue(dispatcherState); const projectId = useRecoilValue(currentProjectIdState); const locale = useRecoilValue(localeState(projectId)); const showDelLanguageModal = useRecoilValue(showDelLanguageModalState(projectId)); diff --git a/Composer/packages/client/src/pages/setting/app-settings/AppSettings.tsx b/Composer/packages/client/src/pages/setting/app-settings/AppSettings.tsx index 0ff3973b40..f8af82f70e 100644 --- a/Composer/packages/client/src/pages/setting/app-settings/AppSettings.tsx +++ b/Composer/packages/client/src/pages/setting/app-settings/AppSettings.tsx @@ -26,7 +26,7 @@ import { PreviewFeatureToggle } from './PreviewFeatureToggle'; import { TemplateFeedForm } from './TemplateFeedForm'; const ElectronSettings = lazy(() => - import('./electronSettings').then((module) => ({ default: module.ElectronSettings })) + import('./electronSettings').then((module) => ({ default: module.ElectronSettings })), ); const AppSettings: React.FC = () => { @@ -41,7 +41,7 @@ const AppSettings: React.FC = () => { onboardingSetComplete(!checked); showCallout(checked); }, - [onboardingSetComplete] + [onboardingSetComplete], ); const onCodeEditorChange = (key: string) => (value: boolean | Record) => { @@ -179,7 +179,7 @@ const AppSettings: React.FC = () => { = () => { { featureFlagKey={key as FeatureFlagKey} featureFlagName={featureFlag.displayName} toggleFeatureFlag={toggleFeatureFlag} - /> + />, ); } }); @@ -42,7 +42,7 @@ export const PreviewFeatureToggle: React.FC = () => { result.push( {formatMessage('There are no preview features at this time.')} - + , ); } return
{result}
; @@ -54,7 +54,7 @@ export const PreviewFeatureToggle: React.FC = () => { hideToggle checked={featureFlagVisible} description={formatMessage( - 'Try new features in preview and help us make Composer better. You can turn them on or off at any time.' + 'Try new features in preview and help us make Composer better. You can turn them on or off at any time.', )} image={images.previewFeatures} title={formatMessage('Preview features')} diff --git a/Composer/packages/client/src/pages/setting/app-settings/TemplateFeedForm.tsx b/Composer/packages/client/src/pages/setting/app-settings/TemplateFeedForm.tsx index e24c79a7de..123d6d3830 100644 --- a/Composer/packages/client/src/pages/setting/app-settings/TemplateFeedForm.tsx +++ b/Composer/packages/client/src/pages/setting/app-settings/TemplateFeedForm.tsx @@ -60,7 +60,7 @@ export const TemplateFeedForm = () => { setFieldDisabled(false); if (templateProjects.length < 1) { setErrorMessage( - formatMessage('This feed did not return any templates, please confirm that this is a valid template feed URL.') + formatMessage('This feed did not return any templates, please confirm that this is a valid template feed URL.'), ); } else { setErrorMessage(''); diff --git a/Composer/packages/client/src/pages/setting/app-settings/electronSettings.tsx b/Composer/packages/client/src/pages/setting/app-settings/electronSettings.tsx index 019f3e8eb9..06ea2aa644 100644 --- a/Composer/packages/client/src/pages/setting/app-settings/electronSettings.tsx +++ b/Composer/packages/client/src/pages/setting/app-settings/electronSettings.tsx @@ -50,7 +50,7 @@ export const ElectronSettings: React.FC = () => { {props.children} ; }, - } + }, ) as any } image={images.earlyAdopters} diff --git a/Composer/packages/client/src/pages/setting/dialog-settings/DialogSettings.tsx b/Composer/packages/client/src/pages/setting/dialog-settings/DialogSettings.tsx index 82d8d55ea9..84c36ef251 100644 --- a/Composer/packages/client/src/pages/setting/dialog-settings/DialogSettings.tsx +++ b/Composer/packages/client/src/pages/setting/dialog-settings/DialogSettings.tsx @@ -55,7 +55,7 @@ export const DialogSettings: React.FC const onDefaultLanguageChange = ( _event: React.FormEvent, option?: IDropdownOption, - _index?: number + _index?: number, ) => { const selectedLang = option?.key as string; if (selectedLang && selectedLang !== defaultLanguage) { diff --git a/Composer/packages/client/src/pages/setting/dialog-settings/constants.ts b/Composer/packages/client/src/pages/setting/dialog-settings/constants.ts index e83cabcd41..44d20a3c88 100644 --- a/Composer/packages/client/src/pages/setting/dialog-settings/constants.ts +++ b/Composer/packages/client/src/pages/setting/dialog-settings/constants.ts @@ -10,10 +10,11 @@ export const BotSettings = { botSettings: formatMessage('Settings'), generalTitle: formatMessage('General'), botSettingDescription: formatMessage( - 'Settings contains detailed information about your bot. For security reasons, they are hidden by default. To test your bot or publish to Azure, you may need to provide these settings.' + 'Settings contains detailed information about your bot. For security reasons, they are hidden by default. To test your bot or publish to Azure, you may need to provide these settings.', ), languageTitle: formatMessage('Bot language'), - languagesubTitle: formatMessage(`Select the language that bot will be able to understand (User input) and respond to (Bot responses). + languagesubTitle: + formatMessage(`Select the language that bot will be able to understand (User input) and respond to (Bot responses). To make this bot available in other languages, click “Add’ to create a copy of the default language, and translate the content into the new language.`), languageBotLanauge: formatMessage('Bot language (active)'), languageDefaultLanauge: formatMessage('Default language'), diff --git a/Composer/packages/client/src/plugin-host-preload.ts b/Composer/packages/client/src/plugin-host-preload.ts index f014fc023d..1733b1a077 100644 --- a/Composer/packages/client/src/plugin-host-preload.ts +++ b/Composer/packages/client/src/plugin-host-preload.ts @@ -33,7 +33,7 @@ if (!document.getElementById('plugin-host-default-styles')) { flex-flow: column nowrap; height: 100%; } - `) + `), ); document.head.appendChild(styles); } diff --git a/Composer/packages/client/src/plugins.ts b/Composer/packages/client/src/plugins.ts index c9a93f630b..356b8f942e 100644 --- a/Composer/packages/client/src/plugins.ts +++ b/Composer/packages/client/src/plugins.ts @@ -46,5 +46,5 @@ export default mergePluginConfigs( lu, orchestrator, crossTrained, - schemaEditor + schemaEditor, ); diff --git a/Composer/packages/client/src/plugins/api.ts b/Composer/packages/client/src/plugins/api.ts index 89a12f2e0a..6823d2b187 100644 --- a/Composer/packages/client/src/plugins/api.ts +++ b/Composer/packages/client/src/plugins/api.ts @@ -7,9 +7,9 @@ import { AuthClient } from '../utils/authClient'; interface IAPI { auth: AuthAPI; - page?: {}; + page?: any; publish: PublishAPI; - storage?: {}; + storage?: any; } interface PublishConfig { diff --git a/Composer/packages/client/src/recoilModel/DispatcherWrapper.tsx b/Composer/packages/client/src/recoilModel/DispatcherWrapper.tsx index 68ea258383..72833da012 100644 --- a/Composer/packages/client/src/recoilModel/DispatcherWrapper.tsx +++ b/Composer/packages/client/src/recoilModel/DispatcherWrapper.tsx @@ -2,7 +2,6 @@ // Licensed under the MIT License. import React, { useRef, useState, Fragment, useLayoutEffect, MutableRefObject } from 'react'; -// eslint-disable-next-line @typescript-eslint/camelcase import { useRecoilTransactionObserver_UNSTABLE, Snapshot, useRecoilState } from 'recoil'; import once from 'lodash/once'; import { BotAssets } from '@bfc/shared'; diff --git a/Composer/packages/client/src/recoilModel/Recognizers.tsx b/Composer/packages/client/src/recoilModel/Recognizers.tsx index 0f52f18adf..bea7354f15 100644 --- a/Composer/packages/client/src/recoilModel/Recognizers.tsx +++ b/Composer/packages/client/src/recoilModel/Recognizers.tsx @@ -80,7 +80,7 @@ export const getMultiLanguagueRecognizerDialog = ( fileType: 'lu' | 'qna', isOrchestrator = false, supportedLanguages: string[] = [], - defaultLanguage = 'en-us' + defaultLanguage = 'en-us', ) => { const key = fileType === 'qna' ? 'QnA' : isOrchestrator ? 'ORCHESTRATOR' : 'LUIS'; @@ -150,7 +150,7 @@ export const generateRecognizers = ( luFiles: LuFile[], qnaFiles: QnAFile[], luProvide?: LuProviderType, - defaultLanguage = 'en-us' + defaultLanguage = 'en-us', ) => { const isCrossTrain = isCrossTrainedRecognizerSet(dialog); const isOrchestrator = luProvide === SDKKinds.OrchestratorRecognizer; @@ -163,7 +163,7 @@ export const generateRecognizers = ( 'lu', isOrchestrator, LUISLocales, - defaultLanguage + defaultLanguage, ); const crossTrainedRecognizer = getCrossTrainedRecognizerDialog(dialog.id, luFiles, qnaFiles); @@ -173,7 +173,7 @@ export const generateRecognizers = ( 'qna', false, QnALocales, - defaultLanguage + defaultLanguage, ); const qnaMakeRecognizers = getQnAMakerRecognizerDialogs(dialog.id, qnaFiles); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/application.test.ts b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/application.test.ts index dbe968e1af..7dbb8fe11b 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/application.test.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/application.test.ts @@ -55,7 +55,7 @@ describe('application dispatchers', () => { applicationDispatcher, }, }, - } + }, ); renderedComponent = rendered.result; dispatcher = renderedComponent.current.dispatcher; diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/botProjectFile.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/botProjectFile.test.tsx index 0be4292452..cdce0f733b 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/botProjectFile.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/botProjectFile.test.tsx @@ -30,11 +30,13 @@ describe('Bot Project File dispatcher', () => { const skillsDataSelector = selectorFamily({ key: 'skillsDataSelector-botProjectFile', get: (skillId: string) => noop, - set: (skillId: string) => ({ set }, stateUpdater: any) => { - const { botNameIdentifier, location } = stateUpdater; - set(botNameIdentifierState(skillId), botNameIdentifier); - set(locationState(skillId), location); - }, + set: + (skillId: string) => + ({ set }, stateUpdater: any) => { + const { botNameIdentifier, location } = stateUpdater; + set(botNameIdentifierState(skillId), botNameIdentifier); + set(locationState(skillId), location); + }, }); const botStatesSelector = selector({ @@ -118,7 +120,7 @@ describe('Bot Project File dispatcher', () => { settingsDispatcher, }, }, - } + }, ); renderedComponent = rendered.result; dispatcher = renderedComponent.current.currentDispatcher; @@ -137,7 +139,7 @@ describe('Bot Project File dispatcher', () => { }); expect(renderedComponent.current.botProjectFile.content.skills.todoSkill.workspace).toMatch( - /\.\.(\/|\\)Todo-Skill/ + /\.\.(\/|\\)Todo-Skill/, ); expect(renderedComponent.current.botProjectFile.content.skills.todoSkill.remote).toBeFalsy(); }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/dialogSchema.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/dialogSchema.test.tsx index 38384a53c8..d3babb7e53 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/dialogSchema.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/dialogSchema.test.tsx @@ -52,7 +52,7 @@ describe('dialog schema dispatcher', () => { await dispatcher.updateDialogSchema({ id: '100', content: 'abcde' }, projectId); }); expect(renderedComponent.current.dialogSchemas.find((dialogSchema) => dialogSchema.id === '100').content).toEqual( - 'abcde' + 'abcde', ); }); }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx index 8a3bd45888..1e8dfb374b 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lg.test.tsx @@ -23,18 +23,23 @@ jest.mock('../../parsers/lgWorker', () => { return { parse: (projectId, id, content) => ({ id, content }), addTemplate: (projectId, lgFile, template) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/lgUtil').addTemplate(lgFile, template)), addTemplates: (projectId, lgFile, templates) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/lgUtil').addTemplates(lgFile, templates)), updateTemplate: (projectId, lgFile, templateName, template) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/lgUtil').updateTemplate(lgFile, templateName, template)), removeTemplate: (projectId, lgFile, templateName) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/lgUtil').removeTemplate(lgFile, templateName)), removeTemplates: (projectId, lgFile, templateNames) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/lgUtil').removeTemplates(lgFile, templateNames)), copyTemplate: (projectId, lgFile, fromTemplateName, toTemplateName) => filterParseResult( - require('@bfc/indexers/lib/utils/lgUtil').copyTemplate(lgFile, fromTemplateName, toTemplateName) + require('@bfc/indexers/lib/utils/lgUtil').copyTemplate(lgFile, fromTemplateName, toTemplateName), ), }; }); @@ -56,7 +61,7 @@ const getLgTemplate = (name, body): LgTemplate => ({ name, body, - } as LgTemplate); + }) as LgTemplate; describe('Lg dispatcher', () => { const useRecoilTestHook = () => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lu.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lu.test.tsx index 504fd0c5f4..dedd49f8ff 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lu.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/lu.test.tsx @@ -18,10 +18,15 @@ const luFeatures = {}; jest.mock('../../parsers/luWorker', () => { return { parse: (id: string, content, luFeatures) => ({ id, content, luFeatures }), + // eslint-disable-next-line @typescript-eslint/no-var-requires addIntent: require('@bfc/indexers/lib/utils/luUtil').addIntent, + // eslint-disable-next-line @typescript-eslint/no-var-requires addIntents: require('@bfc/indexers/lib/utils/luUtil').addIntents, + // eslint-disable-next-line @typescript-eslint/no-var-requires updateIntent: require('@bfc/indexers/lib/utils/luUtil').updateIntent, + // eslint-disable-next-line @typescript-eslint/no-var-requires removeIntent: require('@bfc/indexers/lib/utils/luUtil').removeIntent, + // eslint-disable-next-line @typescript-eslint/no-var-requires removeIntents: require('@bfc/indexers/lib/utils/luUtil').removeIntents, }; }); @@ -37,7 +42,7 @@ const getLuIntent = (Name, Body): LuIntentSection => ({ Name, Body, - } as LuIntentSection); + }) as LuIntentSection; describe('Lu dispatcher', () => { const useRecoilTestHook = () => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/orchestrator.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/orchestrator.test.tsx index 6c2194a667..9d61b5a15f 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/orchestrator.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/orchestrator.test.tsx @@ -44,63 +44,63 @@ describe('Orchestrator model picking logic', () => { expect( await getAvailableLanguageModels([ { id: 'test.en-us.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([enModel]); expect( await getAvailableLanguageModels([ { id: 'test.EN-us.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([enModel]); expect( await getAvailableLanguageModels([ { id: 'test.en-US.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([enModel]); expect( - await getAvailableLanguageModels([{ id: 'test.en.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.en.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toEqual([enModel]); expect( await getAvailableLanguageModels([ { id: 'test.en-anything.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([enModel]); }); it('return multilang model under correct circumstances', async () => { const multilingualModel = { kind: 'multilingual_intent', name: 'default' }; expect( - await getAvailableLanguageModels([{ id: 'test.it.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.it.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toEqual([multilingualModel]); expect( - await getAvailableLanguageModels([{ id: 'test.jp.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.jp.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toHaveLength(0); expect( - await getAvailableLanguageModels([{ id: 'test.ja.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.ja.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toHaveLength(1); expect( await getAvailableLanguageModels([ { id: 'test.zh-cn.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([multilingualModel]); expect( await getAvailableLanguageModels([ { id: 'test.zh-CN.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([multilingualModel]); expect( await getAvailableLanguageModels([ { id: 'test.rwk-tz.dialog', content: { $kind: SDKKinds.OrchestratorRecognizer } }, - ]) + ]), ).toEqual([multilingualModel]); expect( - await getAvailableLanguageModels([{ id: 'test.pap', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.pap', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toEqual([multilingualModel]); expect( - await getAvailableLanguageModels([{ id: 'test.tr-cy', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.tr-cy', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toEqual([multilingualModel]); expect( - await getAvailableLanguageModels([{ id: 'test.nope', content: { $kind: SDKKinds.OrchestratorRecognizer } }]) + await getAvailableLanguageModels([{ id: 'test.nope', content: { $kind: SDKKinds.OrchestratorRecognizer } }]), ).toHaveLength(0); }); @@ -131,8 +131,8 @@ describe('Orchestrator model picking logic', () => { (httpClient.get as jest.Mock).mockResolvedValueOnce({ data: { defaults: { - en_intent: 'fake_english_model_name', // eslint-disable-line @typescript-eslint/camelcase - multilingual_intent: 'fake_multilingual_model_name', // eslint-disable-line @typescript-eslint/camelcase + en_intent: 'fake_english_model_name', + multilingual_intent: 'fake_multilingual_model_name', }, }, }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/project.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/project.test.tsx index 3b96cf18c7..8837a912af 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/project.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/project.test.tsx @@ -72,8 +72,8 @@ jest.mock('../../parsers/lgWorker', () => { const result = require('@bfc/indexers').lgUtil.parse(id, content, files); delete result.parseResult; return result; - }) - ) + }), + ), ), }; }); @@ -83,7 +83,7 @@ jest.mock('../../parsers/luWorker', () => { flush: () => new Promise((resolve) => resolve(null)), parseAll: (files, luFeatures) => new Promise((resolve) => - resolve(files.map(({ id, content }) => require('@bfc/indexers').luUtil.parse(id, content, luFeatures))) + resolve(files.map(({ id, content }) => require('@bfc/indexers').luUtil.parse(id, content, luFeatures))), ), }; }); @@ -93,7 +93,7 @@ jest.mock('../../parsers/qnaWorker', () => { flush: () => new Promise((resolve) => resolve(null)), parseAll: (files) => new Promise((resolve) => - resolve(files.map(({ id, content }) => require('@bfc/indexers').qnaUtil.parse(id, content))) + resolve(files.map(({ id, content }) => require('@bfc/indexers').qnaUtil.parse(id, content))), ), }; }); @@ -209,7 +209,7 @@ describe('Project dispatcher', () => { settingsDispatcher, }, }, - } + }, ); renderedComponent = rendered.result; dispatcher = renderedComponent.current.currentDispatcher; @@ -427,13 +427,13 @@ describe('Project dispatcher', () => { await dispatcher.addRemoteSkillToBotProject( 'https://test-dev.azurewebsites.net/manifests/onenote-2-1-preview-1-manifest.json', 'remote', - {} + {}, ); }); expect(renderedComponent.current.botStates.oneNoteSync).toBeDefined(); expect(renderedComponent.current.botStates.oneNoteSync.botDisplayName).toBe('OneNoteSync'); expect(renderedComponent.current.botStates.oneNoteSync.location).toBe( - 'https://test-dev.azurewebsites.net/manifests/onenote-2-1-preview-1-manifest.json' + 'https://test-dev.azurewebsites.net/manifests/onenote-2-1-preview-1-manifest.json', ); expect(navigateTo).toHaveBeenLastCalledWith(`/bot/${projectId}/skill/${skillId}`); mockImplementation.mockClear(); @@ -463,7 +463,7 @@ describe('Project dispatcher', () => { await dispatcher.addRemoteSkillToBotProject( 'https://test-dev.azurewebsites.net/manifests/onenote-2-1-preview-1-manifest.json', 'remote', - {} + {}, ); }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/qna.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/qna.test.tsx index 09df276f29..0071cfae89 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/qna.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/qna.test.tsx @@ -21,24 +21,30 @@ jest.mock('../../parsers/qnaWorker', () => { return { parse: (id: string, content) => ({ id, content }), removeSection: (projectId: string, qnaFile, sectionId: string) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/qnaUtil').removeSection(qnaFile, sectionId)), insertSection: (projectId: string, qnaFile, position, sectionContent) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/qnaUtil').insertSection(qnaFile, position, sectionContent)), createQnAQuestion: (projectId: string, qnaFile, sectionId: string, questionContent) => filterParseResult( - require('@bfc/indexers/lib/utils/qnaUtil').createQnAQuestion(qnaFile, sectionId, questionContent) + require('@bfc/indexers/lib/utils/qnaUtil').createQnAQuestion(qnaFile, sectionId, questionContent), ), updateQnAQuestion: (projectId: string, qnaFile, sectionId: string, questionId: string, questionContent) => filterParseResult( - require('@bfc/indexers/lib/utils/qnaUtil').updateQnAQuestion(qnaFile, sectionId, questionId, questionContent) + require('@bfc/indexers/lib/utils/qnaUtil').updateQnAQuestion(qnaFile, sectionId, questionId, questionContent), ), removeQnAQuestion: (projectId: string, qnaFile, sectionId: string, questionId: string) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/qnaUtil').removeQnAQuestion(qnaFile, sectionId, questionId)), updateQnAAnswer: (projectId: string, qnaFile, sectionId: string, answerContent) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/qnaUtil').updateQnAAnswer(qnaFile, sectionId, answerContent)), addImport: (projectId: string, qnaFile: string, path: string) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/qnaUtil').addImport(qnaFile, path)), removeImport: (projectId: string, qnaFile, path: string) => + // eslint-disable-next-line @typescript-eslint/no-var-requires filterParseResult(require('@bfc/indexers/lib/utils/qnaUtil').removeImport(qnaFile, path)), }; }); @@ -121,7 +127,7 @@ describe('QnA dispatcher', () => { }); expect(renderedComponent.current.qnaFiles[0].qnaSections[0].Questions[0].content).toContain( - 'What is your name, my friend?' + 'What is your name, my friend?', ); }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/setting.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/setting.test.tsx index dc2ef83dac..d28862ec38 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/setting.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/setting.test.tsx @@ -129,7 +129,7 @@ describe('setting dispatcher', () => { lastPublished: new Date(), }, ], - projectId + projectId, ); }); @@ -146,7 +146,7 @@ describe('setting dispatcher', () => { expect(renderedComponent.current.settings.runtime.path).toBe('path'); expect(renderedComponent.current.settings.runtime.command).toBe('command'); expect(renderedComponent.current.settings.runtime.key).toBe('key'); - // @ts-ignore - runtime has 'name' in practice and is of a type that has 'name', but TS isn't seeing it somehow + // @ts-expect-error - runtime has 'name' in practice and is of a type that has 'name', but TS isn't seeing it somehow expect(renderedComponent.current.settings.runtime.name).toBe('name'); }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/skill.test.ts b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/skill.test.ts index de3b47662f..5d4ea91b70 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/skill.test.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/skill.test.ts @@ -35,19 +35,23 @@ const skillIds = ['1234.123', '234.234']; describe('skill dispatcher', () => { const skillsDataSelector = selectorFamily({ key: 'skillSelector-skill', - get: (skillId: string) => ({ get }) => { - return { - skillNameIdentifier: get(botNameIdentifierState(skillId)), - location: get(locationState(skillId)), - }; - }, - set: (skillId: string) => ({ set }, stateUpdater: any) => { - const { botNameIdentifier, location, displayName, settings } = stateUpdater; - set(botNameIdentifierState(skillId), botNameIdentifier); - set(locationState(skillId), location); - set(settingsState(skillId), settings); - set(botDisplayNameState(skillId), displayName); - }, + get: + (skillId: string) => + ({ get }) => { + return { + skillNameIdentifier: get(botNameIdentifierState(skillId)), + location: get(locationState(skillId)), + }; + }, + set: + (skillId: string) => + ({ set }, stateUpdater: any) => { + const { botNameIdentifier, location, displayName, settings } = stateUpdater; + set(botNameIdentifierState(skillId), botNameIdentifier); + set(locationState(skillId), location); + set(settingsState(skillId), settings); + set(botDisplayNameState(skillId), displayName); + }, }); const useRecoilTestHook = () => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/storage.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/storage.test.tsx index 6f35838b10..92d9623c1b 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/storage.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/storage.test.tsx @@ -63,7 +63,7 @@ describe('Storage dispatcher', () => { storageDispatcher, }, }, - } + }, ); renderedComponent = rendered.result; dispatcher = renderedComponent.current.currentDispatcher; diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/trigger.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/trigger.test.tsx index d5638dc82b..8bd973ca54 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/trigger.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/trigger.test.tsx @@ -207,7 +207,7 @@ describe('trigger dispatcher', () => { const targetTrigger = (updatedDialog?.content as any).triggers[0]; await act(async () => { - // @ts-ignore - targetTrigger should be an ITriggerCondition, but we give it an ITrigger + // @ts-expect-error - targetTrigger should be an ITriggerCondition, but we give it an ITrigger await dispatcher.deleteTrigger(projectId, dialogId, targetTrigger); }); const updatedDialog2 = renderedComponent.current.dialogs.find(({ id }) => id === dialogId); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/webchat.test.tsx b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/webchat.test.tsx index 34e83fbdfd..74043f722d 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/__tests__/webchat.test.tsx +++ b/Composer/packages/client/src/recoilModel/dispatchers/__tests__/webchat.test.tsx @@ -53,7 +53,7 @@ describe('web chat dispatcher', () => { activity: {} as any, id: '', timestamp: Date.now(), - trafficType: 'activity' as 'activity', + trafficType: 'activity' as const, }; await act(async () => { await dispatcher.appendWebChatTraffic(projectId, trafficItem); @@ -67,13 +67,13 @@ describe('web chat dispatcher', () => { activity: {} as any, id: '', timestamp: Date.now(), - trafficType: 'activity' as 'activity', + trafficType: 'activity' as const, }; const trafficItem2 = { activity: {} as any, id: '', timestamp: Date.now() + 5, - trafficType: 'activity' as 'activity', + trafficType: 'activity' as const, }; await act(async () => { await dispatcher.appendWebChatTraffic(projectId, [trafficItem1, trafficItem2]); @@ -87,7 +87,7 @@ describe('web chat dispatcher', () => { activity: {} as any, id: '', timestamp: Date.now(), - trafficType: 'activity' as 'activity', + trafficType: 'activity' as const, }; await act(async () => { await dispatcher.appendWebChatTraffic(projectId, trafficItem); @@ -105,7 +105,7 @@ describe('web chat dispatcher', () => { it('should set inspection data state', async () => { const inspectionData = { item: {} as any, - mode: 'request' as 'request', + mode: 'request' as const, }; await act(async () => { await dispatcher.setWebChatInspectionData(projectId, inspectionData); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/application.ts b/Composer/packages/client/src/recoilModel/dispatchers/application.ts index 8dca6a0c1d..ccc593b62d 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/application.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/application.ts @@ -36,24 +36,25 @@ import { flushExistingTasks } from './utils/project'; export const applicationDispatcher = () => { const setAppUpdateStatus = useRecoilCallback( - ({ set }: CallbackInterface) => (status: AppUpdaterStatus, version: string | undefined) => { - set(appUpdateState, (currentAppUpdate) => { - const newAppUpdateState = { - ...currentAppUpdate, - }; - if (status === AppUpdaterStatus.UPDATE_AVAILABLE || status === AppUpdaterStatus.BREAKING_UPDATE_AVAILABLE) { - newAppUpdateState.version = version; - } - if (status === AppUpdaterStatus.IDLE) { - newAppUpdateState.progressPercent = 0; - newAppUpdateState.version = undefined; - } - - newAppUpdateState.status = status; - - return newAppUpdateState; - }); - } + ({ set }: CallbackInterface) => + (status: AppUpdaterStatus, version: string | undefined) => { + set(appUpdateState, (currentAppUpdate) => { + const newAppUpdateState = { + ...currentAppUpdate, + }; + if (status === AppUpdaterStatus.UPDATE_AVAILABLE || status === AppUpdaterStatus.BREAKING_UPDATE_AVAILABLE) { + newAppUpdateState.version = version; + } + if (status === AppUpdaterStatus.IDLE) { + newAppUpdateState.progressPercent = 0; + newAppUpdateState.version = undefined; + } + + newAppUpdateState.status = status; + + return newAppUpdateState; + }); + }, ); const setAppUpdateShowing = useRecoilCallback(({ set }: CallbackInterface) => (isShowing: boolean) => { @@ -75,38 +76,43 @@ export const applicationDispatcher = () => { }); const setAppUpdateProgress = useRecoilCallback( - ({ set }: CallbackInterface) => (progressPercent: number, downloadSizeInBytes: number) => { - set(appUpdateState, (updaterState: AppUpdateState) => { - return { - ...updaterState, - progressPercent, - downloadSizeInBytes, - }; - }); - } + ({ set }: CallbackInterface) => + (progressPercent: number, downloadSizeInBytes: number) => { + set(appUpdateState, (updaterState: AppUpdateState) => { + return { + ...updaterState, + progressPercent, + downloadSizeInBytes, + }; + }); + }, ); const setMessage = useRecoilCallback(({ set }: CallbackInterface) => (message: string) => { set(announcementState, message); }); - const setPageElementState = useRecoilCallback(({ set }: CallbackInterface) => (mode: PageMode, settings: {}) => { - set(pageElementState, (currentElementState) => ({ - ...currentElementState, - [mode]: settings, - })); - }); + const setPageElementState = useRecoilCallback( + ({ set }: CallbackInterface) => + (mode: PageMode, settings: Record) => { + set(pageElementState, (currentElementState) => ({ + ...currentElementState, + [mode]: settings, + })); + }, + ); const onboardingAddCoachMarkRef = useRecoilCallback( - ({ set }: CallbackInterface) => (coachMarkRef: { [key: string]: any }) => { - set(onboardingState, (onboardingObj) => ({ - ...onboardingObj, - coachMarkRefs: { - ...onboardingObj.coachMarkRefs, - ...coachMarkRef, - }, - })); - } + ({ set }: CallbackInterface) => + (coachMarkRef: { [key: string]: any }) => { + set(onboardingState, (onboardingObj) => ({ + ...onboardingObj, + coachMarkRefs: { + ...onboardingObj.coachMarkRefs, + ...coachMarkRef, + }, + })); + }, ); const onboardingSetComplete = useRecoilCallback(({ set }: CallbackInterface) => (isComplete: boolean) => { @@ -128,7 +134,7 @@ export const applicationDispatcher = () => { const setApplicationLevelError = useRecoilCallback( (callbackHelpers: CallbackInterface) => (errorObj: StateError | undefined) => { setError(callbackHelpers, errorObj); - } + }, ); const setDebugPanelExpansion = useRecoilCallback(({ set }: CallbackInterface) => (isExpanded: boolean) => { @@ -136,9 +142,10 @@ export const applicationDispatcher = () => { }); const setActiveTabInDebugPanel = useRecoilCallback( - ({ set }: CallbackInterface) => (activeTab: DebugDrawerKeys | undefined) => { - set(debugPanelActiveTabState, activeTab); - } + ({ set }: CallbackInterface) => + (activeTab: DebugDrawerKeys | undefined) => { + set(debugPanelActiveTabState, activeTab); + }, ); const checkNodeVersion = useRecoilCallback(({ set }: CallbackInterface) => async () => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/auth.ts b/Composer/packages/client/src/recoilModel/dispatchers/auth.ts index 7c595f00f2..2c515644ec 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/auth.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/auth.ts @@ -51,58 +51,61 @@ export const authDispatcher = () => { }); const setCurrentTenant = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async (tenant: string, notify = true) => { - callbackHelpers.set(currentTenantIdState, tenant); - setTenantId(tenant); - if (tenant) { - // get arm token for tenant - try { - const token = await AuthClient.getARMTokenForTenant(tenant); - const graph = await AuthClient.getAccessToken(graphScopes); - const isAlreadyAuthenticated = await callbackHelpers.snapshot.getPromise(isAuthenticatedState); - - if (token) { - setCurrentUser(token, graph); - - // fire notification - if (notify !== false) { - let notification; - if (isAlreadyAuthenticated) { - // set notification - notification = createNotification({ - title: formatMessage('Azure sign in'), - description: formatMessage("You've successfully switched directories."), - type: 'success', - retentionTime: 5000, - }); - } else { - // set notification - notification = createNotification({ - title: formatMessage('Azure sign in'), - description: formatMessage("You've successfully signed in."), - type: 'success', - retentionTime: 5000, - }); + (callbackHelpers: CallbackInterface) => + async (tenant: string, notify = true) => { + callbackHelpers.set(currentTenantIdState, tenant); + setTenantId(tenant); + if (tenant) { + // get arm token for tenant + try { + const token = await AuthClient.getARMTokenForTenant(tenant); + const graph = await AuthClient.getAccessToken(graphScopes); + const isAlreadyAuthenticated = await callbackHelpers.snapshot.getPromise(isAuthenticatedState); + + if (token) { + setCurrentUser(token, graph); + + // fire notification + if (notify !== false) { + let notification; + if (isAlreadyAuthenticated) { + // set notification + notification = createNotification({ + title: formatMessage('Azure sign in'), + description: formatMessage("You've successfully switched directories."), + type: 'success', + retentionTime: 5000, + }); + } else { + // set notification + notification = createNotification({ + title: formatMessage('Azure sign in'), + description: formatMessage("You've successfully signed in."), + type: 'success', + retentionTime: 5000, + }); + } + addNotificationInternal(callbackHelpers, notification); } - addNotificationInternal(callbackHelpers, notification); + } else { + throw new Error('Could not get fetch token.'); } - } else { - throw new Error('Could not get fetch token.'); + } catch (err) { + console.error(`Error in auth: ${err.message || err.toString()}`); + const notification = createNotification({ + title: formatMessage('Azure sign in'), + description: formatMessage(`Sign in failed. Please try again.`, { + message: err.message || err.toString(), + }), + type: 'error', + retentionTime: 5000, + }); + addNotificationInternal(callbackHelpers, notification); + // clear out app state + resetCreds(); } - } catch (err) { - console.error(`Error in auth: ${err.message || err.toString()}`); - const notification = createNotification({ - title: formatMessage('Azure sign in'), - description: formatMessage(`Sign in failed. Please try again.`, { message: err.message || err.toString() }), - type: 'error', - retentionTime: 5000, - }); - addNotificationInternal(callbackHelpers, notification); - // clear out app state - resetCreds(); } - } - } + }, ); const setShowTenantDialog = useRecoilCallback(({ set }: CallbackInterface) => (show: boolean) => { @@ -110,34 +113,35 @@ export const authDispatcher = () => { }); const setCurrentUser = useRecoilCallback( - ({ set }: CallbackInterface) => (token: string | undefined, graph?: string) => { - setPrimaryToken(token || ''); - setGraphToken(graph || ''); - - if (token) { - const decoded = decodeToken(token); - - set(currentUserState, { - token: token ?? null, - graph: graph ?? null, - email: decoded.upn, - name: decoded.name, - expiration: (decoded.exp || 0) * 1000, // convert to ms, - sessionExpired: false, - }); - set(isAuthenticatedState, true); - - set(currentTenantIdState, decoded.tid); - setTenantId(decoded.tid); - } else { - set(currentUserState, { - token: '', - graph: '', - sessionExpired: true, - }); - set(isAuthenticatedState, false); - } - } + ({ set }: CallbackInterface) => + (token: string | undefined, graph?: string) => { + setPrimaryToken(token || ''); + setGraphToken(graph || ''); + + if (token) { + const decoded = decodeToken(token); + + set(currentUserState, { + token: token ?? null, + graph: graph ?? null, + email: decoded.upn, + name: decoded.name, + expiration: (decoded.exp || 0) * 1000, // convert to ms, + sessionExpired: false, + }); + set(isAuthenticatedState, true); + + set(currentTenantIdState, decoded.tid); + setTenantId(decoded.tid); + } else { + set(currentUserState, { + token: '', + graph: '', + sessionExpired: true, + }); + set(isAuthenticatedState, false); + } + }, ); const refreshLoginStatus = useRecoilCallback(() => async () => { @@ -200,7 +204,7 @@ export const authDispatcher = () => { resetCreds(); } } - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/botProjectFile.ts b/Composer/packages/client/src/recoilModel/dispatchers/botProjectFile.ts index 5362053f26..44e743358c 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/botProjectFile.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/botProjectFile.ts @@ -39,40 +39,36 @@ export const botProjectFileDispatcher = () => { }); const addRemoteSkill = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async ( - skillId: string, - manifestUrl: string, - zipContent: Record, - endpointName: string - ) => { - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) { - return; - } - const botName = await snapshot.getPromise(botNameIdentifierState(skillId)); - let finalManifestUrl: string | undefined; - if (isExternalLink(manifestUrl)) { - finalManifestUrl = manifestUrl; - } else { - const data = await addSkillFiles(rootBotProjectId, botName, manifestUrl, zipContent); - if (data.error) { - throw data.error; + ({ set, snapshot }: CallbackInterface) => + async (skillId: string, manifestUrl: string, zipContent: Record, endpointName: string) => { + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) { + return; } - finalManifestUrl = data.manifest?.relativePath; - } - set(botProjectFileState(rootBotProjectId), (current) => { - const result = produce(current, (draftState) => { - const skill: BotProjectSpaceSkill = { - manifest: finalManifestUrl, - remote: true, - endpointName, - }; - - draftState.content.skills[botName] = skill; + const botName = await snapshot.getPromise(botNameIdentifierState(skillId)); + let finalManifestUrl: string | undefined; + if (isExternalLink(manifestUrl)) { + finalManifestUrl = manifestUrl; + } else { + const data = await addSkillFiles(rootBotProjectId, botName, manifestUrl, zipContent); + if (data.error) { + throw data.error; + } + finalManifestUrl = data.manifest?.relativePath; + } + set(botProjectFileState(rootBotProjectId), (current) => { + const result = produce(current, (draftState) => { + const skill: BotProjectSpaceSkill = { + manifest: finalManifestUrl, + remote: true, + endpointName, + }; + + draftState.content.skills[botName] = skill; + }); + return result; }); - return result; - }); - } + }, ); const removeSkill = useRecoilCallback((callbackHelpers: CallbackInterface) => async (skillId: string) => { @@ -107,7 +103,7 @@ export const botProjectFileDispatcher = () => { draftState?.skillConfiguration?.allowedCallers.length > 0 ) { draftState.skillConfiguration.allowedCallers = draftState.skillConfiguration.allowedCallers.filter( - (item) => item !== msAppId + (item) => item !== msAppId, ); } if ( @@ -116,7 +112,7 @@ export const botProjectFileDispatcher = () => { draftState?.runtimeSettings?.skills?.allowedCallers.length > 0 ) { draftState.runtimeSettings.skills.allowedCallers = draftState.runtimeSettings.skills.allowedCallers.filter( - (item) => item !== msAppId + (item) => item !== msAppId, ); } }); @@ -125,101 +121,100 @@ export const botProjectFileDispatcher = () => { }); const updateManifest = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async (skillProjectId: string, manifestId?: string) => { - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) { - return; - } - - const skillNameIdentifier = await snapshot.getPromise(botNameIdentifierState(skillProjectId)); - set(botProjectFileState(rootBotProjectId), (current: BotProjectFile) => { - const result = produce(current, (draftState) => { - if (skillNameIdentifier) { - if (!manifestId) { - delete draftState.content.skills[skillNameIdentifier].manifest; - } else { - draftState.content.skills[skillNameIdentifier] = { - ...draftState.content.skills[skillNameIdentifier], - manifest: manifestId, - }; + ({ set, snapshot }: CallbackInterface) => + async (skillProjectId: string, manifestId?: string) => { + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) { + return; + } + + const skillNameIdentifier = await snapshot.getPromise(botNameIdentifierState(skillProjectId)); + set(botProjectFileState(rootBotProjectId), (current: BotProjectFile) => { + const result = produce(current, (draftState) => { + if (skillNameIdentifier) { + if (!manifestId) { + delete draftState.content.skills[skillNameIdentifier].manifest; + } else { + draftState.content.skills[skillNameIdentifier] = { + ...draftState.content.skills[skillNameIdentifier], + manifest: manifestId, + }; + } } - } + }); + return result; }); - return result; - }); - } + }, ); const updateSkillsData = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - skillNameIdentifier: string, - skillsData: Skill, - selectedEndpointIndex: number - ) => { - const { set, snapshot } = callbackHelpers; - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) { - return; - } - - const settings = await snapshot.getPromise(settingsState(rootBotProjectId)); - const dispatcher = await snapshot.getPromise(dispatcherState); - - let msAppId = '', - endpointUrl = '', - endpointName = ''; - - if (selectedEndpointIndex !== -1 && skillsData.manifest) { - const data = skillsData.manifest?.endpoints[selectedEndpointIndex]; - msAppId = data.msAppId; - endpointUrl = data.endpointUrl; - endpointName = data.name; + (callbackHelpers: CallbackInterface) => + async (skillNameIdentifier: string, skillsData: Skill, selectedEndpointIndex: number) => { + const { set, snapshot } = callbackHelpers; + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) { + return; + } - set(botProjectFileState(rootBotProjectId), (current) => { - const result = produce(current, (draftState) => { - draftState.content.skills[skillNameIdentifier].endpointName = endpointName; + const settings = await snapshot.getPromise(settingsState(rootBotProjectId)); + const dispatcher = await snapshot.getPromise(dispatcherState); + + let msAppId = '', + endpointUrl = '', + endpointName = ''; + + if (selectedEndpointIndex !== -1 && skillsData.manifest) { + const data = skillsData.manifest?.endpoints[selectedEndpointIndex]; + msAppId = data.msAppId; + endpointUrl = data.endpointUrl; + endpointName = data.name; + + set(botProjectFileState(rootBotProjectId), (current) => { + const result = produce(current, (draftState) => { + draftState.content.skills[skillNameIdentifier].endpointName = endpointName; + }); + return result; }); - return result; - }); - } else { - set(botProjectFileState(rootBotProjectId), (current) => { - const result = produce(current, (draftState) => { - delete draftState.content.skills[skillNameIdentifier].endpointName; + } else { + set(botProjectFileState(rootBotProjectId), (current) => { + const result = produce(current, (draftState) => { + delete draftState.content.skills[skillNameIdentifier].endpointName; + }); + return result; }); - return result; - }); - } - if (settings.skill) { - dispatcher.setSettings( - rootBotProjectId, - produce(settings, (draftSettings) => { - draftSettings.skill = { - ...settings.skill, - [skillNameIdentifier]: { - endpointUrl, - msAppId, - }, - }; - }) - ); - } - } + } + if (settings.skill) { + dispatcher.setSettings( + rootBotProjectId, + produce(settings, (draftSettings) => { + draftSettings.skill = { + ...settings.skill, + [skillNameIdentifier]: { + endpointUrl, + msAppId, + }, + }; + }), + ); + } + }, ); const updateEndpointName = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async (skillNameIdentifier: string, endpointName: string) => { - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) { - return; - } - - set(botProjectFileState(rootBotProjectId), (current) => { - const result = produce(current, (draftState) => { - draftState.content.skills[skillNameIdentifier].endpointName = endpointName; + ({ set, snapshot }: CallbackInterface) => + async (skillNameIdentifier: string, endpointName: string) => { + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) { + return; + } + + set(botProjectFileState(rootBotProjectId), (current) => { + const result = produce(current, (draftState) => { + draftState.content.skills[skillNameIdentifier].endpointName = endpointName; + }); + return result; }); - return result; - }); - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/builder.ts b/Composer/packages/client/src/recoilModel/dispatchers/builder.ts index 4f07c26317..d2b108a7d1 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/builder.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/builder.ts @@ -20,56 +20,57 @@ const checkEmptyQuestionOrAnswerInQnAFile = (sections) => { export const builderDispatcher = () => { const build = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - projectId: string, - luisConfig: ILuisConfig, - qnaConfig: IQnAConfig, - orchestratorConfig: IOrchestratorConfig - ) => { - const { set, snapshot } = callbackHelpers; - const dialogs = await snapshot.getPromise(dialogsWithLuProviderSelectorFamily(projectId)); - const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const referredLuFiles = luUtil.checkLuisBuild(luFiles, dialogs); - const referredQnaFiles = qnaUtil.checkQnaBuild(qnaFiles, dialogs); - const errorMsg = referredQnaFiles.reduce( - (result, file) => { - if ( - file.qnaSections && - file.qnaSections.length > 0 && - checkEmptyQuestionOrAnswerInQnAFile(file.qnaSections) - ) { - result.message = result.message + `${file.id}.qna file contains empty answer or questions`; - } - return result; - }, - { title: Text.LUISDEPLOYFAILURE, message: '' } - ); - if (errorMsg.message) { - set(botBuildTimeErrorState(projectId), errorMsg); - set(botStatusState(projectId), BotStatus.failed); - return; - } - try { - await httpClient.post(`/projects/${projectId}/build`, { - luisConfig, - qnaConfig, - orchestratorConfig, - projectId, - luFiles: referredLuFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), - qnaFiles: referredQnaFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), - }); - luFileStatusStorage.publishAll(projectId); - qnaFileStatusStorage.publishAll(projectId); - set(botStatusState(projectId), BotStatus.published); - } catch (err) { - set(botStatusState(projectId), BotStatus.failed); - set(botBuildTimeErrorState(projectId), { - title: Text.LUISDEPLOYFAILURE, - message: err.response?.data?.message || err.message, - }); - } - } + (callbackHelpers: CallbackInterface) => + async ( + projectId: string, + luisConfig: ILuisConfig, + qnaConfig: IQnAConfig, + orchestratorConfig: IOrchestratorConfig, + ) => { + const { set, snapshot } = callbackHelpers; + const dialogs = await snapshot.getPromise(dialogsWithLuProviderSelectorFamily(projectId)); + const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const referredLuFiles = luUtil.checkLuisBuild(luFiles, dialogs); + const referredQnaFiles = qnaUtil.checkQnaBuild(qnaFiles, dialogs); + const errorMsg = referredQnaFiles.reduce( + (result, file) => { + if ( + file.qnaSections && + file.qnaSections.length > 0 && + checkEmptyQuestionOrAnswerInQnAFile(file.qnaSections) + ) { + result.message = result.message + `${file.id}.qna file contains empty answer or questions`; + } + return result; + }, + { title: Text.LUISDEPLOYFAILURE, message: '' }, + ); + if (errorMsg.message) { + set(botBuildTimeErrorState(projectId), errorMsg); + set(botStatusState(projectId), BotStatus.failed); + return; + } + try { + await httpClient.post(`/projects/${projectId}/build`, { + luisConfig, + qnaConfig, + orchestratorConfig, + projectId, + luFiles: referredLuFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), + qnaFiles: referredQnaFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), + }); + luFileStatusStorage.publishAll(projectId); + qnaFileStatusStorage.publishAll(projectId); + set(botStatusState(projectId), BotStatus.published); + } catch (err) { + set(botStatusState(projectId), BotStatus.failed); + set(botBuildTimeErrorState(projectId), { + title: Text.LUISDEPLOYFAILURE, + message: err.response?.data?.message || err.message, + }); + } + }, ); return { build, diff --git a/Composer/packages/client/src/recoilModel/dispatchers/dialogSchema.ts b/Composer/packages/client/src/recoilModel/dispatchers/dialogSchema.ts index 717a6a06a4..5eb9b49e22 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/dialogSchema.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/dialogSchema.ts @@ -12,7 +12,7 @@ const createDialogSchema = ({ set }: CallbackInterface, dialogSchema: DialogSche export const removeDialogSchema = ( { set }: CallbackInterface, - { id, projectId }: { id: string; projectId: string } + { id, projectId }: { id: string; projectId: string }, ) => { set(dialogSchemasState(projectId), (dialogSchemas) => dialogSchemas.filter((dialogSchema) => dialogSchema.id !== id)); }; @@ -28,9 +28,9 @@ export const dialogSchemaDispatcher = () => { } set(dialogSchemasState(projectId), (dialogSchemas) => - dialogSchemas.map((schema) => (schema.id === dialogSchema.id ? dialogSchema : schema)) + dialogSchemas.map((schema) => (schema.id === dialogSchema.id ? dialogSchema : schema)), ); - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/dialogs.ts b/Composer/packages/client/src/recoilModel/dispatchers/dialogs.ts index c3a47be533..1ef8734282 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/dialogs.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/dialogs.ts @@ -42,22 +42,23 @@ export const dialogsDispatcher = () => { await removeLuFileState(callbackHelpers, { id, projectId }); await removeQnAFileState(callbackHelpers, { id, projectId }); removeDialogSchema(callbackHelpers, { id, projectId }); - } + }, ); const updateDialog = useRecoilCallback( - ({ snapshot, set }: CallbackInterface) => async ({ id, content, projectId }) => { - // migration: add id for dialog - if (typeof content === 'object' && !content.id) { - content.id = id; - } - - const fixedContent = JSON.parse(autofixReferInDialog(id, JSON.stringify(content))); - - const dialog = await snapshot.getPromise(dialogState({ projectId, dialogId: id })); - const newDialog: DialogInfo = { ...dialog, ...dialogIndexer.parse(dialog.id, fixedContent) }; - set(dialogState({ projectId, dialogId: id }), newDialog); - } + ({ snapshot, set }: CallbackInterface) => + async ({ id, content, projectId }) => { + // migration: add id for dialog + if (typeof content === 'object' && !content.id) { + content.id = id; + } + + const fixedContent = JSON.parse(autofixReferInDialog(id, JSON.stringify(content))); + + const dialog = await snapshot.getPromise(dialogState({ projectId, dialogId: id })); + const newDialog: DialogInfo = { ...dialog, ...dialogIndexer.parse(dialog.id, fixedContent) }; + set(dialogState({ projectId, dialogId: id }), newDialog); + }, ); const createDialogBegin = useRecoilCallback( @@ -66,7 +67,7 @@ export const dialogsDispatcher = () => { set(actionsSeedState(projectId), actions); set(onCreateDialogCompleteState(projectId), { func: onComplete }); set(showCreateDialogModalState, true); - } + }, ); const createDialogCancel = useRecoilCallback((callbackHelpers: CallbackInterface) => async (projectId: string) => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/editor.ts b/Composer/packages/client/src/recoilModel/dispatchers/editor.ts index d32193dee8..749840bdd2 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/editor.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/editor.ts @@ -8,9 +8,10 @@ import { clipboardActionsState, visualEditorSelectionState } from '../atoms/appS export const editorDispatcher = () => { const setVisualEditorClipboard = useRecoilCallback( - ({ set }: CallbackInterface) => (clipboardActions: any[], projectId: string) => { - set(clipboardActionsState(projectId), [...clipboardActions]); - } + ({ set }: CallbackInterface) => + (clipboardActions: any[], projectId: string) => { + set(clipboardActionsState(projectId), [...clipboardActions]); + }, ); const setVisualEditorSelection = useRecoilCallback(({ set }: CallbackInterface) => (selection: string[]) => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/extensions.ts b/Composer/packages/client/src/recoilModel/dispatchers/extensions.ts index 7730050e3e..8052909b29 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/extensions.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/extensions.ts @@ -48,7 +48,7 @@ export const extensionsDispatcher = () => { // eslint-disable-next-line no-console console.error(err); } - } + }, ); const removeExtension = useRecoilCallback((callbackHelpers: CallbackInterface) => async (extensionName: string) => { @@ -86,7 +86,7 @@ export const extensionsDispatcher = () => { // eslint-disable-next-line no-console console.error(err); } - } + }, ); const updateExtensionSettings = useRecoilCallback( @@ -100,7 +100,7 @@ export const extensionsDispatcher = () => { // eslint-disable-next-line no-console console.error(err); } - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/formDialogs.ts b/Composer/packages/client/src/recoilModel/dispatchers/formDialogs.ts index 44e3ee7181..21d1b31a2f 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/formDialogs.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/formDialogs.ts @@ -28,8 +28,10 @@ export const formDialogsDispatcher = () => { navigate(`/bot/${projectId}/forms/${id}`); }); - const updateFormDialogSchema = useRecoilCallback(({ set }: CallbackInterface) => ({ id, content, projectId }) => - set(formDialogSchemaState({ projectId, schemaId: id }), { id, content }) + const updateFormDialogSchema = useRecoilCallback( + ({ set }: CallbackInterface) => + ({ id, content, projectId }) => + set(formDialogSchemaState({ projectId, schemaId: id }), { id, content }), ); const removeFormDialogSchema = useRecoilCallback(({ set, reset }: CallbackInterface) => async ({ id, projectId }) => { @@ -50,9 +52,8 @@ export const formDialogsDispatcher = () => { } try { - const { data } = await httpClient.get>>( - '/formDialogs/templateSchemas' - ); + const { data } = + await httpClient.get>>('/formDialogs/templateSchemas'); const templates = Object.keys(data).map((id) => ({ id, ...data[id] })); set(formDialogLibraryTemplatesState, templates); @@ -66,63 +67,68 @@ export const formDialogsDispatcher = () => { }); const generateFormDialog = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ projectId, schemaId }) => { - const { set, reset, snapshot } = callbackHelpers; - reset(formDialogErrorState); - - const { reloadProject } = await snapshot.getPromise(dispatcherState); - try { - set(formDialogGenerationProgressingState, true); - - const formDialogSchema = await snapshot.getPromise(formDialogSchemaState({ projectId, schemaId })); - if (!formDialogSchema) { - return; + (callbackHelpers: CallbackInterface) => + async ({ projectId, schemaId }) => { + const { set, reset, snapshot } = callbackHelpers; + reset(formDialogErrorState); + + const { reloadProject } = await snapshot.getPromise(dispatcherState); + try { + set(formDialogGenerationProgressingState, true); + + const formDialogSchema = await snapshot.getPromise(formDialogSchemaState({ projectId, schemaId })); + if (!formDialogSchema) { + return; + } + + const generateStartTime = Date.now(); + const response = await httpClient.post(`/formDialogs/${projectId}/generate`, { + name: schemaId, + }); + TelemetryClient.track('FormDialogGenerated', { durationMilliseconds: Date.now() - generateStartTime }); + await reloadProject(response.data.id); + } catch (ex) { + set(formDialogErrorState, { + ...ex, + message: formatMessage( + 'Generating form dialog using "{ schemaId }" schema failed. Please try again later.', + { + schemaId, + }, + ), + kind: 'generation', + logs: ex.data?.logs, + }); + } finally { + set(formDialogGenerationProgressingState, false); } - - const generateStartTime = Date.now(); - const response = await httpClient.post(`/formDialogs/${projectId}/generate`, { - name: schemaId, - }); - TelemetryClient.track('FormDialogGenerated', { durationMilliseconds: Date.now() - generateStartTime }); - await reloadProject(response.data.id); - } catch (ex) { - set(formDialogErrorState, { - ...ex, - message: formatMessage('Generating form dialog using "{ schemaId }" schema failed. Please try again later.', { - schemaId, - }), - kind: 'generation', - logs: ex.data?.logs, - }); - } finally { - set(formDialogGenerationProgressingState, false); - } - } + }, ); const removeFormDialog = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ projectId, dialogId }) => { - const { set, reset, snapshot } = callbackHelpers; - reset(formDialogErrorState); - - const dialog = await snapshot.getPromise(dialogState({ projectId, dialogId })); - const { reloadProject } = await snapshot.getPromise(dispatcherState); - - try { - if (!dialog) { - return; + (callbackHelpers: CallbackInterface) => + async ({ projectId, dialogId }) => { + const { set, reset, snapshot } = callbackHelpers; + reset(formDialogErrorState); + + const dialog = await snapshot.getPromise(dialogState({ projectId, dialogId })); + const { reloadProject } = await snapshot.getPromise(dispatcherState); + + try { + if (!dialog) { + return; + } + + const response = await httpClient.delete(`/formDialogs/${projectId}/${dialogId}`); + await reloadProject(response.data.id); + } catch (ex) { + set(formDialogErrorState, { + ...ex, + message: formatMessage('Deleting "{ dialogId }" failed.', { dialogId }), + kind: 'deletion', + }); } - - const response = await httpClient.delete(`/formDialogs/${projectId}/${dialogId}`); - await reloadProject(response.data.id); - } catch (ex) { - set(formDialogErrorState, { - ...ex, - message: formatMessage('Deleting "{ dialogId }" failed.', { dialogId }), - kind: 'deletion', - }); - } - } + }, ); const navigateToGeneratedDialog = ({ projectId, schemaId }) => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/lg.ts b/Composer/packages/client/src/recoilModel/dispatchers/lg.ts index 9245a2d2ff..beb414f53e 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/lg.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/lg.ts @@ -38,14 +38,14 @@ const updateLgFiles = ( deletes?: LgFile[]; updates?: LgFile[]; }, - needUpdate?: (current: LgFile, changed: LgFile) => boolean + needUpdate?: (current: LgFile, changed: LgFile) => boolean, ) => { const { updates, adds, deletes } = changes; // updates updates?.forEach((lgFile) => { set(lgFileState({ projectId, lgFileId: lgFile.id }), (preFile) => - needUpdate ? (needUpdate(preFile, lgFile) ? lgFile : preFile) : lgFile + needUpdate ? (needUpdate(preFile, lgFile) ? lgFile : preFile) : lgFile, ); }); @@ -58,7 +58,7 @@ const updateLgFiles = ( if (adds?.length) { adds.forEach((lgFile) => { set(lgFileState({ projectId, lgFileId: lgFile.id }), (preFile) => - needUpdate ? (needUpdate(preFile, lgFile) ? lgFile : preFile) : lgFile + needUpdate ? (needUpdate(preFile, lgFile) ? lgFile : preFile) : lgFile, ); }); set(lgFileIdsState(projectId), (ids) => ids.concat(adds.map((file) => file.id))); @@ -69,7 +69,7 @@ const updateLgFiles = ( export const getRelatedLgFileChanges = async ( projectId: string, originLgFiles: LgFile[], - updatedLgFile: LgFile + updatedLgFile: LgFile, ): Promise => { const { id } = updatedLgFile; const dialogId = getBaseName(id); @@ -97,7 +97,7 @@ export const getRelatedLgFileChanges = async ( }; }); const deletedTemplates = differenceBy(originLgFile.templates, updatedLgFile.templates, 'name').filter( - templateIsNotEmpty + templateIsNotEmpty, ); const onlyAdds = addedTemplates.length && !deletedTemplates.length; const onlyDeletes = !addedTemplates.length && deletedTemplates.length; @@ -117,7 +117,7 @@ export const getRelatedLgFileChanges = async ( projectId, newLgFile, deletedTemplates.map(({ name }) => name), - lgFiles + lgFiles, )) as LgFile; changes.push(newLgFile); } @@ -129,7 +129,7 @@ export const getRelatedLgFileChanges = async ( file, deletedTemplates[0].name, addedTemplates[0], - lgFiles + lgFiles, )) as LgFile; changes.push(newLgFile); } @@ -141,7 +141,7 @@ export const getRelatedLgFileChanges = async ( // when do create, passed id do not carried with locale export const createLgFileState = async ( callbackHelpers: CallbackInterface, - { id, content, projectId }: { id: string; content: string; projectId: string } + { id, content, projectId }: { id: string; content: string; projectId: string }, ) => { try { const { snapshot } = callbackHelpers; @@ -178,7 +178,7 @@ export const createLgFileState = async ( export const removeLgFileState = async ( callbackHelpers: CallbackInterface, - { id, projectId }: { id: string; projectId: string } + { id, projectId }: { id: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); @@ -195,291 +195,254 @@ export const removeLgFileState = async ( export const lgDispatcher = () => { const createLgFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - content, - projectId, - }: { - id: string; - content: string; - projectId: string; - }) => { - try { - await createLgFileState(callbackHelpers, { id, content, projectId }); - } catch (error) { - setError(callbackHelpers, error); - } - } + (callbackHelpers: CallbackInterface) => + async ({ id, content, projectId }: { id: string; content: string; projectId: string }) => { + try { + await createLgFileState(callbackHelpers, { id, content, projectId }); + } catch (error) { + setError(callbackHelpers, error); + } + }, ); const removeLgFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ id, projectId }: { id: string; projectId: string }) => { - await removeLgFileState(callbackHelpers, { id, projectId }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, projectId }: { id: string; projectId: string }) => { + await removeLgFileState(callbackHelpers, { id, projectId }); + }, ); const updateLgFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - content, - projectId, - }: { - id: string; - content: string; - projectId: string; - }) => { - try { - const { set, snapshot } = callbackHelpers; - //set content first - set(lgFileState({ projectId, lgFileId: id }), (prevLgFile) => { - return { - ...prevLgFile, - content, - }; - }); + (callbackHelpers: CallbackInterface) => + async ({ id, content, projectId }: { id: string; content: string; projectId: string }) => { + try { + const { set, snapshot } = callbackHelpers; + //set content first + set(lgFileState({ projectId, lgFileId: id }), (prevLgFile) => { + return { + ...prevLgFile, + content, + }; + }); + + const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); + const updatedFile = (await LgWorker.parse(projectId, id, content, lgFiles)) as LgFile; + const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); + + // compare to drop expired change on current id lg file. + /** + * Why other methods do not need double check content? + * Because this method already did set content before call updateLgFiles. + */ + + updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }, (current, changed) => { + // compare to drop expired content already setted above. + return current.id === id ? current?.content === changed?.content : true; + }); + + // if changes happen on common.lg, async re-parse all. + if (getBaseName(id) === 'common') { + const { reparseAllLgFiles } = await snapshot.getPromise(dispatcherState); + reparseAllLgFiles({ projectId }); + } + } catch (error) { + setError(callbackHelpers, error); + } + }, + ); + const updateLgTemplate = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ + id, + templateName, + template, + projectId, + }: { + id: string; + templateName: string; + template: LgTemplate; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); - const updatedFile = (await LgWorker.parse(projectId, id, content, lgFiles)) as LgFile; - const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); - - // compare to drop expired change on current id lg file. - /** - * Why other methods do not need double check content? - * Because this method already did set content before call updateLgFiles. - */ - - updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }, (current, changed) => { - // compare to drop expired content already setted above. - return current.id === id ? current?.content === changed?.content : true; - }); + const lgFile = lgFiles.find((file) => file.id === id); + if (!lgFile) return lgFiles; + const sameIdOtherLocaleFiles = lgFiles.filter((file) => getBaseName(file.id) === getBaseName(id)); - // if changes happen on common.lg, async re-parse all. - if (getBaseName(id) === 'common') { - const { reparseAllLgFiles } = await snapshot.getPromise(dispatcherState); - reparseAllLgFiles({ projectId }); + // create need sync to multi locale file. + const originTemplate = lgFile.templates.find(({ name }) => name === templateName); + if (!originTemplate) { + await createLgTemplate({ id, template, projectId }); + return; } - } catch (error) { - setError(callbackHelpers, error); - } - } - ); - const updateLgTemplate = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - templateName, - template, - projectId, - }: { - id: string; - templateName: string; - template: LgTemplate; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); - const lgFile = lgFiles.find((file) => file.id === id); - if (!lgFile) return lgFiles; - const sameIdOtherLocaleFiles = lgFiles.filter((file) => getBaseName(file.id) === getBaseName(id)); - - // create need sync to multi locale file. - const originTemplate = lgFile.templates.find(({ name }) => name === templateName); - if (!originTemplate) { - await createLgTemplate({ id, template, projectId }); - return; - } - - try { - if (template.name !== templateName) { - // name change, need update cross multi locale file. - const changes: LgFile[] = []; - - for (const item of sameIdOtherLocaleFiles) { + try { + if (template.name !== templateName) { + // name change, need update cross multi locale file. + const changes: LgFile[] = []; + + for (const item of sameIdOtherLocaleFiles) { + const updatedFile = (await LgWorker.updateTemplate( + projectId, + item, + templateName, + { name: template.name }, + lgFiles, + )) as LgFile; + changes.push(updatedFile); + } + updateLgFiles(callbackHelpers, projectId, { updates: changes }); + } else { + // body change, only update current locale file const updatedFile = (await LgWorker.updateTemplate( projectId, - item, + lgFile, templateName, - { name: template.name }, - lgFiles + { body: template.body }, + lgFiles, )) as LgFile; - changes.push(updatedFile); + updateLgFiles(callbackHelpers, projectId, { updates: [updatedFile] }); } - updateLgFiles(callbackHelpers, projectId, { updates: changes }); - } else { - // body change, only update current locale file - const updatedFile = (await LgWorker.updateTemplate( - projectId, - lgFile, - templateName, - { body: template.body }, - lgFiles - )) as LgFile; - updateLgFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + } catch (error) { + setError(callbackHelpers, error); + return; } - } catch (error) { - setError(callbackHelpers, error); - return; - } - - // if changes happen on common.lg, async re-parse all. - if (getBaseName(id) === 'common') { - const { reparseAllLgFiles } = await snapshot.getPromise(dispatcherState); - reparseAllLgFiles({ projectId }); - } - } - ); - const createLgTemplate = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - template, - projectId, - }: { - id: string; - template: LgTemplate; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); - const lgFile = lgFiles.find((file) => file.id === id); - if (!lgFile) return lgFiles; - const updatedFile = (await LgWorker.addTemplate(projectId, lgFile, template, lgFiles)) as LgFile; - const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); - updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } + // if changes happen on common.lg, async re-parse all. + if (getBaseName(id) === 'common') { + const { reparseAllLgFiles } = await snapshot.getPromise(dispatcherState); + reparseAllLgFiles({ projectId }); + } + }, ); - const createLgTemplates = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - templates, - projectId, - }: { - id: string; - templates: LgTemplate[]; - projectId: string; - }) => { - try { + const createLgTemplate = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ id, template, projectId }: { id: string; template: LgTemplate; projectId: string }) => { const { snapshot } = callbackHelpers; const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); const lgFile = lgFiles.find((file) => file.id === id); if (!lgFile) return lgFiles; - const updatedFile = (await LgWorker.addTemplates(projectId, lgFile, templates, lgFiles)) as LgFile; + const updatedFile = (await LgWorker.addTemplate(projectId, lgFile, template, lgFiles)) as LgFile; const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } catch (error) { - setError(callbackHelpers, error); - } - } + }, ); - const removeLgTemplate = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - templateName, - projectId, - }: { - id: string; - templateName: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); - const lgFile = lgFiles.find((file) => file.id === id); - if (!lgFile) return lgFiles; - try { - const updatedFile = (await LgWorker.removeTemplate(projectId, lgFile, templateName, lgFiles)) as LgFile; - - const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); - updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } catch (error) { - setError(callbackHelpers, error); - } - } + const createLgTemplates = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ id, templates, projectId }: { id: string; templates: LgTemplate[]; projectId: string }) => { + try { + const { snapshot } = callbackHelpers; + const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); + const lgFile = lgFiles.find((file) => file.id === id); + if (!lgFile) return lgFiles; + const updatedFile = (await LgWorker.addTemplates(projectId, lgFile, templates, lgFiles)) as LgFile; + const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); + updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); + } catch (error) { + setError(callbackHelpers, error); + } + }, ); - const removeLgTemplates = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - templateNames, - projectId, - }: { - id: string; - templateNames: string[]; - projectId: string; - }) => { - try { + const removeLgTemplate = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ id, templateName, projectId }: { id: string; templateName: string; projectId: string }) => { const { snapshot } = callbackHelpers; const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); const lgFile = lgFiles.find((file) => file.id === id); if (!lgFile) return lgFiles; + try { + const updatedFile = (await LgWorker.removeTemplate(projectId, lgFile, templateName, lgFiles)) as LgFile; - const updatedFile = (await LgWorker.removeTemplates(projectId, lgFile, templateNames, lgFiles)) as LgFile; + const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); + updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); + } catch (error) { + setError(callbackHelpers, error); + } + }, + ); - const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); - updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } catch (error) { - setError(callbackHelpers, error); - } - } + const removeLgTemplates = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ id, templateNames, projectId }: { id: string; templateNames: string[]; projectId: string }) => { + try { + const { snapshot } = callbackHelpers; + const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); + const lgFile = lgFiles.find((file) => file.id === id); + if (!lgFile) return lgFiles; + + const updatedFile = (await LgWorker.removeTemplates(projectId, lgFile, templateNames, lgFiles)) as LgFile; + + const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); + updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); + } catch (error) { + setError(callbackHelpers, error); + } + }, ); const copyLgTemplate = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - fromTemplateName, - toTemplateName, - projectId, - }: { - id: string; - fromTemplateName: string; - toTemplateName: string; - projectId: string; - }) => { - try { - const { snapshot } = callbackHelpers; - const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); - const lgFile = lgFiles.find((file) => file.id === id); - if (!lgFile) return lgFiles; - const updatedFile = (await LgWorker.copyTemplate( - projectId, - lgFile, - fromTemplateName, - toTemplateName, - lgFiles - )) as LgFile; - const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); - updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } catch (error) { - setError(callbackHelpers, error); - } - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + fromTemplateName, + toTemplateName, + projectId, + }: { + id: string; + fromTemplateName: string; + toTemplateName: string; + projectId: string; + }) => { + try { + const { snapshot } = callbackHelpers; + const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); + const lgFile = lgFiles.find((file) => file.id === id); + if (!lgFile) return lgFiles; + const updatedFile = (await LgWorker.copyTemplate( + projectId, + lgFile, + fromTemplateName, + toTemplateName, + lgFiles, + )) as LgFile; + const updatedFiles = await getRelatedLgFileChanges(projectId, lgFiles, updatedFile); + updateLgFiles(callbackHelpers, projectId, { updates: updatedFiles }); + } catch (error) { + setError(callbackHelpers, error); + } + }, ); const reparseAllLgFiles = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ projectId }: { projectId: string }) => { - try { - const { snapshot } = callbackHelpers; - const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); - const reparsedLgFiles: LgFile[] = []; - for (const file of lgFiles) { - const reparsedFile = (await LgDiagnosticWorker.parse(projectId, file.id, file.content, lgFiles)) as LgFile; - reparsedLgFiles.push({ ...file, diagnostics: reparsedFile.diagnostics }); + (callbackHelpers: CallbackInterface) => + async ({ projectId }: { projectId: string }) => { + try { + const { snapshot } = callbackHelpers; + const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); + const reparsedLgFiles: LgFile[] = []; + for (const file of lgFiles) { + const reparsedFile = (await LgDiagnosticWorker.parse(projectId, file.id, file.content, lgFiles)) as LgFile; + reparsedLgFiles.push({ ...file, diagnostics: reparsedFile.diagnostics }); + } + updateLgFiles(callbackHelpers, projectId, { updates: reparsedLgFiles }, (current, changed) => { + // compare to drop expired content already setted above. + return current?.content === changed?.content; + }); + } catch (error) { + setError(callbackHelpers, error); } - updateLgFiles(callbackHelpers, projectId, { updates: reparsedLgFiles }, (current, changed) => { - // compare to drop expired content already setted above. - return current?.content === changed?.content; - }); - } catch (error) { - setError(callbackHelpers, error); - } - } + }, ); const updateAllLgFiles = useRecoilCallback( - ({ set }: CallbackInterface) => ({ projectId, lgFiles }: { projectId: string; lgFiles: LgFile[] }) => { - set(lgFilesSelectorFamily(projectId), lgFiles); - } + ({ set }: CallbackInterface) => + ({ projectId, lgFiles }: { projectId: string; lgFiles: LgFile[] }) => { + set(lgFilesSelectorFamily(projectId), lgFiles); + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/lu.ts b/Composer/packages/client/src/recoilModel/dispatchers/lu.ts index c368b3e564..431c2deffb 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/lu.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/lu.ts @@ -38,14 +38,14 @@ const updateLuFiles = ( deletes?: LuFile[]; updates?: LuFile[]; }, - getLatestFile?: (current: LuFile, changed: LuFile) => LuFile + getLatestFile?: (current: LuFile, changed: LuFile) => LuFile, ) => { const { updates, adds, deletes } = changes; // updates updates?.forEach((luFile) => { set(luFileState({ projectId, luFileId: luFile.id }), (oldLuFile) => - getLatestFile ? getLatestFile(oldLuFile, luFile) : luFile + getLatestFile ? getLatestFile(oldLuFile, luFile) : luFile, ); }); @@ -60,7 +60,7 @@ const updateLuFiles = ( const addedIds = adds.map((file) => file.id); adds.forEach((luFile) => { set(luFileState({ projectId, luFileId: luFile.id }), (oldLuFile) => - getLatestFile ? getLatestFile(oldLuFile, luFile) : luFile + getLatestFile ? getLatestFile(oldLuFile, luFile) : luFile, ); }); set(luFileIdsState(projectId), (ids) => [...ids, ...addedIds]); @@ -70,7 +70,7 @@ const getRelatedLuFileChanges = async ( originLuFiles: LuFile[], updatedLuFile: LuFile, projectId: string, - luFeatures: ILUFeaturesConfig + luFeatures: ILUFeaturesConfig, ): Promise => { const { id } = updatedLuFile; const dialogId = getBaseName(id); @@ -108,7 +108,7 @@ const getRelatedLuFileChanges = async ( newLuFile, deletedIntents.map(({ Name }) => Name), luFeatures, - luFiles + luFiles, )) as LuFile; changes.push(newLuFile); } @@ -126,7 +126,7 @@ const getRelatedLuFileChanges = async ( export const createLuFileState = async ( callbackHelpers: CallbackInterface, - { id, content, projectId }: { id: string; content: string; projectId: string } + { id, content, projectId }: { id: string; content: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); @@ -155,7 +155,7 @@ export const createLuFileState = async ( export const removeLuFileState = async ( callbackHelpers: CallbackInterface, - { id, projectId }: { id: string; projectId: string } + { id, projectId }: { id: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); @@ -178,181 +178,162 @@ export const removeLuFileState = async ( export const luDispatcher = () => { const batchUpdateLuFiles = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - payloads: { - id: string; - content: string; - projectId: string; - }[] - ) => { - const { snapshot } = callbackHelpers; - payloads.map(async ({ id, content, projectId }) => { + (callbackHelpers: CallbackInterface) => + async ( + payloads: { + id: string; + content: string; + projectId: string; + }[], + ) => { + const { snapshot } = callbackHelpers; + payloads.map(async ({ id, content, projectId }) => { + const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); + try { + const updatedFile = (await luWorker.parse(id, content, luFeatures, [])) as LuFile; + // compare to drop expired change on current id file. + /** + * Why other methods do not need double check content? + * Because this method already did set content before call luFilesAtomUpdater. + */ + updateLuFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + } catch (error) { + setError(callbackHelpers, error); + } + }); + }, + ); + + const updateLuFile = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ id, content, projectId }: { id: string; content: string; projectId: string }) => { + const { set, snapshot } = callbackHelpers; + //set content first + set(luFileState({ projectId, luFileId: id }), (prevLuFile) => { + return { + ...prevLuFile, + content, + }; + }); + + const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); + try { - const updatedFile = (await luWorker.parse(id, content, luFeatures, [])) as LuFile; + const updatedFile = (await luWorker.parse(id, content, luFeatures, luFiles)) as LuFile; + const updatedFiles = await getRelatedLuFileChanges(luFiles, updatedFile, projectId, luFeatures); // compare to drop expired change on current id file. /** * Why other methods do not need double check content? * Because this method already did set content before call luFilesAtomUpdater. */ - updateLuFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + updateLuFiles(callbackHelpers, projectId, { updates: updatedFiles }, (current, changed) => { + // compare to drop expired content already setted above. + if (current.id === id && current?.content !== changed?.content) return current; + return changed; + }); } catch (error) { setError(callbackHelpers, error); } - }); - } - ); - - const updateLuFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - content, - projectId, - }: { - id: string; - content: string; - projectId: string; - }) => { - const { set, snapshot } = callbackHelpers; - //set content first - set(luFileState({ projectId, luFileId: id }), (prevLuFile) => { - return { - ...prevLuFile, - content, - }; - }); - - const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); - const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); - - try { - const updatedFile = (await luWorker.parse(id, content, luFeatures, luFiles)) as LuFile; - const updatedFiles = await getRelatedLuFileChanges(luFiles, updatedFile, projectId, luFeatures); - // compare to drop expired change on current id file. - /** - * Why other methods do not need double check content? - * Because this method already did set content before call luFilesAtomUpdater. - */ - updateLuFiles(callbackHelpers, projectId, { updates: updatedFiles }, (current, changed) => { - // compare to drop expired content already setted above. - if (current.id === id && current?.content !== changed?.content) return current; - return changed; - }); - } catch (error) { - setError(callbackHelpers, error); - } - } + }, ); const updateLuIntent = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - intentName, - intent, - projectId, - }: { - id: string; - intentName: string; - intent: LuIntentSection; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); - const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); - const luFile = luFiles.find((temp) => temp.id === id); - if (!luFile) return luFiles; - - // create need sync to multi locale file. - const originIntent = luFile.intents.find(({ Name }) => Name === intentName); - if (!originIntent) { - await createLuIntent({ id, intent, projectId }); - return; - } - - try { - const sameIdOtherLocaleFiles = luFiles.filter((file) => getBaseName(file.id) === getBaseName(id)); - - // name change, need update cross multi locale file. - if (intent.Name !== intentName) { - const changes: LuFile[] = []; - for (const item of sameIdOtherLocaleFiles) { + (callbackHelpers: CallbackInterface) => + async ({ + id, + intentName, + intent, + projectId, + }: { + id: string; + intentName: string; + intent: LuIntentSection; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); + const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); + const luFile = luFiles.find((temp) => temp.id === id); + if (!luFile) return luFiles; + + // create need sync to multi locale file. + const originIntent = luFile.intents.find(({ Name }) => Name === intentName); + if (!originIntent) { + await createLuIntent({ id, intent, projectId }); + return; + } + + try { + const sameIdOtherLocaleFiles = luFiles.filter((file) => getBaseName(file.id) === getBaseName(id)); + + // name change, need update cross multi locale file. + if (intent.Name !== intentName) { + const changes: LuFile[] = []; + for (const item of sameIdOtherLocaleFiles) { + const updatedFile = (await luWorker.updateIntent( + item, + intentName, + { Name: intent.Name }, + luFeatures, + luFiles, + )) as LuFile; + changes.push(updatedFile); + } + updateLuFiles(callbackHelpers, projectId, { updates: changes }); + // body change, only update current locale file + } else { const updatedFile = (await luWorker.updateIntent( - item, + luFile, intentName, - { Name: intent.Name }, + { Body: intent.Body }, luFeatures, - luFiles + luFiles, )) as LuFile; - changes.push(updatedFile); + updateLuFiles(callbackHelpers, projectId, { updates: [updatedFile] }); } - updateLuFiles(callbackHelpers, projectId, { updates: changes }); - // body change, only update current locale file - } else { - const updatedFile = (await luWorker.updateIntent( - luFile, - intentName, - { Body: intent.Body }, - luFeatures, - luFiles - )) as LuFile; - updateLuFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + } catch (error) { + setError(callbackHelpers, error); } - } catch (error) { - setError(callbackHelpers, error); - } - } + }, ); const createLuIntent = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - intent, - projectId, - }: { - id: string; - intent: LuIntentSection; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); - const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); - - const file = luFiles.find((temp) => temp.id === id); - if (!file) return luFiles; - try { - const updatedFile = (await luWorker.addIntent(file, intent, luFeatures, luFiles)) as LuFile; - const updatedFiles = await getRelatedLuFileChanges(luFiles, updatedFile, projectId, luFeatures); - updateLuFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } catch (error) { - setError(callbackHelpers, error); - } - } + (callbackHelpers: CallbackInterface) => + async ({ id, intent, projectId }: { id: string; intent: LuIntentSection; projectId: string }) => { + const { snapshot } = callbackHelpers; + const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); + const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); + + const file = luFiles.find((temp) => temp.id === id); + if (!file) return luFiles; + try { + const updatedFile = (await luWorker.addIntent(file, intent, luFeatures, luFiles)) as LuFile; + const updatedFiles = await getRelatedLuFileChanges(luFiles, updatedFile, projectId, luFeatures); + updateLuFiles(callbackHelpers, projectId, { updates: updatedFiles }); + } catch (error) { + setError(callbackHelpers, error); + } + }, ); const removeLuIntent = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - intentName, - projectId, - }: { - id: string; - intentName: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); - const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); - - const file = luFiles.find((temp) => temp.id === id); - if (!file) return luFiles; - try { - const updatedFile = (await luWorker.removeIntent(file, intentName, luFeatures, luFiles)) as LuFile; - const updatedFiles = await getRelatedLuFileChanges(luFiles, updatedFile, projectId, luFeatures); - updateLuFiles(callbackHelpers, projectId, { updates: updatedFiles }); - } catch (error) { - setError(callbackHelpers, error); - } - } + (callbackHelpers: CallbackInterface) => + async ({ id, intentName, projectId }: { id: string; intentName: string; projectId: string }) => { + const { snapshot } = callbackHelpers; + const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); + const luFeatures = await snapshot.getPromise(luFileLuFeatureSelector({ projectId, id })); + + const file = luFiles.find((temp) => temp.id === id); + if (!file) return luFiles; + try { + const updatedFile = (await luWorker.removeIntent(file, intentName, luFeatures, luFiles)) as LuFile; + const updatedFiles = await getRelatedLuFileChanges(luFiles, updatedFile, projectId, luFeatures); + updateLuFiles(callbackHelpers, projectId, { updates: updatedFiles }); + } catch (error) { + setError(callbackHelpers, error); + } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/multilang.ts b/Composer/packages/client/src/recoilModel/dispatchers/multilang.ts index 748a5024cb..fad86d7bf0 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/multilang.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/multilang.ts @@ -51,7 +51,7 @@ const copyLanguageResources = (files: any[], fromLanguage: string, toLanguages: // pull out target language file const deleteLanguageResources = ( files: any[], - languages: string[] + languages: string[], ): { left: any[]; deletes: any[]; @@ -67,123 +67,129 @@ const deleteLanguageResources = ( export const multilangDispatcher = () => { // When skill bot do not have the locale to be set in root bot, create it for skill bot. const setLocale = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async (locale: string, projectId: string) => { - const botName = await snapshot.getPromise(botDisplayNameState(projectId)); - const botProjects = await snapshot.getPromise(localBotsDataSelector); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (projectId === rootBotProjectId) { - for (let i = 0; i < botProjects.length; i++) { - if (!botProjects[i].isRootBot && !botProjects[i].isRemote) { - const skillBotProjectId = botProjects[i].projectId; - const settings = await snapshot.getPromise(settingsState(skillBotProjectId)); - const languages = settings.languages; - const defaultLang = settings.defaultLanguage; - if (!languages.includes(locale)) { - addLanguages({ - languages: [locale], - projectId: skillBotProjectId, - defaultLang: defaultLang, - switchTo: true, - }); + ({ set, snapshot }: CallbackInterface) => + async (locale: string, projectId: string) => { + const botName = await snapshot.getPromise(botDisplayNameState(projectId)); + const botProjects = await snapshot.getPromise(localBotsDataSelector); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (projectId === rootBotProjectId) { + for (let i = 0; i < botProjects.length; i++) { + if (!botProjects[i].isRootBot && !botProjects[i].isRemote) { + const skillBotProjectId = botProjects[i].projectId; + const settings = await snapshot.getPromise(settingsState(skillBotProjectId)); + const languages = settings.languages; + const defaultLang = settings.defaultLanguage; + if (!languages.includes(locale)) { + addLanguages({ + languages: [locale], + projectId: skillBotProjectId, + defaultLang: defaultLang, + switchTo: true, + }); + } } } } - } - set(localeState(projectId), locale); - languageStorage.setLocale(botName, locale); - } + set(localeState(projectId), locale); + languageStorage.setLocale(botName, locale); + }, ); const addLanguages = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ languages, defaultLang, switchTo = false, projectId }) => { - const { set, snapshot } = callbackHelpers; - const onAddLanguageDialogComplete = (await snapshot.getPromise(onAddLanguageDialogCompleteState(projectId))).func; - - // copy files from default language - set(lgFilesSelectorFamily(projectId), (oldLgFiles) => { - const addedLgFiles = copyLanguageResources(oldLgFiles, defaultLang, languages); - return [...oldLgFiles, ...addedLgFiles]; - }); - set(luFilesSelectorFamily(projectId), (prevluFiles) => { - const addedLuFiles = copyLanguageResources(prevluFiles, defaultLang, languages); - return [...prevluFiles, ...addedLuFiles]; - }); - set(qnaFilesSelectorFamily(projectId), (prevQnAFiles) => { - const addedQnAFiles = copyLanguageResources(prevQnAFiles, defaultLang, languages); - return [...prevQnAFiles, ...addedQnAFiles]; - }); - set(settingsState(projectId), (prevSettings) => { - const settings: any = cloneDeep(prevSettings); - if (Array.isArray(settings.languages)) { - settings.languages.push(...languages); - } else { - settings.languages = languages; - } - if (typeof onAddLanguageDialogComplete === 'function') { - onAddLanguageDialogComplete(languages); - } - return settings; - }); + (callbackHelpers: CallbackInterface) => + async ({ languages, defaultLang, switchTo = false, projectId }) => { + const { set, snapshot } = callbackHelpers; + const onAddLanguageDialogComplete = (await snapshot.getPromise(onAddLanguageDialogCompleteState(projectId))) + .func; + + // copy files from default language + set(lgFilesSelectorFamily(projectId), (oldLgFiles) => { + const addedLgFiles = copyLanguageResources(oldLgFiles, defaultLang, languages); + return [...oldLgFiles, ...addedLgFiles]; + }); + set(luFilesSelectorFamily(projectId), (prevluFiles) => { + const addedLuFiles = copyLanguageResources(prevluFiles, defaultLang, languages); + return [...prevluFiles, ...addedLuFiles]; + }); + set(qnaFilesSelectorFamily(projectId), (prevQnAFiles) => { + const addedQnAFiles = copyLanguageResources(prevQnAFiles, defaultLang, languages); + return [...prevQnAFiles, ...addedQnAFiles]; + }); + set(settingsState(projectId), (prevSettings) => { + const settings: any = cloneDeep(prevSettings); + if (Array.isArray(settings.languages)) { + settings.languages.push(...languages); + } else { + settings.languages = languages; + } + if (typeof onAddLanguageDialogComplete === 'function') { + onAddLanguageDialogComplete(languages); + } + return settings; + }); - //Set active language and update skill bot's active language - if (switchTo) { - const switchToLocale = languages[0]; - setLocale(switchToLocale, projectId); - } + //Set active language and update skill bot's active language + if (switchTo) { + const switchToLocale = languages[0]; + setLocale(switchToLocale, projectId); + } - set(showAddLanguageModalState(projectId), false); - set(onAddLanguageDialogCompleteState(projectId), { func: undefined }); - } + set(showAddLanguageModalState(projectId), false); + set(onAddLanguageDialogCompleteState(projectId), { func: undefined }); + }, ); const deleteLanguages = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ languages, projectId }) => { - const { set, snapshot } = callbackHelpers; - const onDelLanguageDialogComplete = (await snapshot.getPromise(onDelLanguageDialogCompleteState(projectId))).func; - - // copy files from default language - set(lgFilesSelectorFamily(projectId), (prevLgFiles) => { - const { left: leftLgFiles } = deleteLanguageResources(prevLgFiles, languages); - return leftLgFiles; - }); - set(luFilesSelectorFamily(projectId), (prevLuFiles) => { - const { left: leftLuFiles } = deleteLanguageResources(prevLuFiles, languages); - return leftLuFiles; - }); - set(qnaFilesSelectorFamily(projectId), (prevQnAFiles) => { - const { left: leftQnAFiles } = deleteLanguageResources(prevQnAFiles, languages); - return leftQnAFiles; - }); - set(settingsState(projectId), (prevSettings) => { - const settings: any = cloneDeep(prevSettings); - - const leftLanguages = difference(settings.languages, languages); - settings.languages = leftLanguages; - if (typeof onDelLanguageDialogComplete === 'function') { - onDelLanguageDialogComplete(leftLanguages); + (callbackHelpers: CallbackInterface) => + async ({ languages, projectId }) => { + const { set, snapshot } = callbackHelpers; + const onDelLanguageDialogComplete = (await snapshot.getPromise(onDelLanguageDialogCompleteState(projectId))) + .func; + + // copy files from default language + set(lgFilesSelectorFamily(projectId), (prevLgFiles) => { + const { left: leftLgFiles } = deleteLanguageResources(prevLgFiles, languages); + return leftLgFiles; + }); + set(luFilesSelectorFamily(projectId), (prevLuFiles) => { + const { left: leftLuFiles } = deleteLanguageResources(prevLuFiles, languages); + return leftLuFiles; + }); + set(qnaFilesSelectorFamily(projectId), (prevQnAFiles) => { + const { left: leftQnAFiles } = deleteLanguageResources(prevQnAFiles, languages); + return leftQnAFiles; + }); + set(settingsState(projectId), (prevSettings) => { + const settings: any = cloneDeep(prevSettings); + + const leftLanguages = difference(settings.languages, languages); + settings.languages = leftLanguages; + if (typeof onDelLanguageDialogComplete === 'function') { + onDelLanguageDialogComplete(leftLanguages); + } + return settings; + }); + + set(showDelLanguageModalState(projectId), false); + set(onDelLanguageDialogCompleteState(projectId), { func: undefined }); + + //use default language as active language if active language is deleted + const botName = await snapshot.getPromise(botDisplayNameState(projectId)); + const currentActiveLanguage = languageStorage.get(botName)?.locale; + if (languages.includes(currentActiveLanguage)) { + const { defaultLanguage } = await snapshot.getPromise(settingsState(projectId)); + set(localeState(projectId), defaultLanguage); + languageStorage.setLocale(botName, defaultLanguage); } - return settings; - }); - - set(showDelLanguageModalState(projectId), false); - set(onDelLanguageDialogCompleteState(projectId), { func: undefined }); - - //use default language as active language if active language is deleted - const botName = await snapshot.getPromise(botDisplayNameState(projectId)); - const currentActiveLanguage = languageStorage.get(botName)?.locale; - if (languages.includes(currentActiveLanguage)) { - const { defaultLanguage } = await snapshot.getPromise(settingsState(projectId)); - set(localeState(projectId), defaultLanguage); - languageStorage.setLocale(botName, defaultLanguage); - } - } + }, ); const addLanguageDialogBegin = useRecoilCallback( - ({ set }: CallbackInterface) => async (projectId: string, onComplete) => { - set(showAddLanguageModalState(projectId), true); - set(onAddLanguageDialogCompleteState(projectId), { func: onComplete }); - } + ({ set }: CallbackInterface) => + async (projectId: string, onComplete) => { + set(showAddLanguageModalState(projectId), true); + set(onAddLanguageDialogCompleteState(projectId), { func: onComplete }); + }, ); const addLanguageDialogCancel = useRecoilCallback(({ set }: CallbackInterface) => async (projectId: string) => { @@ -192,10 +198,11 @@ export const multilangDispatcher = () => { }); const delLanguageDialogBegin = useRecoilCallback( - ({ set }: CallbackInterface) => async (projectId: string, onComplete) => { - set(showDelLanguageModalState(projectId), true); - set(onDelLanguageDialogCompleteState(projectId), { func: onComplete }); - } + ({ set }: CallbackInterface) => + async (projectId: string, onComplete) => { + set(showDelLanguageModalState(projectId), true); + set(onDelLanguageDialogCompleteState(projectId), { func: onComplete }); + }, ); const delLanguageDialogCancel = useRecoilCallback(({ set }: CallbackInterface) => async (projectId: string) => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/navigation.ts b/Composer/packages/client/src/recoilModel/dispatchers/navigation.ts index fce914a140..e1c1228fc6 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/navigation.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/navigation.ts @@ -38,177 +38,168 @@ export const navigationDispatcher = () => { const focusPath = `${dialogId}#${focused ? `.${focused}` : selected ? `.${selected}` : ''}`; set(focusPathState(projectId), focusPath); set(designPageLocationState(projectId), location); - } + }, ); const navTo = useRecoilCallback( - (callbackInterface: CallbackInterface) => async ( - skillId: string | null, - dialogId: string | null, - trigger?: string - ) => { - const { set, snapshot } = callbackInterface; - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (rootBotProjectId == null) return; + (callbackInterface: CallbackInterface) => + async (skillId: string | null, dialogId: string | null, trigger?: string) => { + const { set, snapshot } = callbackInterface; + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (rootBotProjectId == null) return; + + const projectId = skillId ?? rootBotProjectId; + const topics = await snapshot.getPromise(topicsSelectorFamily(projectId)); + + await setCurrentProjectId(callbackInterface, projectId); + + // check to see if navigating to PVA topic + const topic = topics.find((t) => t.content?.id === dialogId); + if (topic) { + if (topic?.content?.$designer?.link) { + // eslint-disable-next-line security/detect-non-literal-fs-filename + window.open(topic.content.$designer.link as string, '_blank'); + } + // no-op even if topic has no link + return; + } - const projectId = skillId ?? rootBotProjectId; - const topics = await snapshot.getPromise(topicsSelectorFamily(projectId)); + const currentUri = + trigger == null + ? convertPathToUrl(rootBotProjectId, skillId, dialogId) + : convertPathToUrl(rootBotProjectId, skillId, dialogId, `selected=triggers[${trigger}]`); - await setCurrentProjectId(callbackInterface, projectId); - - // check to see if navigating to PVA topic - const topic = topics.find((t) => t.content?.id === dialogId); - if (topic) { - if (topic?.content?.$designer?.link) { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(topic.content.$designer.link as string, '_blank'); - } - // no-op even if topic has no link - return; - } - - const currentUri = - trigger == null - ? convertPathToUrl(rootBotProjectId, skillId, dialogId) - : convertPathToUrl(rootBotProjectId, skillId, dialogId, `selected=triggers[${trigger}]`); - - set(designPageLocationState(projectId), { - dialogId: dialogId ?? '', - selected: trigger ?? '', - focused: '', - promptTab: undefined, - }); - navigateTo(currentUri); - } + set(designPageLocationState(projectId), { + dialogId: dialogId ?? '', + selected: trigger ?? '', + focused: '', + promptTab: undefined, + }); + navigateTo(currentUri); + }, ); const selectTo = useRecoilCallback( - (callbackInterface: CallbackInterface) => async ( - skillId: string | null, - destinationDialogId: string | null, - selectPath: string - ) => { - if (!selectPath) return; + (callbackInterface: CallbackInterface) => + async (skillId: string | null, destinationDialogId: string | null, selectPath: string) => { + if (!selectPath) return; - const { set, snapshot } = callbackInterface; - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (rootBotProjectId == null) return; + const { set, snapshot } = callbackInterface; + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (rootBotProjectId == null) return; - const projectId = skillId ?? rootBotProjectId; + const projectId = skillId ?? rootBotProjectId; - await setCurrentProjectId(callbackInterface, projectId); + await setCurrentProjectId(callbackInterface, projectId); - const designPageLocation = await snapshot.getPromise(designPageLocationState(projectId)); - - // target dialogId, projectId maybe empty string "" - const dialogId = destinationDialogId ?? designPageLocation.dialogId ?? 'Main'; - - const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); - const currentDialog = dialogs.find(({ id }) => id === dialogId); - const encodedSelectPath = encodeArrayPathToDesignerPath(currentDialog?.content, selectPath); - const currentUri = convertPathToUrl(rootBotProjectId, skillId, dialogId, encodedSelectPath); - - if (checkUrl(currentUri, rootBotProjectId, skillId, designPageLocation)) return; - set(designPageLocationState(projectId), { - dialogId, - selected: selectPath, - focused: '', - promptTab: undefined, - }); - navigateTo(currentUri); - } - ); + const designPageLocation = await snapshot.getPromise(designPageLocationState(projectId)); - const focusTo = useRecoilCallback( - (callbackInterface: CallbackInterface) => async ( - projectId: string, - skillId: string | null, - focusPath: string, - fragment: string - ) => { - const { set, snapshot } = callbackInterface; - await setCurrentProjectId(callbackInterface, skillId ?? projectId); + // target dialogId, projectId maybe empty string "" + const dialogId = destinationDialogId ?? designPageLocation.dialogId ?? 'Main'; - const designPageLocation = await snapshot.getPromise(designPageLocationState(skillId ?? projectId)); - const { dialogId, selected } = designPageLocation; + const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); + const currentDialog = dialogs.find(({ id }) => id === dialogId); + const encodedSelectPath = encodeArrayPathToDesignerPath(currentDialog?.content, selectPath); + const currentUri = convertPathToUrl(rootBotProjectId, skillId, dialogId, encodedSelectPath); - const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); - const currentDialog = dialogs.find(({ id }) => id === dialogId); + if (checkUrl(currentUri, rootBotProjectId, skillId, designPageLocation)) return; + set(designPageLocationState(projectId), { + dialogId, + selected: selectPath, + focused: '', + promptTab: undefined, + }); + navigateTo(currentUri); + }, + ); - const encodedSelectPath = encodeArrayPathToDesignerPath(currentDialog?.content, selected); + const focusTo = useRecoilCallback( + (callbackInterface: CallbackInterface) => + async (projectId: string, skillId: string | null, focusPath: string, fragment: string) => { + const { set, snapshot } = callbackInterface; + await setCurrentProjectId(callbackInterface, skillId ?? projectId); - let currentUri = - skillId == null || skillId === projectId - ? `/bot/${projectId}/dialogs/${dialogId}` - : `/bot/${projectId}/skill/${skillId}/dialogs/${dialogId}`; + const designPageLocation = await snapshot.getPromise(designPageLocationState(skillId ?? projectId)); + const { dialogId, selected } = designPageLocation; - if (focusPath) { - const dialogs = await snapshot.getPromise(dialogsSelectorFamily(skillId ?? projectId)); + const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); const currentDialog = dialogs.find(({ id }) => id === dialogId); - const encodedFocusPath = encodeArrayPathToDesignerPath(currentDialog?.content, focusPath); - - const targetSelected = getSelected(encodedFocusPath); - - currentUri = `${currentUri}?selected=${targetSelected}&focused=${encodedFocusPath}`; - } else { - currentUri = `${currentUri}?selected=${encodedSelectPath}`; - } - - if (fragment && typeof fragment === 'string') { - currentUri += `#${fragment}`; - } - if (checkUrl(currentUri, projectId, skillId, designPageLocation)) return; - - set(designPageLocationState(skillId || projectId), { - dialogId, - selected: getSelected(focusPath) || encodedSelectPath, - focused: focusPath ?? '', - promptTab: Object.values(PromptTab).find((value) => fragment === value), - }); - navigateTo(currentUri); - } - ); - const selectAndFocus = useRecoilCallback( - ({ snapshot, set }: CallbackInterface) => async ( - projectId: string, - skillId: string | null, - dialogId: string, - selectPath: string, - focusPath: string, - fragment?: string - ) => { - set(currentProjectIdState, projectId); - - const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); - const currentDialog = dialogs.find(({ id }) => id === dialogId)?.content; - const encodedSelectPath = encodeArrayPathToDesignerPath(currentDialog, selectPath); - const encodedFocusPath = encodeArrayPathToDesignerPath(currentDialog, focusPath); - const search = getUrlSearch(encodedSelectPath, encodedFocusPath); - const designPageLocation = await snapshot.getPromise(designPageLocationState(projectId)); - if (search) { + const encodedSelectPath = encodeArrayPathToDesignerPath(currentDialog?.content, selected); + let currentUri = skillId == null || skillId === projectId - ? `/bot/${projectId}/dialogs/${dialogId}${search}` - : `/bot/${projectId}/skill/${skillId}/dialogs/${dialogId}${search}`; + ? `/bot/${projectId}/dialogs/${dialogId}` + : `/bot/${projectId}/skill/${skillId}/dialogs/${dialogId}`; + + if (focusPath) { + const dialogs = await snapshot.getPromise(dialogsSelectorFamily(skillId ?? projectId)); + const currentDialog = dialogs.find(({ id }) => id === dialogId); + const encodedFocusPath = encodeArrayPathToDesignerPath(currentDialog?.content, focusPath); + + const targetSelected = getSelected(encodedFocusPath); + + currentUri = `${currentUri}?selected=${targetSelected}&focused=${encodedFocusPath}`; + } else { + currentUri = `${currentUri}?selected=${encodedSelectPath}`; + } if (fragment && typeof fragment === 'string') { currentUri += `#${fragment}`; } - if (checkUrl(currentUri, projectId, skillId, designPageLocation)) return; - set(designPageLocationState(projectId), { + set(designPageLocationState(skillId || projectId), { dialogId, - selected: getSelected(focusPath) || selectPath, + selected: getSelected(focusPath) || encodedSelectPath, focused: focusPath ?? '', promptTab: Object.values(PromptTab).find((value) => fragment === value), }); navigateTo(currentUri); - } else { - navTo(skillId ?? projectId, dialogId); - } - } + }, + ); + + const selectAndFocus = useRecoilCallback( + ({ snapshot, set }: CallbackInterface) => + async ( + projectId: string, + skillId: string | null, + dialogId: string, + selectPath: string, + focusPath: string, + fragment?: string, + ) => { + set(currentProjectIdState, projectId); + + const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); + const currentDialog = dialogs.find(({ id }) => id === dialogId)?.content; + const encodedSelectPath = encodeArrayPathToDesignerPath(currentDialog, selectPath); + const encodedFocusPath = encodeArrayPathToDesignerPath(currentDialog, focusPath); + const search = getUrlSearch(encodedSelectPath, encodedFocusPath); + const designPageLocation = await snapshot.getPromise(designPageLocationState(projectId)); + if (search) { + let currentUri = + skillId == null || skillId === projectId + ? `/bot/${projectId}/dialogs/${dialogId}${search}` + : `/bot/${projectId}/skill/${skillId}/dialogs/${dialogId}${search}`; + + if (fragment && typeof fragment === 'string') { + currentUri += `#${fragment}`; + } + + if (checkUrl(currentUri, projectId, skillId, designPageLocation)) return; + + set(designPageLocationState(projectId), { + dialogId, + selected: getSelected(focusPath) || selectPath, + focused: focusPath ?? '', + promptTab: Object.values(PromptTab).find((value) => fragment === value), + }); + navigateTo(currentUri); + } else { + navTo(skillId ?? projectId, dialogId); + } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/notification.ts b/Composer/packages/client/src/recoilModel/dispatchers/notification.ts index 1b0fa5c63e..5ff43473cb 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/notification.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/notification.ts @@ -56,7 +56,7 @@ export const notificationDispatcher = () => { const updateNotification = useRecoilCallback( (callbackHelper: CallbackInterface) => (id: string, newValue: Partial) => { updateNotificationInternal(callbackHelper, id, newValue); - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/orchestrator.ts b/Composer/packages/client/src/recoilModel/dispatchers/orchestrator.ts index d7cebd146d..e37ff96479 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/orchestrator.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/orchestrator.ts @@ -42,7 +42,7 @@ const pollUntilDone = (predicate: () => Promise, pollingIntervalMs: num export const downloadModel = async ( addr: string, modelRequest: OrchestratorModelRequest, - notificationStartCallback: () => void + notificationStartCallback: () => void, ) => { const resp = await httpClient.post(addr, { modelData: modelRequest }); @@ -58,17 +58,17 @@ export const downloadModel = async ( export const getAvailableLanguageModels = async ( recognizerFiles: RecognizerFile[], - botSettings?: DialogSetting + botSettings?: DialogSetting, ): Promise => { const dialogsUsingOrchestrator = recognizerFiles.filter( - ({ content }) => content.$kind === SDKKinds.OrchestratorRecognizer + ({ content }) => content.$kind === SDKKinds.OrchestratorRecognizer, ); let languageModels: OrchestratorModelRequest[] = []; if (dialogsUsingOrchestrator.length) { // pull out languages that Orchestrator has to support const [enLuFiles, multiLangLuFiles] = partition(dialogsUsingOrchestrator, (f) => - f.id.split('.')?.[1]?.toLowerCase()?.startsWith('en') + f.id.split('.')?.[1]?.toLowerCase()?.startsWith('en'), ); if (enLuFiles.length) { @@ -96,7 +96,7 @@ export const getAvailableLanguageModels = async ( const modelList = resp.data; if (modelList?.defaults) { languageModels = languageModels.map((r) => - r.name === 'default' ? { ...r, name: modelList.defaults[r.kind] } : r + r.name === 'default' ? { ...r, name: modelList.defaults[r.kind] } : r, ); } } @@ -143,14 +143,14 @@ export const orchestratorDispatcher = () => { filePersistence.flush(); } catch (err) { const errorNotification = createNotification( - orchestratorDownloadErrorProps(err?.response?.data?.message || err.message) + orchestratorDownloadErrorProps(err?.response?.data?.message || err.message), ); addNotification(errorNotification); } finally { deleteNotification(downloadNotification.id); } } - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/project.ts b/Composer/packages/client/src/recoilModel/dispatchers/project.ts index 35f41b6f01..bc06fe7e6c 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/project.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/project.ts @@ -98,14 +98,14 @@ export const projectDispatcher = () => { // remove the same identifier trigger in root bot if (rootBotProjectId && rootDialog && rootDialog.triggers.length > 0) { const index = rootDialog.triggers.findIndex( - (item) => item.displayName === triggerName.replace(skillNameRegex, '') + (item) => item.displayName === triggerName.replace(skillNameRegex, ''), ); if (index >= 0) { const content = DialogdeleteTrigger( projectDialogsMap[rootBotProjectId], rootDialog?.id, index, - async (trigger) => await dispatcher.deleteTrigger(rootBotProjectId, rootDialog?.id, trigger) + async (trigger) => await dispatcher.deleteTrigger(rootBotProjectId, rootDialog?.id, trigger), ); if (content) { await dispatcher.updateDialog({ id: rootDialog?.id, content, projectId: rootBotProjectId }); @@ -119,119 +119,114 @@ export const projectDispatcher = () => { } catch (ex) { setError(callbackHelpers, ex); } - } + }, ); const replaceSkillInBotProject = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async (projectIdToRemove: string, path: string, storageId = 'default') => { - try { - const { snapshot } = callbackHelpers; - const dispatcher = await snapshot.getPromise(dispatcherState); - const projectIds = await snapshot.getPromise(botProjectIdsState); - const indexToReplace = findIndex(projectIds, (id) => id === projectIdToRemove); - if (indexToReplace === -1) { - return; + (callbackHelpers: CallbackInterface) => + async (projectIdToRemove: string, path: string, storageId = 'default') => { + try { + const { snapshot } = callbackHelpers; + const dispatcher = await snapshot.getPromise(dispatcherState); + const projectIds = await snapshot.getPromise(botProjectIdsState); + const indexToReplace = findIndex(projectIds, (id) => id === projectIdToRemove); + if (indexToReplace === -1) { + return; + } + await dispatcher.removeSkillFromBotProject(projectIdToRemove); + await dispatcher.addExistingSkillToBotProject(path, storageId); + } catch (ex) { + setError(callbackHelpers, ex); } - await dispatcher.removeSkillFromBotProject(projectIdToRemove); - await dispatcher.addExistingSkillToBotProject(path, storageId); - } catch (ex) { - setError(callbackHelpers, ex); - } - } + }, ); const addExistingSkillToBotProject = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - path: string, - storageId = 'default', - templateId?: string - ): Promise => { - const { set, snapshot } = callbackHelpers; - try { - set(botOpeningState, true); - const dispatcher = await snapshot.getPromise(dispatcherState); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) return; + (callbackHelpers: CallbackInterface) => + async (path: string, storageId = 'default', templateId?: string): Promise => { + const { set, snapshot } = callbackHelpers; + try { + set(botOpeningState, true); + const dispatcher = await snapshot.getPromise(dispatcherState); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) return; + + const botExists = await checkIfBotExistsInBotProjectFile(callbackHelpers, path); + if (botExists) { + throw new Error( + formatMessage('This operation cannot be completed. The bot is already part of the Bot Project'), + ); + } + const skillNameIdentifier: string = await getSkillNameIdentifier(callbackHelpers, getFileNameFromPath(path)); - const botExists = await checkIfBotExistsInBotProjectFile(callbackHelpers, path); - if (botExists) { - throw new Error( - formatMessage('This operation cannot be completed. The bot is already part of the Bot Project') - ); - } - const skillNameIdentifier: string = await getSkillNameIdentifier(callbackHelpers, getFileNameFromPath(path)); + const { projectId, mainDialog } = await openLocalSkill(callbackHelpers, path, storageId, skillNameIdentifier); + if (!mainDialog) { + const error = await snapshot.getPromise(botErrorState(projectId)); + throw error; + } - const { projectId, mainDialog } = await openLocalSkill(callbackHelpers, path, storageId, skillNameIdentifier); - if (!mainDialog) { - const error = await snapshot.getPromise(botErrorState(projectId)); - throw error; - } + if (templateId === QnABotTemplateId) { + callbackHelpers.set(createQnAOnState, { projectId, dialogId: mainDialog }); + callbackHelpers.set(showCreateQnADialogState(projectId), true); + } - if (templateId === QnABotTemplateId) { - callbackHelpers.set(createQnAOnState, { projectId, dialogId: mainDialog }); - callbackHelpers.set(showCreateQnADialogState(projectId), true); + set(botProjectIdsState, (current) => [...current, projectId]); + await dispatcher.addLocalSkillToBotProjectFile(projectId); + navigateToSkillBot(rootBotProjectId, projectId, mainDialog); + callbackHelpers.set(orchestratorForSkillsDialogState, true); + } catch (ex) { + handleProjectFailure(callbackHelpers, ex); + } finally { + set(botOpeningState, false); } - - set(botProjectIdsState, (current) => [...current, projectId]); - await dispatcher.addLocalSkillToBotProjectFile(projectId); - navigateToSkillBot(rootBotProjectId, projectId, mainDialog); - callbackHelpers.set(orchestratorForSkillsDialogState, true); - } catch (ex) { - handleProjectFailure(callbackHelpers, ex); - } finally { - set(botOpeningState, false); - } - } + }, ); const addRemoteSkillToBotProject = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - manifestUrl: string, - endpointName: string, - zipContent: Record - ) => { - const { set, snapshot } = callbackHelpers; - try { - const dispatcher = await snapshot.getPromise(dispatcherState); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) return; - - const manifestFromZip = getManifestJsonFromZip(zipContent); - let botNameIdentifier; - if (manifestFromZip.content?.name) { - botNameIdentifier = camelCase(manifestFromZip.content.name); - manifestFromZip.name = `skills/${botNameIdentifier}/${manifestFromZip.name}`; - } - const botExists = await checkIfBotExistsInBotProjectFile( - callbackHelpers, - manifestFromZip.name ? manifestFromZip.name : manifestUrl, - true - ); - if (botExists) { - throw new Error( - formatMessage('This operation cannot be completed. The skill is already part of the Bot Project') + (callbackHelpers: CallbackInterface) => + async (manifestUrl: string, endpointName: string, zipContent: Record) => { + const { set, snapshot } = callbackHelpers; + try { + const dispatcher = await snapshot.getPromise(dispatcherState); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) return; + + const manifestFromZip = getManifestJsonFromZip(zipContent); + let botNameIdentifier; + if (manifestFromZip.content?.name) { + botNameIdentifier = camelCase(manifestFromZip.content.name); + manifestFromZip.name = `skills/${botNameIdentifier}/${manifestFromZip.name}`; + } + const botExists = await checkIfBotExistsInBotProjectFile( + callbackHelpers, + manifestFromZip.name ? manifestFromZip.name : manifestUrl, + true, ); - } - - set(botOpeningState, true); + if (botExists) { + throw new Error( + formatMessage('This operation cannot be completed. The skill is already part of the Bot Project'), + ); + } - const { projectId } = await openRemoteSkill(callbackHelpers, { - manifestUrl, - manifestFromZip, - rootBotProjectId, - botNameIdentifier, - }); - set(botProjectIdsState, (current) => [...current, projectId]); - await dispatcher.addRemoteSkillToBotProjectFile(projectId, manifestUrl, zipContent, endpointName); - // update appsetting - await dispatcher.setSkillAndAllowCaller(rootBotProjectId, projectId, endpointName); - navigateToSkillBot(rootBotProjectId, projectId); - } catch (ex) { - handleProjectFailure(callbackHelpers, ex); - } finally { - set(botOpeningState, false); - } - } + set(botOpeningState, true); + + const { projectId } = await openRemoteSkill(callbackHelpers, { + manifestUrl, + manifestFromZip, + rootBotProjectId, + botNameIdentifier, + }); + set(botProjectIdsState, (current) => [...current, projectId]); + await dispatcher.addRemoteSkillToBotProjectFile(projectId, manifestUrl, zipContent, endpointName); + // update appsetting + await dispatcher.setSkillAndAllowCaller(rootBotProjectId, projectId, endpointName); + navigateToSkillBot(rootBotProjectId, projectId); + } catch (ex) { + handleProjectFailure(callbackHelpers, ex); + } finally { + set(botOpeningState, false); + } + }, ); const forceMigrate = useRecoilCallback( @@ -242,86 +237,87 @@ export const projectDispatcher = () => { } else { navigateTo(`/home`); } - } + }, ); const openProject = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - path: string, - storageId = 'default', - navigate = true, - absData?: any, - callback?: (projectId: string) => void - ) => { - const { reset, set, snapshot } = callbackHelpers; - try { - set(botOpeningState, true); + (callbackHelpers: CallbackInterface) => + async ( + path: string, + storageId = 'default', + navigate = true, + absData?: any, + callback?: (projectId: string) => void, + ) => { + const { reset, set, snapshot } = callbackHelpers; + try { + set(botOpeningState, true); - await flushExistingTasks(callbackHelpers); - const { projectId, mainDialog, requiresMigrate, hasOldCustomRuntime } = await openRootBotAndSkillsByPath( - callbackHelpers, - path, - storageId - ); - reset(watchedVariablesState(projectId)); - - if (requiresMigrate) { - await forceMigrate(projectId, hasOldCustomRuntime); - return; - } + await flushExistingTasks(callbackHelpers); + const { projectId, mainDialog, requiresMigrate, hasOldCustomRuntime } = await openRootBotAndSkillsByPath( + callbackHelpers, + path, + storageId, + ); + reset(watchedVariablesState(projectId)); - // ABS open Flow, update publishProfile & set alias for project after open project - if (absData) { - const { profile, source, alias } = absData; - - if (profile && alias) { - const dispatcher = await snapshot.getPromise(dispatcherState); - const { publishTargets } = await snapshot.getPromise(settingsState(projectId)); - const newProfile = await getPublishProfileFromPayload(profile, source); - if (newProfile) { - const newPublishTargets = publishTargets - ? publishTargets.filter((item) => item.name !== newProfile.name) - : []; - newPublishTargets.push(newProfile); - dispatcher.setPublishTargets(newPublishTargets, projectId); - } - await httpClient.post(`/projects/${projectId}/alias/set`, { alias }); + if (requiresMigrate) { + await forceMigrate(projectId, hasOldCustomRuntime); + return; } - } - // Post project creation - set(projectMetaDataState(projectId), { - isRootBot: true, - isRemote: false, - }); - projectIdCache.set(projectId); + // ABS open Flow, update publishProfile & set alias for project after open project + if (absData) { + const { profile, source, alias } = absData; + + if (profile && alias) { + const dispatcher = await snapshot.getPromise(dispatcherState); + const { publishTargets } = await snapshot.getPromise(settingsState(projectId)); + const newProfile = await getPublishProfileFromPayload(profile, source); + if (newProfile) { + const newPublishTargets = publishTargets + ? publishTargets.filter((item) => item.name !== newProfile.name) + : []; + newPublishTargets.push(newProfile); + dispatcher.setPublishTargets(newPublishTargets, projectId); + } + await httpClient.post(`/projects/${projectId}/alias/set`, { alias }); + } + } - //migration on some sensitive property in browser local storage - for (const property of RootBotManagedProperties) { - const settings = settingStorage.get(projectId); - const value = get(settings, property, ''); - if (!value.root && value.root !== '') { - const newValue = { root: value }; - settingStorage.setField(projectId, property, newValue); + // Post project creation + set(projectMetaDataState(projectId), { + isRootBot: true, + isRemote: false, + }); + projectIdCache.set(projectId); + + //migration on some sensitive property in browser local storage + for (const property of RootBotManagedProperties) { + const settings = settingStorage.get(projectId); + const value = get(settings, property, ''); + if (!value.root && value.root !== '') { + const newValue = { root: value }; + settingStorage.setField(projectId, property, newValue); + } } - } - if (navigate) { - navigateToBot(callbackHelpers, projectId, mainDialog); - } + if (navigate) { + navigateToBot(callbackHelpers, projectId, mainDialog); + } - if (typeof callback === 'function') { - callback(projectId); + if (typeof callback === 'function') { + callback(projectId); + } + } catch (ex) { + set(botProjectIdsState, []); + removeRecentProject(callbackHelpers, path); + handleProjectFailure(callbackHelpers, ex); + navigateTo('/home'); + } finally { + set(botOpeningState, false); } - } catch (ex) { - set(botProjectIdsState, []); - removeRecentProject(callbackHelpers, path); - handleProjectFailure(callbackHelpers, ex); - navigateTo('/home'); - } finally { - set(botOpeningState, false); - } - } + }, ); const fetchProjectById = useRecoilCallback((callbackHelpers: CallbackInterface) => async (projectId: string) => { @@ -331,7 +327,7 @@ export const projectDispatcher = () => { set(botOpeningState, true); const { requiresMigrate, hasOldCustomRuntime } = await openRootBotAndSkillsByProjectId( callbackHelpers, - projectId + projectId, ); if (requiresMigrate) { await forceMigrate(projectId, hasOldCustomRuntime); @@ -445,43 +441,44 @@ export const projectDispatcher = () => { } finally { set(botOpeningState, false); } - } + }, ); const migrateProjectTo = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - oldProjectId: string, - name: string, - description: string, - location: string, - runtimeLanguage: string, - runtimeType: string - ) => { - const { set, snapshot } = callbackHelpers; - try { - const dispatcher = await snapshot.getPromise(dispatcherState); - set(botOpeningState, true); - - // starts the creation process and stores the jobID in state for tracking - const response = await migrateToV2( - callbackHelpers, - oldProjectId, - name, - description, - location, - runtimeLanguage, - runtimeType - ); + (callbackHelpers: CallbackInterface) => + async ( + oldProjectId: string, + name: string, + description: string, + location: string, + runtimeLanguage: string, + runtimeType: string, + ) => { + const { set, snapshot } = callbackHelpers; + try { + const dispatcher = await snapshot.getPromise(dispatcherState); + set(botOpeningState, true); + + // starts the creation process and stores the jobID in state for tracking + const response = await migrateToV2( + callbackHelpers, + oldProjectId, + name, + description, + location, + runtimeLanguage, + runtimeType, + ); - if (response.data.jobId) { - dispatcher.updateCreationMessage(response.data.jobId); + if (response.data.jobId) { + dispatcher.updateCreationMessage(response.data.jobId); + } + } catch (ex) { + set(botProjectIdsState, []); + handleProjectFailure(callbackHelpers, ex); + navigateTo('/home'); } - } catch (ex) { - set(botProjectIdsState, []); - handleProjectFailure(callbackHelpers, ex); - navigateTo('/home'); - } - } + }, ); const deleteBot = useRecoilCallback((callbackHelpers: CallbackInterface) => async (projectId: string) => { @@ -532,15 +529,17 @@ export const projectDispatcher = () => { }); const setBotStatus = useRecoilCallback<[string, BotStatus], void>( - ({ set }: CallbackInterface) => (projectId: string, status: BotStatus) => { - set(botStatusState(projectId), status); - } + ({ set }: CallbackInterface) => + (projectId: string, status: BotStatus) => { + set(botStatusState(projectId), status); + }, ); const updateCurrentTarget = useRecoilCallback<[string, PublishTarget], void>( - ({ set }: CallbackInterface) => (projectId: string, currentTarget) => { - set(currentPublishTargetState(projectId), currentTarget); - } + ({ set }: CallbackInterface) => + (projectId: string, currentTarget) => { + set(currentPublishTargetState(projectId), currentTarget); + }, ); const saveTemplateId = useRecoilCallback<[string], void>(({ set }: CallbackInterface) => (templateId) => { @@ -581,64 +580,59 @@ export const projectDispatcher = () => { }); const updateCreationMessage = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - jobId: string, - templateId?: string, - urlSuffix?: string, - profile?: any, - source?: any - ) => { - const timer = setInterval(async () => { - try { - const response = await httpClient.get(`/status/${jobId}`); - if (response.data?.httpStatusCode === 200 && response.data.result) { - // Bot creation successful - clearInterval(timer); - const creationFlowType = await callbackHelpers.snapshot.getPromise(creationFlowTypeState); - - callbackHelpers.set(botOpeningMessage, response.data.latestMessage); - const { botFiles, projectData } = await loadProjectData(response.data.result); - const projectId = response.data.result.id; + (callbackHelpers: CallbackInterface) => + async (jobId: string, templateId?: string, urlSuffix?: string, profile?: any, source?: any) => { + const timer = setInterval(async () => { + try { + const response = await httpClient.get(`/status/${jobId}`); + if (response.data?.httpStatusCode === 200 && response.data.result) { + // Bot creation successful + clearInterval(timer); + const creationFlowType = await callbackHelpers.snapshot.getPromise(creationFlowTypeState); - if (creationFlowType === 'Skill') { - // Skill Creation - await addExistingSkillToBotProject(projectData.location, 'default', templateId); - } else { - // Root Bot Creation - await postRootBotCreation( - callbackHelpers, - projectId, - botFiles, - projectData, - templateId, - profile, - source, - projectIdCache - ); - } - callbackHelpers.set(botOpeningMessage, ''); - callbackHelpers.set(botOpeningState, false); - } else { - if (response.data.httpStatusCode !== 500) { - // pending callbackHelpers.set(botOpeningMessage, response.data.latestMessage); - } else { - // failure + const { botFiles, projectData } = await loadProjectData(response.data.result); + const projectId = response.data.result.id; + + if (creationFlowType === 'Skill') { + // Skill Creation + await addExistingSkillToBotProject(projectData.location, 'default', templateId); + } else { + // Root Bot Creation + await postRootBotCreation( + callbackHelpers, + projectId, + botFiles, + projectData, + templateId, + profile, + source, + projectIdCache, + ); + } + callbackHelpers.set(botOpeningMessage, ''); callbackHelpers.set(botOpeningState, false); - - callbackHelpers.set(botOpeningMessage, response.data.latestMessage); - clearInterval(timer); + } else { + if (response.data.httpStatusCode !== 500) { + // pending + callbackHelpers.set(botOpeningMessage, response.data.latestMessage); + } else { + // failure + callbackHelpers.set(botOpeningState, false); + + callbackHelpers.set(botOpeningMessage, response.data.latestMessage); + clearInterval(timer); + } } + } catch (err) { + clearInterval(timer); + callbackHelpers.set(botProjectIdsState, []); + handleProjectFailure(callbackHelpers, err); + callbackHelpers.set(botOpeningState, false); + navigateTo('/home'); } - } catch (err) { - clearInterval(timer); - callbackHelpers.set(botProjectIdsState, []); - handleProjectFailure(callbackHelpers, err); - callbackHelpers.set(botOpeningState, false); - navigateTo('/home'); - } - }, 5000); - } + }, 5000); + }, ); const setCurrentProjectId = useRecoilCallback(({ set }: CallbackInterface) => async (projectId: string) => { @@ -659,7 +653,7 @@ export const projectDispatcher = () => { handleProjectFailure(callbackHelpers, err); callbackHelpers.set( selectedTemplateReadMeState, - `### ${formatMessage('Error encountered when getting template read-me file')}` + `### ${formatMessage('Error encountered when getting template read-me file')}`, ); } finally { callbackHelpers.set(fetchReadMePendingState, false); @@ -681,7 +675,7 @@ export const projectDispatcher = () => { const setSelectedTemplateVersion = useRecoilCallback( (callbackHelpers: CallbackInterface) => (selectedVersion: string) => { callbackHelpers.set(selectedTemplateVersionState, selectedVersion); - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/provision.ts b/Composer/packages/client/src/recoilModel/dispatchers/provision.ts index b237450cfd..2a30d7914a 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/provision.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/provision.ts @@ -58,58 +58,59 @@ export const provisionDispatcher = () => { }; const provisionToTarget = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - config: any, - type: string, - projectId: string, - armToken = '', - graphToken = '', - currentProfile: PublishTarget | undefined = undefined - ) => { - try { - TelemetryClient.track('NewPublishingProfileStarted'); - const result = await httpClient.post(`/provision/${projectId}/${type}`, { - ...config, - graphToken: graphToken, - currentProfile, - accessToken: armToken, - }); - // set notification - const notification = createNotification(getProvisionPendingNotification(result.data.message)); - addNotificationInternal(callbackHelpers, notification); - // initialize this profile's provision status state - callbackHelpers.set(provisionStatusState(projectId), (provisionStatus) => { - const newStat = { - ...provisionStatus, - [result.data.processName]: { - ...result.data, - notificationId: notification.id, - }, - }; - return newStat; - }); + (callbackHelpers: CallbackInterface) => + async ( + config: any, + type: string, + projectId: string, + armToken = '', + graphToken = '', + currentProfile: PublishTarget | undefined = undefined, + ) => { + try { + TelemetryClient.track('NewPublishingProfileStarted'); + const result = await httpClient.post(`/provision/${projectId}/${type}`, { + ...config, + graphToken: graphToken, + currentProfile, + accessToken: armToken, + }); + // set notification + const notification = createNotification(getProvisionPendingNotification(result.data.message)); + addNotificationInternal(callbackHelpers, notification); + // initialize this profile's provision status state + callbackHelpers.set(provisionStatusState(projectId), (provisionStatus) => { + const newStat = { + ...provisionStatus, + [result.data.processName]: { + ...result.data, + notificationId: notification.id, + }, + }; + return newStat; + }); - // call provision status api interval to update the state. - await updateProvisionStatus( - callbackHelpers, - result.data.id, - projectId, - result.data.processName, - type, - notification.id - ); - } catch (error) { - TelemetryClient.track('ProvisioningProfileCreateFailure', { - message: error.response?.data || 'Error when provision target', - }); + // call provision status api interval to update the state. + await updateProvisionStatus( + callbackHelpers, + result.data.id, + projectId, + result.data.processName, + type, + notification.id, + ); + } catch (error) { + TelemetryClient.track('ProvisioningProfileCreateFailure', { + message: error.response?.data || 'Error when provision target', + }); - // set notification - const notification = createNotification( - getProvisionFailureNotification(error.response?.data || 'Error when provision target') - ); - addNotificationInternal(callbackHelpers, notification); - } - } + // set notification + const notification = createNotification( + getProvisionFailureNotification(error.response?.data || 'Error when provision target'), + ); + addNotificationInternal(callbackHelpers, notification); + } + }, ); // update provision status interval @@ -119,7 +120,7 @@ export const provisionDispatcher = () => { projectId: string, targetName: string, targetType: string, - notificationId: string + notificationId: string, ) => { const timer = setInterval(async () => { let notification, diff --git a/Composer/packages/client/src/recoilModel/dispatchers/provisionQNA.ts b/Composer/packages/client/src/recoilModel/dispatchers/provisionQNA.ts index 434d72cd96..0b105c6952 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/provisionQNA.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/provisionQNA.ts @@ -96,186 +96,193 @@ const fetchEndpointKey = async (projectId: string, subscriptionKey: string): Pro export const provisionQNADispatcher = () => { const createQNA = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - projectId: string, - tokenCredentials: TokenCredentials, - subscriptionId: string, - resourceGroupName: string, - resourceName: string, - region: string, - tier: string - ) => { - const { snapshot } = callbackHelpers; - const startTime = new Date().getTime(); - const skus: SkuList = tier === 'free' ? FREE_SKUS : PAID_SKUS; + (callbackHelpers: CallbackInterface) => + async ( + projectId: string, + tokenCredentials: TokenCredentials, + subscriptionId: string, + resourceGroupName: string, + resourceName: string, + region: string, + tier: string, + ) => { + const { snapshot } = callbackHelpers; + const startTime = new Date().getTime(); + const skus: SkuList = tier === 'free' ? FREE_SKUS : PAID_SKUS; - const notification = createNotification(getPendingQNANotificationCardProps()); - // add that notification - addNotificationInternal(callbackHelpers, notification); + const notification = createNotification(getPendingQNANotificationCardProps()); + // add that notification + addNotificationInternal(callbackHelpers, notification); - try { - const qnaMakerSearchName = `${resourceName}-search`.toLowerCase().replace('_', ''); - const qnaMakerWebAppName = `${resourceName}-qnahost`.toLowerCase().replace('_', ''); - const qnaMakerServiceName = `${resourceName}-qna`; + try { + const qnaMakerSearchName = `${resourceName}-search`.toLowerCase().replace('_', ''); + const qnaMakerWebAppName = `${resourceName}-qnahost`.toLowerCase().replace('_', ''); + const qnaMakerServiceName = `${resourceName}-qna`; - const searchManagementClient = new SearchManagementClient(tokenCredentials as any, subscriptionId); - await searchManagementClient.services.createOrUpdate(resourceGroupName, qnaMakerSearchName, { - location: region, - sku: skus.search, - replicaCount: 1, - partitionCount: 1, - hostingMode: 'default', - }); + const searchManagementClient = new SearchManagementClient(tokenCredentials as any, subscriptionId); + await searchManagementClient.services.createOrUpdate(resourceGroupName, qnaMakerSearchName, { + location: region, + sku: skus.search, + replicaCount: 1, + partitionCount: 1, + hostingMode: 'default', + }); - const webSiteManagementClient = new WebSiteManagementClient(tokenCredentials, subscriptionId); - await webSiteManagementClient.appServicePlans.createOrUpdate(resourceGroupName, resourceGroupName, { - location: region, - sku: skus.appservice, - }); + const webSiteManagementClient = new WebSiteManagementClient(tokenCredentials, subscriptionId); + await webSiteManagementClient.appServicePlans.createOrUpdate(resourceGroupName, resourceGroupName, { + location: region, + sku: skus.appservice, + }); - // add web config for websites - const primaryEndpointKey = `${qnaMakerWebAppName}-PrimaryEndpointKey`; - const secondaryEndpointKey = `${qnaMakerWebAppName}-SecondaryEndpointKey`; - const defaultAnswer = 'No good match found in knowledge base.'; - const QNAMAKER_EXTENSION_VERSION = 'latest'; + // add web config for websites + const primaryEndpointKey = `${qnaMakerWebAppName}-PrimaryEndpointKey`; + const secondaryEndpointKey = `${qnaMakerWebAppName}-SecondaryEndpointKey`; + const defaultAnswer = 'No good match found in knowledge base.'; + const QNAMAKER_EXTENSION_VERSION = 'latest'; - const azureSearchAdminKey = (await searchManagementClient.adminKeys.get(resourceGroupName, qnaMakerSearchName)) - .primaryKey; + const azureSearchAdminKey = ( + await searchManagementClient.adminKeys.get(resourceGroupName, qnaMakerSearchName) + ).primaryKey; - // if app insights is included, set this up too - let userAppInsightsAppId, userAppInsightsKey, userAppInsightsName; - if (skus.appinsights) { - // deploy or update exisiting app insights component - const applicationInsightsManagementClient = new ApplicationInsightsManagementClient( - tokenCredentials, - subscriptionId - ); - await applicationInsightsManagementClient.components.createOrUpdate(resourceGroupName, resourceGroupName, { - location: region, - applicationType: 'web', - kind: 'web', - }); + // if app insights is included, set this up too + let userAppInsightsAppId, userAppInsightsKey, userAppInsightsName; + if (skus.appinsights) { + // deploy or update exisiting app insights component + const applicationInsightsManagementClient = new ApplicationInsightsManagementClient( + tokenCredentials, + subscriptionId, + ); + await applicationInsightsManagementClient.components.createOrUpdate(resourceGroupName, resourceGroupName, { + location: region, + applicationType: 'web', + kind: 'web', + }); - const appInsightsComponent = await applicationInsightsManagementClient.components.get( - resourceGroupName, - resourceGroupName - ); - userAppInsightsKey = appInsightsComponent.instrumentationKey; - userAppInsightsName = resourceGroupName; - userAppInsightsAppId = appInsightsComponent.appId; - } + const appInsightsComponent = await applicationInsightsManagementClient.components.get( + resourceGroupName, + resourceGroupName, + ); + userAppInsightsKey = appInsightsComponent.instrumentationKey; + userAppInsightsName = resourceGroupName; + userAppInsightsAppId = appInsightsComponent.appId; + } - // deploy qna host webapp - const webAppResult = await webSiteManagementClient.webApps.createOrUpdate( - resourceGroupName, - qnaMakerWebAppName, - { - name: qnaMakerWebAppName, - serverFarmId: resourceGroupName, - location: region, - siteConfig: { - cors: { - allowedOrigins: ['*'], - }, - appSettings: [ - { - name: 'AzureSearchName', - value: qnaMakerSearchName, - }, - { - name: 'AzureSearchAdminKey', - value: azureSearchAdminKey, - }, - { - name: 'UserAppInsightsKey', - value: userAppInsightsKey, - }, - { - name: 'UserAppInsightsName', - value: userAppInsightsName, - }, - { - name: 'UserAppInsightsAppId', - value: userAppInsightsAppId, - }, - { - name: 'PrimaryEndpointKey', - value: primaryEndpointKey, - }, - { - name: 'SecondaryEndpointKey', - value: secondaryEndpointKey, - }, - { - name: 'DefaultAnswer', - value: defaultAnswer, - }, - { - name: 'QNAMAKER_EXTENSION_VERSION', - value: QNAMAKER_EXTENSION_VERSION, + // deploy qna host webapp + const webAppResult = await webSiteManagementClient.webApps.createOrUpdate( + resourceGroupName, + qnaMakerWebAppName, + { + name: qnaMakerWebAppName, + serverFarmId: resourceGroupName, + location: region, + siteConfig: { + cors: { + allowedOrigins: ['*'], }, - ], + appSettings: [ + { + name: 'AzureSearchName', + value: qnaMakerSearchName, + }, + { + name: 'AzureSearchAdminKey', + value: azureSearchAdminKey, + }, + { + name: 'UserAppInsightsKey', + value: userAppInsightsKey, + }, + { + name: 'UserAppInsightsName', + value: userAppInsightsName, + }, + { + name: 'UserAppInsightsAppId', + value: userAppInsightsAppId, + }, + { + name: 'PrimaryEndpointKey', + value: primaryEndpointKey, + }, + { + name: 'SecondaryEndpointKey', + value: secondaryEndpointKey, + }, + { + name: 'DefaultAnswer', + value: defaultAnswer, + }, + { + name: 'QNAMAKER_EXTENSION_VERSION', + value: QNAMAKER_EXTENSION_VERSION, + }, + ], + }, + enabled: true, }, - enabled: true, - } - ); + ); - if (!webAppResult?.hostNames?.length) { - throw new Error('App service creation failed to return host name.'); - } + if (!webAppResult?.hostNames?.length) { + throw new Error('App service creation failed to return host name.'); + } - // Create qna account - const cognitiveServicesManagementClient = new CognitiveServicesManagementClient( - tokenCredentials, - subscriptionId - ); - await cognitiveServicesManagementClient.accounts.create(resourceGroupName, qnaMakerServiceName, { - kind: 'QnAMaker', - sku: skus.qna, - location: region, - properties: { - apiProperties: { - qnaRuntimeEndpoint: `https://${webAppResult.hostNames[0]}`, + // Create qna account + const cognitiveServicesManagementClient = new CognitiveServicesManagementClient( + tokenCredentials, + subscriptionId, + ); + await cognitiveServicesManagementClient.accounts.create(resourceGroupName, qnaMakerServiceName, { + kind: 'QnAMaker', + sku: skus.qna, + location: region, + properties: { + apiProperties: { + qnaRuntimeEndpoint: `https://${webAppResult.hostNames[0]}`, + }, }, - }, - }); + }); - const keys = await cognitiveServicesManagementClient.accounts.listKeys(resourceGroupName, qnaMakerServiceName); - if (!keys?.key1) { - throw new Error('No key found for newly created authoring resource'); - } else { - const endpointKey = await fetchEndpointKey(projectId, keys.key1); + const keys = await cognitiveServicesManagementClient.accounts.listKeys( + resourceGroupName, + qnaMakerServiceName, + ); + if (!keys?.key1) { + throw new Error('No key found for newly created authoring resource'); + } else { + const endpointKey = await fetchEndpointKey(projectId, keys.key1); - const dispatcher = await snapshot.getPromise(dispatcherState); - const currentSettings = await snapshot.getPromise(settingsState(projectId)); + const dispatcher = await snapshot.getPromise(dispatcherState); + const currentSettings = await snapshot.getPromise(settingsState(projectId)); - dispatcher.setSettings(projectId, { - ...currentSettings, - qna: { - ...currentSettings.qna, - subscriptionKey: keys.key1, - endpointKey: endpointKey, - }, - }); - settingStorage.setField(projectId, 'qna.endpointKey', endpointKey); + dispatcher.setSettings(projectId, { + ...currentSettings, + qna: { + ...currentSettings.qna, + subscriptionKey: keys.key1, + endpointKey: endpointKey, + }, + }); + settingStorage.setField(projectId, 'qna.endpointKey', endpointKey); - TelemetryClient.track('SettingsGetKeysCreateNewResourceCompleted', { - subscriptionId, - region, - createNewResourceGroup: false, - resourceType: 'QnA Maker', - }); + TelemetryClient.track('SettingsGetKeysCreateNewResourceCompleted', { + subscriptionId, + region, + createNewResourceGroup: false, + resourceType: 'QnA Maker', + }); - deleteNotificationInternal(callbackHelpers, notification.id); - const timeElapsed = Math.floor((new Date().getTime() - startTime) / (60 * 1000)); - const completedNotification = createNotification(getCompletedQNANotificationCardProps({ time: timeElapsed })); - addNotificationInternal(callbackHelpers, completedNotification); + deleteNotificationInternal(callbackHelpers, notification.id); + const timeElapsed = Math.floor((new Date().getTime() - startTime) / (60 * 1000)); + const completedNotification = createNotification( + getCompletedQNANotificationCardProps({ time: timeElapsed }), + ); + addNotificationInternal(callbackHelpers, completedNotification); + } + } catch (error) { + if (notification) deleteNotificationInternal(callbackHelpers, notification.id); + setError(callbackHelpers, error); } - } catch (error) { - if (notification) deleteNotificationInternal(callbackHelpers, notification.id); - setError(callbackHelpers, error); - } - } + }, ); return { createQNA }; diff --git a/Composer/packages/client/src/recoilModel/dispatchers/publisher.ts b/Composer/packages/client/src/recoilModel/dispatchers/publisher.ts index 64524c5ad4..f96070898f 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/publisher.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/publisher.ts @@ -96,7 +96,7 @@ export const publisherDispatcher = () => { callbackHelpers: CallbackInterface, projectId: string, target: any, - data: PublishResult + data: PublishResult, ) => { if (data == null) return; const { set, snapshot } = callbackHelpers; @@ -196,42 +196,37 @@ export const publisherDispatcher = () => { }); const publishToTarget = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - projectId: string, - target: PublishTarget, - metadata: any, - sensitiveSettings, - token = '' - ) => { - try { - const { snapshot } = callbackHelpers; - const dialogs = await snapshot.getPromise(dialogsWithLuProviderSelectorFamily(projectId)); - const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const referredLuFiles = luUtil.checkLuisBuild(luFiles, dialogs); - const referredQnaFiles = qnaUtil.checkQnaBuild(qnaFiles, dialogs); - const response = await httpClient.post(`/publish/${projectId}/publish/${target.name}`, { - publishTarget: target, - accessToken: token, - metadata: { - ...metadata, - luResources: referredLuFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), - qnaResources: referredQnaFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), - }, - sensitiveSettings, - }); + (callbackHelpers: CallbackInterface) => + async (projectId: string, target: PublishTarget, metadata: any, sensitiveSettings, token = '') => { + try { + const { snapshot } = callbackHelpers; + const dialogs = await snapshot.getPromise(dialogsWithLuProviderSelectorFamily(projectId)); + const luFiles = await snapshot.getPromise(luFilesSelectorFamily(projectId)); + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const referredLuFiles = luUtil.checkLuisBuild(luFiles, dialogs); + const referredQnaFiles = qnaUtil.checkQnaBuild(qnaFiles, dialogs); + const response = await httpClient.post(`/publish/${projectId}/publish/${target.name}`, { + publishTarget: target, + accessToken: token, + metadata: { + ...metadata, + luResources: referredLuFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), + qnaResources: referredQnaFiles.map((file) => ({ id: file.id, isEmpty: file.empty })), + }, + sensitiveSettings, + }); - // add job id to storage - const publishJobIds = publishStorage.get('jobIds') || {}; - publishJobIds[`${projectId}-${target.name}`] = response.data.id; - publishStorage.set('jobIds', publishJobIds); + // add job id to storage + const publishJobIds = publishStorage.get('jobIds') || {}; + publishJobIds[`${projectId}-${target.name}`] = response.data.id; + publishStorage.set('jobIds', publishJobIds); - await publishSuccess(callbackHelpers, projectId, response.data, target); - } catch (err) { - // special case to handle dotnet issues - await publishFailure(callbackHelpers, Text.CONNECTBOTFAILURE, err.response?.data, target, projectId); - } - } + await publishSuccess(callbackHelpers, projectId, response.data, target); + } catch (err) { + // special case to handle dotnet issues + await publishFailure(callbackHelpers, Text.CONNECTBOTFAILURE, err.response?.data, target, projectId); + } + }, ); const rollbackToVersion = useRecoilCallback( @@ -245,14 +240,14 @@ export const publisherDispatcher = () => { } catch (err) { await publishFailure(callbackHelpers, Text.CONNECTBOTFAILURE, err.response.data, target, projectId); } - } + }, ); // get bot status from target publisher const getPublishStatusV2 = useRecoilCallback( (callbackHelpers: CallbackInterface) => async (projectId: string, target: any, response: any) => { updatePublishStatus(callbackHelpers, projectId, target, response?.data); - } + }, ); // get bot status from target publisher @@ -263,14 +258,14 @@ export const publisherDispatcher = () => { jobId ?? (publishStorage.get('jobIds') ? publishStorage.get('jobIds')[`${projectId}-${target.name}`] : undefined); const response = await httpClient.get( - `/publish/${projectId}/status/${target.name}${currentJobId ? '/' + currentJobId : ''}` + `/publish/${projectId}/status/${target.name}${currentJobId ? '/' + currentJobId : ''}`, ); updatePublishStatus(callbackHelpers, projectId, target, response.data); } catch (err) { updatePublishStatus(callbackHelpers, projectId, target, err.response?.data); } - } + }, ); const getPublishHistory = useRecoilCallback( (callbackHelpers: CallbackInterface) => async (projectId: string, target: any) => { @@ -287,30 +282,31 @@ export const publisherDispatcher = () => { //TODO: error logMessage(callbackHelpers, err.response?.data?.message || err.message); } - } + }, ); // only support local publish const stopPublishBot = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async (projectId: string, target: any = defaultPublishConfig) => { - const { set, snapshot } = callbackHelpers; - try { - const currentBotStatus = await snapshot.getPromise(botStatusState(projectId)); - // Change to "Stopping" status only if the Bot is not in a failed state or inactive state - if (currentBotStatus !== BotStatus.failed && currentBotStatus !== BotStatus.inactive) { - set(botStatusState(projectId), BotStatus.stopping); - } + (callbackHelpers: CallbackInterface) => + async (projectId: string, target: any = defaultPublishConfig) => { + const { set, snapshot } = callbackHelpers; + try { + const currentBotStatus = await snapshot.getPromise(botStatusState(projectId)); + // Change to "Stopping" status only if the Bot is not in a failed state or inactive state + if (currentBotStatus !== BotStatus.failed && currentBotStatus !== BotStatus.inactive) { + set(botStatusState(projectId), BotStatus.stopping); + } - await httpClient.post(`/publish/${projectId}/stopPublish/${target.name}`); + await httpClient.post(`/publish/${projectId}/stopPublish/${target.name}`); - if (currentBotStatus !== BotStatus.failed) { - set(botStatusState(projectId), BotStatus.inactive); + if (currentBotStatus !== BotStatus.failed) { + set(botStatusState(projectId), BotStatus.inactive); + } + } catch (err) { + setError(callbackHelpers, err); + logMessage(callbackHelpers, err.message); } - } catch (err) { - setError(callbackHelpers, err); - logMessage(callbackHelpers, err.message); - } - } + }, ); const resetBotRuntimeLog = useRecoilCallback((callbackHelpers: CallbackInterface) => async (projectId: string) => { @@ -328,7 +324,7 @@ export const publisherDispatcher = () => { botEndpoints[projectId]?.url || defaultBotEndpoint, settings.MicrosoftAppId && settings.MicrosoftAppPassword ? { MicrosoftAppId: settings.MicrosoftAppId, MicrosoftAppPassword: settings.MicrosoftAppPassword } - : { MicrosoftAppPassword: '', MicrosoftAppId: '' } + : { MicrosoftAppPassword: '', MicrosoftAppId: '' }, ); } catch (err) { setError(callbackHelpers, err); @@ -345,7 +341,7 @@ export const publisherDispatcher = () => { setError(callbackHelpers, err); logMessage(callbackHelpers, err.message); } - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/qna.ts b/Composer/packages/client/src/recoilModel/dispatchers/qna.ts index 3d0dce65a0..faebe11711 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/qna.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/qna.ts @@ -46,14 +46,14 @@ const updateQnaFiles = ( deletes?: QnAFile[]; updates?: QnAFile[]; }, - getLatestFile?: (current: QnAFile, changed: QnAFile) => QnAFile + getLatestFile?: (current: QnAFile, changed: QnAFile) => QnAFile, ) => { const { updates, adds, deletes } = changes; // updates updates?.forEach((qnaFile) => { set(qnaFileState({ projectId, qnaFileId: qnaFile.id }), (oldQnaFile) => - getLatestFile ? getLatestFile(oldQnaFile, qnaFile) : qnaFile + getLatestFile ? getLatestFile(oldQnaFile, qnaFile) : qnaFile, ); }); @@ -68,7 +68,7 @@ const updateQnaFiles = ( const addedIds = adds.map((file) => file.id); adds.forEach((qnaFile) => { set(qnaFileState({ projectId, qnaFileId: qnaFile.id }), (oldQnaFile) => - getLatestFile ? getLatestFile(oldQnaFile, qnaFile) : qnaFile + getLatestFile ? getLatestFile(oldQnaFile, qnaFile) : qnaFile, ); }); set(qnaFileIdsState(projectId), (ids) => [...ids, ...addedIds]); @@ -77,7 +77,7 @@ const updateQnaFiles = ( export const updateQnAFileState = async ( callbackHelpers: CallbackInterface, - { id, content, projectId }: { id: string; content: string; projectId: string } + { id, content, projectId }: { id: string; content: string; projectId: string }, ) => { const updatedQnAFile = (await qnaWorker.parse(id, content)) as QnAFile; @@ -86,7 +86,7 @@ export const updateQnAFileState = async ( export const createQnAFileState = async ( callbackHelpers: CallbackInterface, - { id, content, projectId }: { id: string; content: string; projectId: string } + { id, content, projectId }: { id: string; content: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -111,7 +111,7 @@ export const createQnAFileState = async ( export const createSourceQnAFileByLocaleState = async ( callbackHelpers: CallbackInterface, - { id, content, locale, projectId }: { id: string; content: string; locale: string; projectId: string } + { id, content, locale, projectId }: { id: string; content: string; locale: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -131,7 +131,7 @@ export const createSourceQnAFileByLocaleState = async ( */ export const removeQnAFileState = async ( callbackHelpers: CallbackInterface, - { id, projectId }: { id: string; projectId: string } + { id, projectId }: { id: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -153,7 +153,7 @@ export const removeQnAFileState = async ( export const createKBFileState = async ( callbackHelpers: CallbackInterface, - { id, name, content, projectId }: { id: string; name: string; content: string; projectId: string } + { id, name, content, projectId }: { id: string; name: string; content: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -183,7 +183,7 @@ export const createKBFileByLocaleState = async ( content, locale, projectId, - }: { id: string; name: string; content: string; locale: string; projectId: string } + }: { id: string; name: string; content: string; locale: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const allQnAFiles: QnAFile[] = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -206,7 +206,7 @@ export const createKBFileByLocaleState = async ( const updateDialogQnARef = ( callbackHelpers: CallbackInterface, - params: { id: string; name: string; projectId: string; qnaFiles: QnAFile[] } + params: { id: string; name: string; projectId: string; qnaFiles: QnAFile[] }, ) => { const { id, name, projectId, qnaFiles } = params; @@ -226,7 +226,7 @@ const updateDialogQnARef = ( export const removeKBFileState = async ( callbackHelpers: CallbackInterface, - { id, projectId }: { id: string; projectId: string } + { id, projectId }: { id: string; projectId: string }, ) => { const { snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -248,7 +248,7 @@ export const removeKBFileState = async ( export const renameKBFileState = async ( callbackHelpers: CallbackInterface, - { id, name, projectId }: { id: string; name: string; projectId: string } + { id, name, projectId }: { id: string; name: string; projectId: string }, ) => { const { set, snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -283,458 +283,456 @@ export const renameKBFileState = async ( export const qnaDispatcher = () => { const createQnADialogBegin = useRecoilCallback( - ({ set }: CallbackInterface) => async ({ - onComplete, - projectId, - dialogId, - }: { - onComplete?: () => void; - projectId: string; - dialogId: string; - }) => { - set(createQnAOnState, { projectId, dialogId }); - set(showCreateQnADialogState(projectId), true); - set(onCreateQnADialogCompleteState(projectId), { func: onComplete }); - } + ({ set }: CallbackInterface) => + async ({ onComplete, projectId, dialogId }: { onComplete?: () => void; projectId: string; dialogId: string }) => { + set(createQnAOnState, { projectId, dialogId }); + set(showCreateQnADialogState(projectId), true); + set(onCreateQnADialogCompleteState(projectId), { func: onComplete }); + }, ); const createQnADialogCancel = useRecoilCallback( - ({ set }: CallbackInterface) => ({ projectId }: { projectId: string }) => { - set(createQnAOnState, { projectId: '', dialogId: '' }); - set(showCreateQnADialogState(projectId), false); - set(onCreateQnADialogCompleteState(projectId), { func: undefined }); - } + ({ set }: CallbackInterface) => + ({ projectId }: { projectId: string }) => { + set(createQnAOnState, { projectId: '', dialogId: '' }); + set(showCreateQnADialogState(projectId), false); + set(onCreateQnADialogCompleteState(projectId), { func: undefined }); + }, ); const createQnADialogSuccess = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async ({ projectId }: { projectId: string }) => { - const onCreateQnAFromUrlDialogComplete = (await snapshot.getPromise(onCreateQnADialogCompleteState(projectId))) - .func; - if (typeof onCreateQnAFromUrlDialogComplete === 'function') { - onCreateQnAFromUrlDialogComplete(); - } - set(showCreateQnADialogState(projectId), false); - set(onCreateQnADialogCompleteState(projectId), { func: undefined }); - } + ({ set, snapshot }: CallbackInterface) => + async ({ projectId }: { projectId: string }) => { + const onCreateQnAFromUrlDialogComplete = (await snapshot.getPromise(onCreateQnADialogCompleteState(projectId))) + .func; + if (typeof onCreateQnAFromUrlDialogComplete === 'function') { + onCreateQnAFromUrlDialogComplete(); + } + set(showCreateQnADialogState(projectId), false); + set(onCreateQnADialogCompleteState(projectId), { func: undefined }); + }, ); const updateQnAFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, //qna file id: dialogName.locale or kbName.source.locale - content, - projectId, - }: { - id: string; - content: string; - projectId: string; - }) => { - await updateQnAFileState(callbackHelpers, { id, content, projectId }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, //qna file id: dialogName.locale or kbName.source.locale + content, + projectId, + }: { + id: string; + content: string; + projectId: string; + }) => { + await updateQnAFileState(callbackHelpers, { id, content, projectId }); + }, ); const updateContainerQnAFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - content, - projectId, - }: { - id: string; - content: string; - projectId: string; - }) => { - const updatedQnAFile = (await qnaWorker.parse(id, content)) as QnAFile; - - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedQnAFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, content, projectId }: { id: string; content: string; projectId: string }) => { + const updatedQnAFile = (await qnaWorker.parse(id, content)) as QnAFile; + + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedQnAFile] }); + }, ); const createQnAFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - content, - projectId, - }: { - id: string; - locale: string; - content: string; - projectId: string; - filteredLocales: string[]; - }) => { - await createQnAFileState(callbackHelpers, { id, content, projectId }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + content, + projectId, + }: { + id: string; + locale: string; + content: string; + projectId: string; + filteredLocales: string[]; + }) => { + await createQnAFileState(callbackHelpers, { id, content, projectId }); + }, ); const removeQnAFile = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ id, projectId }: { id: string; projectId: string }) => { - await removeQnAFileState(callbackHelpers, { id, projectId }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, projectId }: { id: string; projectId: string }) => { + await removeQnAFileState(callbackHelpers, { id, projectId }); + }, ); const removeQnAFileOnAllLocales = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ id, projectId }: { id: string; projectId: string }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - - const targetQnAFiles = qnaFiles.filter((item) => getBaseName(item.id) === id); - if (!targetQnAFiles || targetQnAFiles.length === 0) { - throw new Error(`remove qna files ${id} not exist`); - } - - targetQnAFiles.forEach((file) => { - qnaFileStatusStorage.removeFileStatus(projectId, file.id); - }); - updateQnaFiles(callbackHelpers, projectId, { deletes: [...targetQnAFiles] }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, projectId }: { id: string; projectId: string }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + + const targetQnAFiles = qnaFiles.filter((item) => getBaseName(item.id) === id); + if (!targetQnAFiles || targetQnAFiles.length === 0) { + throw new Error(`remove qna files ${id} not exist`); + } + + targetQnAFiles.forEach((file) => { + qnaFileStatusStorage.removeFileStatus(projectId, file.id); + }); + updateQnaFiles(callbackHelpers, projectId, { deletes: [...targetQnAFiles] }); + }, ); const dismissCreateQnAModal = useRecoilCallback( - ({ set }: CallbackInterface) => async ({ projectId }: { projectId: string }) => { - set(showCreateQnADialogState(projectId), false); - } + ({ set }: CallbackInterface) => + async ({ projectId }: { projectId: string }) => { + set(showCreateQnADialogState(projectId), false); + }, ); const importQnAFromUrl = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - containerId, - dialogId, - url, - multiTurn, - projectId, - }: { - containerId: string; // qna container file id: {name}.source.{locale} - dialogId: string; - url: string; - multiTurn: boolean; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const notification = createNotification(getQnaPendingNotification(url)); - addNotificationInternal(callbackHelpers, notification); - - let response; - try { - response = await httpClient.get(`/utilities/qna/parse`, { - params: { url: encodeURIComponent(url), multiTurn }, - }); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - const notification = createNotification( - getQnaSuccessNotification(() => { - navigateTo( - rootBotProjectId === projectId - ? `/bot/${projectId}/knowledge-base/${dialogId}` - : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${dialogId}` - ); - deleteNotificationInternal(callbackHelpers, notification.id); - }) - ); + (callbackHelpers: CallbackInterface) => + async ({ + containerId, + dialogId, + url, + multiTurn, + projectId, + }: { + containerId: string; // qna container file id: {name}.source.{locale} + dialogId: string; + url: string; + multiTurn: boolean; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const notification = createNotification(getQnaPendingNotification(url)); addNotificationInternal(callbackHelpers, notification); - } catch (err) { - addNotificationInternal( - callbackHelpers, - createNotification(getQnaFailedNotification(err.response?.data?.message)) - ); - TelemetryClient.track('UpdateKnowledgeBaseError', { error: err.response?.data?.message }); - return; - } finally { - deleteNotificationInternal(callbackHelpers, notification.id); - } - const contentForSourceQnA = `> !# @source.url=${url} + let response; + try { + response = await httpClient.get(`/utilities/qna/parse`, { + params: { url: encodeURIComponent(url), multiTurn }, + }); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + const notification = createNotification( + getQnaSuccessNotification(() => { + navigateTo( + rootBotProjectId === projectId + ? `/bot/${projectId}/knowledge-base/${dialogId}` + : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${dialogId}`, + ); + deleteNotificationInternal(callbackHelpers, notification.id); + }), + ); + addNotificationInternal(callbackHelpers, notification); + } catch (err) { + addNotificationInternal( + callbackHelpers, + createNotification(getQnaFailedNotification(err.response?.data?.message)), + ); + TelemetryClient.track('UpdateKnowledgeBaseError', { error: err.response?.data?.message }); + return; + } finally { + deleteNotificationInternal(callbackHelpers, notification.id); + } + + const contentForSourceQnA = `> !# @source.url=${url} > !# @source.multiTurn=${multiTurn} ${response.data} `; - await updateContainerQnAFile({ id: containerId, content: contentForSourceQnA, projectId }); - } + await updateContainerQnAFile({ id: containerId, content: contentForSourceQnA, projectId }); + }, ); const createQnAKBFromUrl = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - name, - url, - locale, - multiTurn, - projectId, - }: { - id: string; // dialogId.locale - name: string; - url: string; - locale: string; - multiTurn: boolean; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - await dismissCreateQnAModal({ projectId }); - const notification = createNotification(getQnaPendingNotification(url)); - addNotificationInternal(callbackHelpers, notification); - - let response; - try { - response = await httpClient.get(`/utilities/qna/parse`, { - params: { url: encodeURIComponent(url), multiTurn }, - }); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - const notification = createNotification( - getQnaSuccessNotification(() => { - navigateTo( - rootBotProjectId === projectId - ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` - : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}` - ); - deleteNotificationInternal(callbackHelpers, notification.id); - }) - ); + (callbackHelpers: CallbackInterface) => + async ({ + id, + name, + url, + locale, + multiTurn, + projectId, + }: { + id: string; // dialogId.locale + name: string; + url: string; + locale: string; + multiTurn: boolean; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + await dismissCreateQnAModal({ projectId }); + const notification = createNotification(getQnaPendingNotification(url)); addNotificationInternal(callbackHelpers, notification); - } catch (err) { - addNotificationInternal( - callbackHelpers, - createNotification(getQnaFailedNotification(err.response?.data?.message)) - ); - createQnADialogCancel({ projectId }); - TelemetryClient.track('AddNewKnowledgeBaseError', { error: err.response?.data?.message }); - return; - } finally { - deleteNotificationInternal(callbackHelpers, notification.id); - } - - const contentForSourceQnA = `> !# @source.url=${url} + + let response; + try { + response = await httpClient.get(`/utilities/qna/parse`, { + params: { url: encodeURIComponent(url), multiTurn }, + }); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + const notification = createNotification( + getQnaSuccessNotification(() => { + navigateTo( + rootBotProjectId === projectId + ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` + : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}`, + ); + deleteNotificationInternal(callbackHelpers, notification.id); + }), + ); + addNotificationInternal(callbackHelpers, notification); + } catch (err) { + addNotificationInternal( + callbackHelpers, + createNotification(getQnaFailedNotification(err.response?.data?.message)), + ); + createQnADialogCancel({ projectId }); + TelemetryClient.track('AddNewKnowledgeBaseError', { error: err.response?.data?.message }); + return; + } finally { + deleteNotificationInternal(callbackHelpers, notification.id); + } + + const contentForSourceQnA = `> !# @source.url=${url} > !# @source.multiTurn=${multiTurn} ${response.data} `; - await createKBFileByLocaleState(callbackHelpers, { - id, - name, - content: contentForSourceQnA, - locale, - projectId, - }); + await createKBFileByLocaleState(callbackHelpers, { + id, + name, + content: contentForSourceQnA, + locale, + projectId, + }); - await createQnADialogSuccess({ projectId }); - } + await createQnADialogSuccess({ projectId }); + }, ); const createQnAKBsFromUrls = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - name, - urls, - locales, - multiTurn, - projectId, - }: { - id: string; // dialogId.locale - name: string; - urls: string[]; - locales: string[]; - multiTurn: boolean; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - await dismissCreateQnAModal({ projectId }); - const pairs: { locale: string; content: string }[] = locales.map((locale) => { - return { locale, content: '' }; - }); - await Promise.all( - urls.map(async (url, index) => { - const notification = createNotification(getQnaPendingNotification(url)); - addNotificationInternal(callbackHelpers, notification); - - let response; - try { - response = await httpClient.get(`/utilities/qna/parse`, { - params: { url: encodeURIComponent(url), multiTurn }, - }); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - const notification = createNotification( - getQnaSuccessNotification(() => { - navigateTo( - rootBotProjectId === projectId - ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` - : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}` - ); - deleteNotificationInternal(callbackHelpers, notification.id); - }) - ); + (callbackHelpers: CallbackInterface) => + async ({ + id, + name, + urls, + locales, + multiTurn, + projectId, + }: { + id: string; // dialogId.locale + name: string; + urls: string[]; + locales: string[]; + multiTurn: boolean; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + await dismissCreateQnAModal({ projectId }); + const pairs: { locale: string; content: string }[] = locales.map((locale) => { + return { locale, content: '' }; + }); + await Promise.all( + urls.map(async (url, index) => { + const notification = createNotification(getQnaPendingNotification(url)); addNotificationInternal(callbackHelpers, notification); - } catch (err) { - addNotificationInternal( - callbackHelpers, - createNotification(getQnaFailedNotification(err.response?.data?.message)) - ); - createQnADialogCancel({ projectId }); - TelemetryClient.track('AddNewKnowledgeBaseError', { error: err.response?.data?.message }); - return; - } finally { - deleteNotificationInternal(callbackHelpers, notification.id); - } + let response; + try { + response = await httpClient.get(`/utilities/qna/parse`, { + params: { url: encodeURIComponent(url), multiTurn }, + }); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + const notification = createNotification( + getQnaSuccessNotification(() => { + navigateTo( + rootBotProjectId === projectId + ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` + : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}`, + ); + deleteNotificationInternal(callbackHelpers, notification.id); + }), + ); + addNotificationInternal(callbackHelpers, notification); + } catch (err) { + addNotificationInternal( + callbackHelpers, + createNotification(getQnaFailedNotification(err.response?.data?.message)), + ); + createQnADialogCancel({ projectId }); + TelemetryClient.track('AddNewKnowledgeBaseError', { error: err.response?.data?.message }); + + return; + } finally { + deleteNotificationInternal(callbackHelpers, notification.id); + } - const contentForSourceQnA = `> !# @source.url=${url} + const contentForSourceQnA = `> !# @source.url=${url} > !# @source.multiTurn=${multiTurn} ${response.data} `; - pairs[index].content = contentForSourceQnA; - }) - ); + pairs[index].content = contentForSourceQnA; + }), + ); - const { languages } = await snapshot.getPromise(settingsState(projectId)); + const { languages } = await snapshot.getPromise(settingsState(projectId)); - const toBeCopiedLocales = languages.filter((l) => { - return !locales.includes(l); - }); - toBeCopiedLocales.forEach((locale) => { - pairs.push({ locale, content: pairs[0].content }); - }); + const toBeCopiedLocales = languages.filter((l) => { + return !locales.includes(l); + }); + toBeCopiedLocales.forEach((locale) => { + pairs.push({ locale, content: pairs[0].content }); + }); + + await createKBFileOnLocalesState(callbackHelpers, { + id, + name, + data: pairs, + projectId, + }); + await createQnADialogSuccess({ projectId }); + }, + ); - await createKBFileOnLocalesState(callbackHelpers, { + const createQnAKBFromQnAMaker = useRecoilCallback( + (callbackHelpers: CallbackInterface) => + async ({ id, name, - data: pairs, + endpoint, + locales, + kbId, + kbName, + subscriptionKey, projectId, - }); - await createQnADialogSuccess({ projectId }); - } - ); + }: { + id: string; // dialogId.locale + name: string; + endpoint: string; + locales: string[]; + kbId: string; + kbName: string; + subscriptionKey: string; + projectId: string; + }) => { + const { snapshot, set } = callbackHelpers; + await dismissCreateQnAModal({ projectId }); + const notification = createNotification(getQnaImportPendingNotification(kbName)); + addNotificationInternal(callbackHelpers, notification); - const createQnAKBFromQnAMaker = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - name, - endpoint, - locales, - kbId, - kbName, - subscriptionKey, - projectId, - }: { - id: string; // dialogId.locale - name: string; - endpoint: string; - locales: string[]; - kbId: string; - kbName: string; - subscriptionKey: string; - projectId: string; - }) => { - const { snapshot, set } = callbackHelpers; - await dismissCreateQnAModal({ projectId }); - const notification = createNotification(getQnaImportPendingNotification(kbName)); - addNotificationInternal(callbackHelpers, notification); - - let response; - try { - response = await httpClient.post(`/utilities/qna/import`, { - endpoint: encodeURIComponent(endpoint), - kbId, - subscriptionKey, - }); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - const currentLocale = await snapshot.getPromise(localeState(projectId)); - const notification = createNotification( - getQnaSuccessNotification(() => { - // if created locale is not current authoring locale, switch to target locale. - if (currentLocale !== locales[0]) { - set(localeState(projectId), locales[0]); - } + let response; + try { + response = await httpClient.post(`/utilities/qna/import`, { + endpoint: encodeURIComponent(endpoint), + kbId, + subscriptionKey, + }); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + const currentLocale = await snapshot.getPromise(localeState(projectId)); + const notification = createNotification( + getQnaSuccessNotification(() => { + // if created locale is not current authoring locale, switch to target locale. + if (currentLocale !== locales[0]) { + set(localeState(projectId), locales[0]); + } + + navigateTo( + rootBotProjectId === projectId + ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` + : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}`, + ); + deleteNotificationInternal(callbackHelpers, notification.id); + }), + ); + addNotificationInternal(callbackHelpers, notification); + } catch (err) { + addNotificationInternal( + callbackHelpers, + createNotification(getQnaFailedNotification(err.response?.data?.message)), + ); + createQnADialogCancel({ projectId }); + TelemetryClient.track('AddNewKnowledgeBaseError', { error: err.response?.data?.message }); + return; + } finally { + deleteNotificationInternal(callbackHelpers, notification.id); + } - navigateTo( - rootBotProjectId === projectId - ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` - : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}` - ); - deleteNotificationInternal(callbackHelpers, notification.id); - }) - ); - addNotificationInternal(callbackHelpers, notification); - } catch (err) { - addNotificationInternal( - callbackHelpers, - createNotification(getQnaFailedNotification(err.response?.data?.message)) - ); - createQnADialogCancel({ projectId }); - TelemetryClient.track('AddNewKnowledgeBaseError', { error: err.response?.data?.message }); - return; - } finally { - deleteNotificationInternal(callbackHelpers, notification.id); - } - - const contentForSourceQnA = `> !# @source.endpoint=${endpoint} + const contentForSourceQnA = `> !# @source.endpoint=${endpoint} > !# @source.kbId=${kbId} ${response.data} `; - for (const locale of locales) { - await createKBFileByLocaleState(callbackHelpers, { - id, - name, - content: contentForSourceQnA, - locale, - projectId, - }); - } + for (const locale of locales) { + await createKBFileByLocaleState(callbackHelpers, { + id, + name, + content: contentForSourceQnA, + locale, + projectId, + }); + } - await createQnADialogSuccess({ projectId }); - } + await createQnADialogSuccess({ projectId }); + }, ); const importQnAFromQnAMaker = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - containerId, - dialogId, - projectId, - endpoint, - subscriptionKey, - kbId, - kbName, - }: { - containerId: string; // qna container file id: {name}.source.{locale} - dialogId: string; - projectId: string; - endpoint: string; - subscriptionKey: string; - kbId: string; - kbName: string; - }) => { - const { snapshot } = callbackHelpers; - const notification = createNotification(getQnaImportPendingNotification(kbName)); - addNotificationInternal(callbackHelpers, notification); - let response; - try { - response = await httpClient.post(`/utilities/qna/import`, { - endpoint: encodeURIComponent(endpoint), - subscriptionKey, - kbId, - }); - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - const notification = createNotification( - getQnaSuccessNotification(() => { - navigateTo( - rootBotProjectId === projectId - ? `/bot/${projectId}/knowledge-base/${dialogId}` - : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${dialogId}` - ); - deleteNotificationInternal(callbackHelpers, notification.id); - }) - ); + (callbackHelpers: CallbackInterface) => + async ({ + containerId, + dialogId, + projectId, + endpoint, + subscriptionKey, + kbId, + kbName, + }: { + containerId: string; // qna container file id: {name}.source.{locale} + dialogId: string; + projectId: string; + endpoint: string; + subscriptionKey: string; + kbId: string; + kbName: string; + }) => { + const { snapshot } = callbackHelpers; + const notification = createNotification(getQnaImportPendingNotification(kbName)); addNotificationInternal(callbackHelpers, notification); - } catch (err) { - addNotificationInternal( - callbackHelpers, - createNotification(getQnaFailedNotification(err.response?.data?.message)) - ); - TelemetryClient.track('UpdateKnowledgeBaseError', { error: err.response?.data?.message }); - return; - } finally { - deleteNotificationInternal(callbackHelpers, notification.id); - } + let response; + try { + response = await httpClient.post(`/utilities/qna/import`, { + endpoint: encodeURIComponent(endpoint), + subscriptionKey, + kbId, + }); + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + const notification = createNotification( + getQnaSuccessNotification(() => { + navigateTo( + rootBotProjectId === projectId + ? `/bot/${projectId}/knowledge-base/${dialogId}` + : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${dialogId}`, + ); + deleteNotificationInternal(callbackHelpers, notification.id); + }), + ); + addNotificationInternal(callbackHelpers, notification); + } catch (err) { + addNotificationInternal( + callbackHelpers, + createNotification(getQnaFailedNotification(err.response?.data?.message)), + ); + TelemetryClient.track('UpdateKnowledgeBaseError', { error: err.response?.data?.message }); + return; + } finally { + deleteNotificationInternal(callbackHelpers, notification.id); + } - const contentForSourceQnA = `> !# @source.endpoint=${endpoint} + const contentForSourceQnA = `> !# @source.endpoint=${endpoint} > !# @source.kbId=${kbId} ${response.data} `; - await updateContainerQnAFile({ id: containerId, content: contentForSourceQnA, projectId }); - } + await updateContainerQnAFile({ id: containerId, content: contentForSourceQnA, projectId }); + }, ); const createKBFileOnLocalesState = async ( @@ -744,7 +742,7 @@ ${response.data} name, data, projectId, - }: { id: string; name: string; data: { content: string; locale: string }[]; projectId: string } + }: { id: string; name: string; data: { content: string; locale: string }[]; projectId: string }, ) => { const { snapshot } = callbackHelpers; const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); @@ -762,272 +760,245 @@ ${response.data} } const createdQnaFile = (await qnaWorker.parse(createdSourceQnAId, d.content)) as QnAFile; changes.push(createdQnaFile); - }) + }), ); updateQnaFiles(callbackHelpers, projectId, { adds: changes }); }; const createQnAKBFromScratch = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - name, - projectId, - content = '', - }: { - id: string; - name: string; - content?: string; - projectId: string; - }) => { - await dismissCreateQnAModal({ projectId }); - - await createKBFileState(callbackHelpers, { id, name, content, projectId }); - const rootBotProjectId = await callbackHelpers.snapshot.getPromise(rootBotProjectIdSelector); - const notification = createNotification( - getQnaSuccessNotification(() => { - navigateTo( - rootBotProjectId === projectId - ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` - : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}` - ); - deleteNotificationInternal(callbackHelpers, notification.id); - }) - ); - addNotificationInternal(callbackHelpers, notification); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + name, + projectId, + content = '', + }: { + id: string; + name: string; + content?: string; + projectId: string; + }) => { + await dismissCreateQnAModal({ projectId }); + + await createKBFileState(callbackHelpers, { id, name, content, projectId }); + const rootBotProjectId = await callbackHelpers.snapshot.getPromise(rootBotProjectIdSelector); + const notification = createNotification( + getQnaSuccessNotification(() => { + navigateTo( + rootBotProjectId === projectId + ? `/bot/${projectId}/knowledge-base/${getBaseName(id)}` + : `/bot/${rootBotProjectId}/skill/${projectId}/knowledge-base/${getBaseName(id)}`, + ); + deleteNotificationInternal(callbackHelpers, notification.id); + }), + ); + addNotificationInternal(callbackHelpers, notification); + }, ); const updateQnAQuestion = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sectionId, - questionId, - content, - projectId, - }: { - id: string; - sectionId: string; - questionId: string; - content: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.updateQnAQuestion(qnaFile, sectionId, questionId, content); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + sectionId, + questionId, + content, + projectId, + }: { + id: string; + sectionId: string; + questionId: string; + content: string; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.updateQnAQuestion(qnaFile, sectionId, questionId, content); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const updateQnAAnswer = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sectionId, - content, - projectId, - }: { - id: string; - sectionId: string; - content: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.updateQnAAnswer(qnaFile, sectionId, content); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + sectionId, + content, + projectId, + }: { + id: string; + sectionId: string; + content: string; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.updateQnAAnswer(qnaFile, sectionId, content); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const createQnAQuestion = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sectionId, - content, - projectId, - }: { - id: string; - sectionId: string; - content: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.createQnAQuestion(qnaFile, sectionId, content); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + sectionId, + content, + projectId, + }: { + id: string; + sectionId: string; + content: string; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.createQnAQuestion(qnaFile, sectionId, content); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const removeQnAQuestion = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sectionId, - questionId, - projectId, - }: { - id: string; - sectionId: string; - questionId: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.removeQnAQuestion(qnaFile, sectionId, questionId); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + sectionId, + questionId, + projectId, + }: { + id: string; + sectionId: string; + questionId: string; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.removeQnAQuestion(qnaFile, sectionId, questionId); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const createQnAPairs = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - content, - projectId, - }: { - id: string; - content: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - // insert into head, need investigate - const updatedFile = qnaUtil.insertSection(qnaFile, 0, content); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, content, projectId }: { id: string; content: string; projectId: string }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + // insert into head, need investigate + const updatedFile = qnaUtil.insertSection(qnaFile, 0, content); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const removeQnAPairs = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sectionId, - projectId, - }: { - id: string; - sectionId: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.removeSection(qnaFile, sectionId); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, sectionId, projectId }: { id: string; sectionId: string; projectId: string }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.removeSection(qnaFile, sectionId); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const createQnAImport = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sourceId, - projectId, - }: { - id: string; - sourceId: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.addImport(qnaFile, `${sourceId}.qna`); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, sourceId, projectId }: { id: string; sourceId: string; projectId: string }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.addImport(qnaFile, `${sourceId}.qna`); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const removeQnAImport = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sourceId, - projectId, - }: { - id: string; - sourceId: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - const updatedFile = qnaUtil.removeImport(qnaFile, `${sourceId}.qna`); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, sourceId, projectId }: { id: string; sourceId: string; projectId: string }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + const updatedFile = qnaUtil.removeImport(qnaFile, `${sourceId}.qna`); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const removeQnAImportOnAllLocales = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, //dialogName - sourceId, - projectId, - }: { - id: string; - sourceId: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const targetQnaFiles = qnaFiles.filter((f) => getBaseName(f.id) === id); - if (!targetQnaFiles || targetQnaFiles.length === 0) return targetQnaFiles; - - const updatedFiles = targetQnaFiles.map((f) => { - return qnaUtil.removeImport(f, `${sourceId}.qna`); - }); - updateQnaFiles(callbackHelpers, projectId, { updates: [...updatedFiles] }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, //dialogName + sourceId, + projectId, + }: { + id: string; + sourceId: string; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const targetQnaFiles = qnaFiles.filter((f) => getBaseName(f.id) === id); + if (!targetQnaFiles || targetQnaFiles.length === 0) return targetQnaFiles; + + const updatedFiles = targetQnaFiles.map((f) => { + return qnaUtil.removeImport(f, `${sourceId}.qna`); + }); + updateQnaFiles(callbackHelpers, projectId, { updates: [...updatedFiles] }); + }, ); const updateQnAImport = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - sourceId, - newSourceId, - projectId, - }: { - id: string; - sourceId: string; - newSourceId: string; - projectId: string; - }) => { - const { snapshot } = callbackHelpers; - const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); - const qnaFile = qnaFiles.find((temp) => temp.id === id); - if (!qnaFile) return qnaFiles; - - let updatedFile = qnaUtil.removeImport(qnaFile, `${sourceId}.qna`); - updatedFile = qnaUtil.addImport(updatedFile, `${newSourceId}.qna`); - updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); - } + (callbackHelpers: CallbackInterface) => + async ({ + id, + sourceId, + newSourceId, + projectId, + }: { + id: string; + sourceId: string; + newSourceId: string; + projectId: string; + }) => { + const { snapshot } = callbackHelpers; + const qnaFiles = await snapshot.getPromise(qnaFilesSelectorFamily(projectId)); + const qnaFile = qnaFiles.find((temp) => temp.id === id); + if (!qnaFile) return qnaFiles; + + let updatedFile = qnaUtil.removeImport(qnaFile, `${sourceId}.qna`); + updatedFile = qnaUtil.addImport(updatedFile, `${newSourceId}.qna`); + updateQnaFiles(callbackHelpers, projectId, { updates: [updatedFile] }); + }, ); const removeQnAKB = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ id, projectId }: { id: string; projectId: string }) => { - await removeKBFileState(callbackHelpers, { id, projectId }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, projectId }: { id: string; projectId: string }) => { + await removeKBFileState(callbackHelpers, { id, projectId }); + }, ); const renameQnAKB = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ - id, - name, - projectId, - }: { - id: string; - name: string; - projectId: string; - }) => { - await renameKBFileState(callbackHelpers, { id, name, projectId }); - } + (callbackHelpers: CallbackInterface) => + async ({ id, name, projectId }: { id: string; name: string; projectId: string }) => { + await renameKBFileState(callbackHelpers, { id, name, projectId }); + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/recognizers.ts b/Composer/packages/client/src/recoilModel/dispatchers/recognizers.ts index 611436fc4d..a83f878f26 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/recognizers.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/recognizers.ts @@ -19,34 +19,35 @@ const templates = { export const recognizerDispatcher = () => { const updateRecognizer = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async (projectId: string, dialogId: string, kind: LuProviderType) => { - const recognizers = await snapshot.getPromise(recognizersSelectorFamily(projectId)); - - const updates = recognizers.filter( - ({ id, content }) => - id.split('.')[0] === dialogId && LuProviderRecognizer.includes(content.$kind) && content.$kind !== kind - ); - - const mutlilangRecognizer = recognizers.find( - ({ id, content }) => id.split('.')[0] === dialogId && content.$kind === SDKKinds.MultiLanguageRecognizer - ); - - if (mutlilangRecognizer) { - const { id, content } = mutlilangRecognizer; - const key = kind === SDKKinds.OrchestratorRecognizer ? 'ORCHESTRATOR' : 'LUIS'; - set(recognizerState({ projectId, id }), { - content: { ...content, id: `${key}_${id.replace('.lu.dialog', '')}` }, - id, + ({ set, snapshot }: CallbackInterface) => + async (projectId: string, dialogId: string, kind: LuProviderType) => { + const recognizers = await snapshot.getPromise(recognizersSelectorFamily(projectId)); + + const updates = recognizers.filter( + ({ id, content }) => + id.split('.')[0] === dialogId && LuProviderRecognizer.includes(content.$kind) && content.$kind !== kind, + ); + + const mutlilangRecognizer = recognizers.find( + ({ id, content }) => id.split('.')[0] === dialogId && content.$kind === SDKKinds.MultiLanguageRecognizer, + ); + + if (mutlilangRecognizer) { + const { id, content } = mutlilangRecognizer; + const key = kind === SDKKinds.OrchestratorRecognizer ? 'ORCHESTRATOR' : 'LUIS'; + set(recognizerState({ projectId, id }), { + content: { ...content, id: `${key}_${id.replace('.lu.dialog', '')}` }, + id, + }); + } + + updates.forEach(({ id }) => { + set(recognizerState({ projectId, id }), { + id, + content: templates[kind](dialogId, id.replace('.lu.dialog', '')), + }); }); - } - - updates.forEach(({ id }) => { - set(recognizerState({ projectId, id }), { - id, - content: templates[kind](dialogId, id.replace('.lu.dialog', '')), - }); - }); - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/setting.ts b/Composer/packages/client/src/recoilModel/dispatchers/setting.ts index 7d7ec16e77..c1ee8e4d84 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/setting.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/setting.ts @@ -27,7 +27,7 @@ import { setError } from './shared'; export const setRootBotSettingState = async ( callbackHelpers: CallbackInterface, projectId: string, - settings: DialogSetting + settings: DialogSetting, ) => { const { set: recoilSet, snapshot } = callbackHelpers; // set value in local storage @@ -76,7 +76,7 @@ export const setRootBotSettingState = async ( export const setSkillBotSettingState = async ( callbackHelpers: CallbackInterface, projectId: string, - settings: DialogSetting + settings: DialogSetting, ) => { const { set: recoilSet, snapshot } = callbackHelpers; // set value in local storage @@ -122,134 +122,137 @@ export const settingsDispatcher = () => { } else { setSkillBotSettingState(callbackHelpers, projectId, settings); } - } + }, ); const setPublishTargets = useRecoilCallback( - ({ set }: CallbackInterface) => async (publishTargets: PublishTarget[], projectId: string) => { - set(settingsState(projectId), (settings) => ({ - ...settings, - publishTargets, - })); - } + ({ set }: CallbackInterface) => + async (publishTargets: PublishTarget[], projectId: string) => { + set(settingsState(projectId), (settings) => ({ + ...settings, + publishTargets, + })); + }, ); const setRuntimeSettings = useRecoilCallback( - ({ set }: CallbackInterface) => async ( - projectId: string, - runtime: { path: string; command: string; key: string; name: string } - ) => { - set(settingsState(projectId), (currentSettingsState) => ({ - ...currentSettingsState, - runtime: { - ...runtime, - customRuntime: true, - }, - })); - } + ({ set }: CallbackInterface) => + async (projectId: string, runtime: { path: string; command: string; key: string; name: string }) => { + set(settingsState(projectId), (currentSettingsState) => ({ + ...currentSettingsState, + runtime: { + ...runtime, + customRuntime: true, + }, + })); + }, ); const setImportedLibraries = useRecoilCallback( - ({ set }: CallbackInterface) => async (projectId: string, importedLibraries: LibraryRef[]) => { - set(settingsState(projectId), (currentSettingsState) => ({ - ...currentSettingsState, - importedLibraries, - })); - } + ({ set }: CallbackInterface) => + async (projectId: string, importedLibraries: LibraryRef[]) => { + set(settingsState(projectId), (currentSettingsState) => ({ + ...currentSettingsState, + importedLibraries, + })); + }, ); const setRuntimeField = useRecoilCallback( - ({ set }: CallbackInterface) => async (projectId: string, field: string, newValue: boolean | string) => { - set(settingsState(projectId), (currentValue) => ({ - ...currentValue, - runtime: { - ...currentValue.runtime, - [field]: newValue, - }, - })); - } + ({ set }: CallbackInterface) => + async (projectId: string, field: string, newValue: boolean | string) => { + set(settingsState(projectId), (currentValue) => ({ + ...currentValue, + runtime: { + ...currentValue.runtime, + [field]: newValue, + }, + })); + }, ); const setMicrosoftAppProperties = useRecoilCallback( - ({ set }: CallbackInterface) => async (projectId: string, appId: string, password: string) => { - set(settingsState(projectId), (currentValue) => ({ - ...currentValue, - MicrosoftAppId: appId, - MicrosoftAppPassword: password, - })); - } + ({ set }: CallbackInterface) => + async (projectId: string, appId: string, password: string) => { + set(settingsState(projectId), (currentValue) => ({ + ...currentValue, + MicrosoftAppId: appId, + MicrosoftAppPassword: password, + })); + }, ); const setCustomRuntime = useRecoilCallback(() => async (projectId: string, isOn: boolean) => { setRuntimeField(projectId, 'customRuntime', isOn); }); const setSkillAndAllowCaller = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async (projectId: string, skillId: string, endpointName: string) => { - const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); - if (!rootBotProjectId) { - return; - } - const manifestIdentifier = await snapshot.getPromise(botNameIdentifierState(skillId)); - const settings = await snapshot.getPromise(settingsState(rootBotProjectId)); - const skills = await snapshot.getPromise(skillsStateSelector); - const manifest = skills[manifestIdentifier]?.manifest; - let msAppId, endpointUrl; + ({ set, snapshot }: CallbackInterface) => + async (projectId: string, skillId: string, endpointName: string) => { + const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); + if (!rootBotProjectId) { + return; + } + const manifestIdentifier = await snapshot.getPromise(botNameIdentifierState(skillId)); + const settings = await snapshot.getPromise(settingsState(rootBotProjectId)); + const skills = await snapshot.getPromise(skillsStateSelector); + const manifest = skills[manifestIdentifier]?.manifest; + let msAppId, endpointUrl; - if (manifest?.endpoints) { - const matchedEndpoint = manifest.endpoints.find((item) => item.name === endpointName); - endpointUrl = matchedEndpoint?.endpointUrl || ''; - msAppId = matchedEndpoint?.msAppId || ''; - } + if (manifest?.endpoints) { + const matchedEndpoint = manifest.endpoints.find((item) => item.name === endpointName); + endpointUrl = matchedEndpoint?.endpointUrl || ''; + msAppId = matchedEndpoint?.msAppId || ''; + } - const isAdaptiveRuntime = isUsingAdaptiveRuntime(settings.runtime); - set(settingsState(projectId), (currentValue) => { - if (isAdaptiveRuntime) { - const callers = settings.runtimeSettings?.skills?.allowedCallers - ? [...settings.runtimeSettings?.skills?.allowedCallers] - : []; - if (!callers?.find((item) => item === msAppId)) { - callers.push(msAppId); - } - return { - ...currentValue, - skill: { - ...settings.skill, - [manifestIdentifier]: { - endpointUrl, - msAppId, + const isAdaptiveRuntime = isUsingAdaptiveRuntime(settings.runtime); + set(settingsState(projectId), (currentValue) => { + if (isAdaptiveRuntime) { + const callers = settings.runtimeSettings?.skills?.allowedCallers + ? [...(settings.runtimeSettings?.skills?.allowedCallers ?? [])] + : []; + if (!callers?.find((item) => item === msAppId)) { + callers.push(msAppId); + } + return { + ...currentValue, + skill: { + ...settings.skill, + [manifestIdentifier]: { + endpointUrl, + msAppId, + }, + }, + runtimeSettings: { + ...settings.runtimeSettings, + skills: { + allowedCallers: callers, + }, }, - }, - runtimeSettings: { - ...settings.runtimeSettings, - skills: { + }; + } else { + const callers = settings.skillConfiguration?.allowedCallers + ? [...(settings.skillConfiguration?.allowedCallers ?? [])] + : []; + if (!callers?.find((item) => item === msAppId)) { + callers.push(msAppId); + } + return { + ...currentValue, + skill: { + ...settings.skill, + [manifestIdentifier]: { + endpointUrl, + msAppId, + }, + }, + skillConfiguration: { + ...settings.skillConfiguration, allowedCallers: callers, }, - }, - }; - } else { - const callers = settings.skillConfiguration?.allowedCallers - ? [...settings.skillConfiguration?.allowedCallers] - : []; - if (!callers?.find((item) => item === msAppId)) { - callers.push(msAppId); + }; } - return { - ...currentValue, - skill: { - ...settings.skill, - [manifestIdentifier]: { - endpointUrl, - msAppId, - }, - }, - skillConfiguration: { - ...settings.skillConfiguration, - allowedCallers: callers, - }, - }; - } - }); - } + }); + }, ); const setQnASettings = useRecoilCallback( @@ -271,7 +274,7 @@ export const settingsDispatcher = () => { } catch (err) { setError(callbackHelpers, err); } - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/shared.ts b/Composer/packages/client/src/recoilModel/dispatchers/shared.ts index a930d50b10..34df4c8c9f 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/shared.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/shared.ts @@ -37,7 +37,7 @@ export const setError = (callbackHelpers: CallbackInterface, payload) => { callbackHelpers.set(applicationErrorState, { status: 409, message: formatMessage( - 'This version of the content is out of date, and your last change was rejected. The content will be automatically refreshed.' + 'This version of the content is out of date, and your last change was rejected. The content will be automatically refreshed.', ), summary: formatMessage('Modification Rejected'), }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/skill.ts b/Composer/packages/client/src/recoilModel/dispatchers/skill.ts index 84487802b7..3ccaae8306 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/skill.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/skill.ts @@ -72,35 +72,37 @@ export const skillDispatcher = () => { }; const removeSkillManifest = useRecoilCallback( - ({ set, snapshot }: CallbackInterface) => async (id: string, projectId: string) => { - let newCurrentManifestId: string | undefined; - const dispatcher = await snapshot.getPromise(dispatcherState); - set(skillManifestsState(projectId), (skillManifests) => { - const filtered = skillManifests.filter((manifest) => manifest.id !== id); - if (filtered.length > 0) { - newCurrentManifestId = filtered[0].id; - } - return filtered; - }); - dispatcher.updateManifestInBotProjectFile(projectId, newCurrentManifestId); - } + ({ set, snapshot }: CallbackInterface) => + async (id: string, projectId: string) => { + let newCurrentManifestId: string | undefined; + const dispatcher = await snapshot.getPromise(dispatcherState); + set(skillManifestsState(projectId), (skillManifests) => { + const filtered = skillManifests.filter((manifest) => manifest.id !== id); + if (filtered.length > 0) { + newCurrentManifestId = filtered[0].id; + } + return filtered; + }); + dispatcher.updateManifestInBotProjectFile(projectId, newCurrentManifestId); + }, ); const updateSkillManifest = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ({ id, content }: SkillManifestFile, projectId: string) => { - const { set, snapshot } = callbackHelpers; - const manifests = await snapshot.getPromise(skillManifestsState(projectId)); - const dispatcher = await snapshot.getPromise(dispatcherState); + (callbackHelpers: CallbackInterface) => + async ({ id, content }: SkillManifestFile, projectId: string) => { + const { set, snapshot } = callbackHelpers; + const manifests = await snapshot.getPromise(skillManifestsState(projectId)); + const dispatcher = await snapshot.getPromise(dispatcherState); - if (!manifests.some((manifest) => manifest.id === id)) { - createSkillManifest(callbackHelpers, { id, content, projectId }); - dispatcher.updateManifestInBotProjectFile(projectId, id); - } + if (!manifests.some((manifest) => manifest.id === id)) { + createSkillManifest(callbackHelpers, { id, content, projectId }); + dispatcher.updateManifestInBotProjectFile(projectId, id); + } - set(skillManifestsState(projectId), (skillManifests) => - skillManifests.map((manifest) => (manifest.id === id ? { id, content } : manifest)) - ); - } + set(skillManifestsState(projectId), (skillManifests) => + skillManifests.map((manifest) => (manifest.id === id ? { id, content } : manifest)), + ); + }, ); const displayManifestModal = useRecoilCallback(({ set }: CallbackInterface) => (id: string) => { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/storage.ts b/Composer/packages/client/src/recoilModel/dispatchers/storage.ts index 02bbe65326..c7a38c3d2f 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/storage.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/storage.ts @@ -55,7 +55,7 @@ export const storageDispatcher = () => { // TODO: Handle exceptions logMessage(callbackHelpers, `Error updating current path for storage: ${ex}`); } - } + }, ); const addNewStorage = useRecoilCallback((callbackHelpers: CallbackInterface) => async (storageData: string) => { @@ -110,35 +110,37 @@ export const storageDispatcher = () => { logMessage(callbackHelpers, `Error fetching focussed storage folder: ${ex}`); setStorageFileLoadingStatus('failure'); } - } + }, ); const createFolder = useRecoilCallback<[string, string], Promise>( - ({ set }: CallbackInterface) => async (path, name) => { - const storageId = 'default'; - try { - await httpClient.post(`/storages/folder`, { path, name, storageId }); - } catch (err) { - set(applicationErrorState, { - message: err.message, - summary: formatMessage('Create Folder Error'), - }); - } - } + ({ set }: CallbackInterface) => + async (path, name) => { + const storageId = 'default'; + try { + await httpClient.post(`/storages/folder`, { path, name, storageId }); + } catch (err) { + set(applicationErrorState, { + message: err.message, + summary: formatMessage('Create Folder Error'), + }); + } + }, ); const updateFolder = useRecoilCallback<[string, string, string], Promise>( - ({ set }: CallbackInterface) => async (path, oldName, newName) => { - const storageId = 'default'; - try { - await httpClient.put(`/storages/folder`, { path, oldName, newName, storageId }); - } catch (err) { - set(applicationErrorState, { - message: err.message, - summary: formatMessage('Update Folder Name Error'), - }); - } - } + ({ set }: CallbackInterface) => + async (path, oldName, newName) => { + const storageId = 'default'; + try { + await httpClient.put(`/storages/folder`, { path, oldName, newName, storageId }); + } catch (err) { + set(applicationErrorState, { + message: err.message, + summary: formatMessage('Update Folder Name Error'), + }); + } + }, ); const fetchTemplates = useRecoilCallback(({ set }: CallbackInterface) => async (feedUrls?: string[]) => { @@ -176,7 +178,7 @@ export const storageDispatcher = () => { // TODO: Handle exceptions logMessage(callbackHelpers, `Error fetching runtime templates: ${ex}`); } - } + }, ); const fetchFeatureFlags = useRecoilCallback<[], Promise>((callbackHelpers: CallbackInterface) => async () => { @@ -195,19 +197,20 @@ export const storageDispatcher = () => { }); const toggleFeatureFlag = useRecoilCallback( - ({ set }: CallbackInterface) => async (featureName: FeatureFlagKey, enabled: boolean) => { - let newFeatureFlags: FeatureFlagMap = {} as FeatureFlagMap; - // update local - set(featureFlagsState, (featureFlagsState) => { - newFeatureFlags = { ...featureFlagsState }; - newFeatureFlags[featureName] = { ...featureFlagsState[featureName], enabled: enabled }; - return newFeatureFlags; - }); - // update server - await httpClient.post(`/featureFlags`, { featureFlags: newFeatureFlags }); + ({ set }: CallbackInterface) => + async (featureName: FeatureFlagKey, enabled: boolean) => { + let newFeatureFlags: FeatureFlagMap = {} as FeatureFlagMap; + // update local + set(featureFlagsState, (featureFlagsState) => { + newFeatureFlags = { ...featureFlagsState }; + newFeatureFlags[featureName] = { ...featureFlagsState[featureName], enabled: enabled }; + return newFeatureFlags; + }); + // update server + await httpClient.post(`/featureFlags`, { featureFlags: newFeatureFlags }); - TelemetryClient.track('FeatureFlagChanged', { featureFlag: featureName, enabled }); - } + TelemetryClient.track('FeatureFlagChanged', { featureFlag: featureName, enabled }); + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/trigger.ts b/Composer/packages/client/src/recoilModel/dispatchers/trigger.ts index 8dfed17a1b..a52a4572ad 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/trigger.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/trigger.ts @@ -44,7 +44,7 @@ const getNewDialogWithTrigger = async ( dialogId: string, formData: TriggerFormData, createLuIntent, - createLgTemplates + createLgTemplates, ) => { const { snapshot } = callbackHelpers; const lgFiles = await snapshot.getPromise(lgFilesSelectorFamily(projectId)); @@ -68,11 +68,11 @@ const getNewDialogWithTrigger = async ( } else if (formData.$kind === qnaMatcherKey) { const designerId1 = getDesignerIdFromDialogPath( newDialog, - `content.triggers[${index}].actions[0].actions[1].prompt` + `content.triggers[${index}].actions[0].actions[1].prompt`, ); const designerId2 = getDesignerIdFromDialogPath( newDialog, - `content.triggers[${index}].actions[0].elseActions[0].activity` + `content.triggers[${index}].actions[0].elseActions[0].activity`, ); const lgTemplates: LgTemplate[] = [ LgTemplateSamples.TextInputPromptForQnAMatcher(designerId1) as LgTemplate, @@ -83,7 +83,7 @@ const getNewDialogWithTrigger = async ( const designerId1 = getDesignerIdFromDialogPath(newDialog, `content.triggers[${index}].actions[2].prompt`); const designerId2 = getDesignerIdFromDialogPath( newDialog, - `content.triggers[${index}].actions[3].elseActions[0].activity` + `content.triggers[${index}].actions[3].elseActions[0].activity`, ); const lgTemplates: LgTemplate[] = [ LgTemplateSamples.textInputPromptForOnChooseIntent(designerId1) as LgTemplate, @@ -108,33 +108,29 @@ const getNewDialogWithTrigger = async ( export const triggerDispatcher = () => { const createTrigger = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - projectId: string, - dialogId: string, - formData: TriggerFormData, - autoSelected = true - ) => { - try { - const { snapshot } = callbackHelpers; - const dispatcher = await snapshot.getPromise(dispatcherState); - const { createLuIntent, createLgTemplates, updateDialog, selectTo } = dispatcher; - const dialogPayload = await getNewDialogWithTrigger( - callbackHelpers, - projectId, - dialogId, - formData, - createLuIntent, - createLgTemplates - ); - await updateDialog(dialogPayload); - if (autoSelected) { - const index = get(dialogPayload.content, 'triggers', []).length - 1; - await selectTo(projectId, dialogPayload.id, `triggers[${index}]`); + (callbackHelpers: CallbackInterface) => + async (projectId: string, dialogId: string, formData: TriggerFormData, autoSelected = true) => { + try { + const { snapshot } = callbackHelpers; + const dispatcher = await snapshot.getPromise(dispatcherState); + const { createLuIntent, createLgTemplates, updateDialog, selectTo } = dispatcher; + const dialogPayload = await getNewDialogWithTrigger( + callbackHelpers, + projectId, + dialogId, + formData, + createLuIntent, + createLgTemplates, + ); + await updateDialog(dialogPayload); + if (autoSelected) { + const index = get(dialogPayload.content, 'triggers', []).length - 1; + await selectTo(projectId, dialogPayload.id, `triggers[${index}]`); + } + } catch (ex) { + setError(callbackHelpers, ex); } - } catch (ex) { - setError(callbackHelpers, ex); - } - } + }, ); const deleteTrigger = useRecoilCallback( @@ -162,75 +158,66 @@ export const triggerDispatcher = () => { actions, (templateNames: string[]) => removeLgTemplates({ id: `${dialogId}.${locale}`, templateNames, projectId }), (intentNames: string[]) => - Promise.all(intentNames.map((intentName) => removeLuIntent({ id: luFile.id, intentName, projectId }))) + Promise.all(intentNames.map((intentName) => removeLuIntent({ id: luFile.id, intentName, projectId }))), ); } catch (ex) { setError(callbackHelpers, ex); } - } + }, ); const createQnATrigger = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - projectId: string, - dialogId: string, - autoSelectTrigger?: boolean - ) => { - try { - const { snapshot } = callbackHelpers; - const dispatcher = await snapshot.getPromise(dispatcherState); - const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); - - const targetDialog = dialogs.find((item) => item.id === dialogId); - if (!targetDialog) throw new Error(`dialog ${dialogId} not found`); - const existedQnATrigger = get(targetDialog, 'content.triggers', []).find( - (item) => item.$kind === SDKKinds.OnQnAMatch - ); - if (!existedQnATrigger) { - await dispatcher.createTrigger(projectId, dialogId, defaultQnATriggerData, autoSelectTrigger); + (callbackHelpers: CallbackInterface) => + async (projectId: string, dialogId: string, autoSelectTrigger?: boolean) => { + try { + const { snapshot } = callbackHelpers; + const dispatcher = await snapshot.getPromise(dispatcherState); + const dialogs = await snapshot.getPromise(dialogsSelectorFamily(projectId)); + + const targetDialog = dialogs.find((item) => item.id === dialogId); + if (!targetDialog) throw new Error(`dialog ${dialogId} not found`); + const existedQnATrigger = get(targetDialog, 'content.triggers', []).find( + (item) => item.$kind === SDKKinds.OnQnAMatch, + ); + if (!existedQnATrigger) { + await dispatcher.createTrigger(projectId, dialogId, defaultQnATriggerData, autoSelectTrigger); + } + } catch (ex) { + setError(callbackHelpers, ex); } - } catch (ex) { - setError(callbackHelpers, ex); - } - } + }, ); const createTriggerForRemoteSkill = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async ( - projectId: string, - dialogId: string, - formData: TriggerFormData, - skillId: string, - autoSelected = true - ) => { - try { - const { snapshot } = callbackHelpers; - const { createLuIntent, createLgTemplates, updateDialog, selectTo } = await snapshot.getPromise( - dispatcherState - ); - const dialogPayload = await getNewDialogWithTrigger( - callbackHelpers, - projectId, - dialogId, - formData, - createLuIntent, - createLgTemplates - ); - const index = get(dialogPayload.content, 'triggers', []).length - 1; - const skillsByProjectId = await snapshot.getPromise(skillNameIdentifierByProjectIdSelector); - const skillIdentifier = skillsByProjectId[skillId]; - const actions: any = []; - actions.push(createActionFromManifest(skillIdentifier)); - dialogPayload.content.triggers[index].actions = actions; - - await updateDialog(dialogPayload); - if (autoSelected) { - await selectTo(projectId, dialogPayload.id, `triggers[${index}]`); + (callbackHelpers: CallbackInterface) => + async (projectId: string, dialogId: string, formData: TriggerFormData, skillId: string, autoSelected = true) => { + try { + const { snapshot } = callbackHelpers; + const { createLuIntent, createLgTemplates, updateDialog, selectTo } = + await snapshot.getPromise(dispatcherState); + const dialogPayload = await getNewDialogWithTrigger( + callbackHelpers, + projectId, + dialogId, + formData, + createLuIntent, + createLgTemplates, + ); + const index = get(dialogPayload.content, 'triggers', []).length - 1; + const skillsByProjectId = await snapshot.getPromise(skillNameIdentifierByProjectIdSelector); + const skillIdentifier = skillsByProjectId[skillId]; + const actions: any = []; + actions.push(createActionFromManifest(skillIdentifier)); + dialogPayload.content.triggers[index].actions = actions; + + await updateDialog(dialogPayload); + if (autoSelected) { + await selectTo(projectId, dialogPayload.id, `triggers[${index}]`); + } + } catch (ex) { + setError(callbackHelpers, ex); } - } catch (ex) { - setError(callbackHelpers, ex); - } - } + }, ); return { createTrigger, diff --git a/Composer/packages/client/src/recoilModel/dispatchers/user.ts b/Composer/packages/client/src/recoilModel/dispatchers/user.ts index 4a64b0b36f..e57b9395ee 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/user.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/user.ts @@ -16,39 +16,40 @@ import { logMessage } from './shared'; export const userDispatcher = () => { const updateUserSettings = useRecoilCallback( - (callbackHelpers: CallbackInterface) => async (settings: Partial = {}) => { - const { set } = callbackHelpers; - if (settings.appLocale != null) { - await loadLocale(settings.appLocale); - } - set(userSettingsState, (currentSettings) => { - const newSettings = { - ...currentSettings, - }; - for (const key in settings) { - if (newSettings[key] != null) { - if (typeof newSettings[key] === 'object') { - newSettings[key] = { ...newSettings[key], ...settings[key] }; - } else { - newSettings[key] = settings[key]; + (callbackHelpers: CallbackInterface) => + async (settings: Partial = {}) => { + const { set } = callbackHelpers; + if (settings.appLocale != null) { + await loadLocale(settings.appLocale); + } + set(userSettingsState, (currentSettings) => { + const newSettings = { + ...currentSettings, + }; + for (const key in settings) { + if (newSettings[key] != null) { + if (typeof newSettings[key] === 'object') { + newSettings[key] = { ...newSettings[key], ...settings[key] }; + } else { + newSettings[key] = settings[key]; + } } } - } - storage.set('userSettings', newSettings); + storage.set('userSettings', newSettings); - // push telemetry settings to the server - httpClient.post('/settings', { settings: pick(newSettings, ['telemetry']) }).catch((error) => { - logMessage(callbackHelpers, `Error updating server settings: ${error}`); - }); + // push telemetry settings to the server + httpClient.post('/settings', { settings: pick(newSettings, ['telemetry']) }).catch((error) => { + logMessage(callbackHelpers, `Error updating server settings: ${error}`); + }); - if (isElectron()) { - // push the settings to the electron main process - window.ipcRenderer.send('update-user-settings', newSettings); - } + if (isElectron()) { + // push the settings to the electron main process + window.ipcRenderer.send('update-user-settings', newSettings); + } - return newSettings; - }); - } + return newSettings; + }); + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/dispatchers/utils/project.ts b/Composer/packages/client/src/recoilModel/dispatchers/utils/project.ts index 0d0a56a66e..af8fddbc5d 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/utils/project.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/utils/project.ts @@ -118,7 +118,7 @@ export const setErrorOnBotProject = async ( callbackHelpers: CallbackInterface, projectId: string, botName: string, - payload: any + payload: any, ) => { const { set } = callbackHelpers; if (payload?.response?.data?.message) { @@ -216,7 +216,7 @@ export const navigateToBot = ( callbackHelpers: CallbackInterface, projectId: string, mainDialog?: string, - urlSuffix?: string + urlSuffix?: string, ) => { if (projectId) { const { set } = callbackHelpers; @@ -295,7 +295,7 @@ const parseAllAssets = async ({ set }: CallbackInterface, projectId: string, bot const luFeaturesMap: { [key: string]: ILUFeaturesConfig } = {}; for (const { id } of luFiles) { const isOrchestartor = recognizers.some( - (f) => f.id === `${id}.lu.dialog` && f.content.$kind === SDKKinds.OrchestratorRecognizer + (f) => f.id === `${id}.lu.dialog` && f.content.$kind === SDKKinds.OrchestratorRecognizer, ); const luFeatures = { ...mergedSettings.luFeatures, isOrchestartor }; luFeaturesMap[id] = luFeatures; @@ -369,7 +369,7 @@ export const loadProjectData = async (data) => { export const fetchProjectDataByPath = async ( path: string, storageId, - isRootBot: boolean + isRootBot: boolean, ): Promise<{ botFiles: any; projectData: any; error: any }> => { try { const response = await httpClient.put(`/projects/open`, { path, storageId, isRootBot }); @@ -446,7 +446,7 @@ export const updateLuFilesStatus = (projectId: string, luFiles: LuFile[]) => { export const initLuFilesStatus = (projectId: string, luFiles: LuFile[], dialogs: DialogInfo[]) => { luFileStatusStorage.checkFileStatus( projectId, - getReferredLuFiles(luFiles, dialogs).map((file) => file.id) + getReferredLuFiles(luFiles, dialogs).map((file) => file.id), ); return updateLuFilesStatus(projectId, luFiles); }; @@ -465,7 +465,7 @@ export const updateQnaFilesStatus = (projectId: string, qnaFiles: QnAFile[]) => export const initQnaFilesStatus = (projectId: string, qnaFiles: QnAFile[], dialogs: DialogInfo[]) => { qnaFileStatusStorage.checkFileStatus( projectId, - getReferredQnaFiles(qnaFiles, dialogs).map((file) => file.id) + getReferredQnaFiles(qnaFiles, dialogs).map((file) => file.id), ); return updateQnaFilesStatus(projectId, qnaFiles); }; @@ -529,7 +529,7 @@ export const initBotState = async (callbackHelpers: CallbackInterface, data: any // Form dialogs set( formDialogSchemaIdsState(projectId), - formDialogSchemas.map((f) => f.id) + formDialogSchemas.map((f) => f.id), ); formDialogSchemas.forEach(({ id, content }) => { set(formDialogSchemaState({ projectId, schemaId: id }), { id, content }); @@ -577,7 +577,7 @@ export const removeRecentProject = async (callbackHelpers: CallbackInterface, pa export const openRemoteSkill = async ( callbackHelpers: CallbackInterface, - { manifestUrl, manifestFromZip = { name: '', content: {} }, rootBotProjectId = '', botNameIdentifier = '' } + { manifestUrl, manifestFromZip = { name: '', content: {} }, rootBotProjectId = '', botNameIdentifier = '' }, ) => { const { set } = callbackHelpers; @@ -596,7 +596,7 @@ export const openRemoteSkill = async ( manifestResponseData = ( await httpClient.get( - `/projects/${rootBotProjectId}/skill/retrieveSkillManifest?${stringified}&ignoreProjectValidation=true` + `/projects/${rootBotProjectId}/skill/retrieveSkillManifest?${stringified}&ignoreProjectValidation=true`, ) ).data; } @@ -653,7 +653,7 @@ export const migrateToV2 = async ( description: string, location: string, runtimeLanguage: string, - runtimeType: string + runtimeType: string, ) => { const jobId = await httpClient.post(`projects/migrate`, { storageId: 'default', @@ -717,7 +717,7 @@ export const openRootBotAndSkills = async (callbackHelpers: CallbackInterface, d if (mergedSettings.skill) { const { botProjectFile, skillSettings } = migrateSkillsForExistingBots( currentBotProjectFileIndexed.content, - mergedSettings.skill + mergedSettings.skill, ); if (!isEmpty(skillSettings)) { setRootBotSettingState(callbackHelpers, rootBotProjectId, { @@ -799,7 +799,7 @@ export const postRootBotCreation = async ( templateId, profile, source, - projectIdCache + projectIdCache, ) => { if (settingStorage.get(projectId)) { settingStorage.remove(projectId); @@ -865,7 +865,7 @@ export const saveProject = async (callbackHelpers, oldProjectData) => { export const getSkillNameIdentifier = async ( callbackHelpers: CallbackInterface, - displayName: string + displayName: string, ): Promise => { const { snapshot } = callbackHelpers; const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); @@ -879,7 +879,7 @@ export const getSkillNameIdentifier = async ( export const checkIfBotExistsInBotProjectFile = async ( callbackHelpers: CallbackInterface, pathOrManifest: string, - remote?: boolean + remote?: boolean, ) => { const { snapshot } = callbackHelpers; const rootBotProjectId = await snapshot.getPromise(rootBotProjectIdSelector); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/utils/skills.ts b/Composer/packages/client/src/recoilModel/dispatchers/utils/skills.ts index 34f86b3560..8b793e1557 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/utils/skills.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/utils/skills.ts @@ -9,7 +9,7 @@ export const addSkillFiles = async ( projectId: string, skillName: string, url: string, - zipContent: Record + zipContent: Record, ): Promise<{ manifest: FileInfo | undefined; error?: any }> => { try { const response = await httpClient.post(`/projects/${projectId}/skillFiles`, { url, skillName, zipContent }); diff --git a/Composer/packages/client/src/recoilModel/dispatchers/webchat.ts b/Composer/packages/client/src/recoilModel/dispatchers/webchat.ts index f62cab07fc..ed97fb40bb 100644 --- a/Composer/packages/client/src/recoilModel/dispatchers/webchat.ts +++ b/Composer/packages/client/src/recoilModel/dispatchers/webchat.ts @@ -26,33 +26,31 @@ export const webChatLogDispatcher = () => { }); const appendWebChatTraffic = useRecoilCallback( - (callbackHelpers: CallbackInterface) => ( - projectId: string, - traffic: ConversationTrafficItem | ConversationTrafficItem[] - ) => { - const { set } = callbackHelpers; - set(webChatTrafficState(projectId), (currentTraffic) => { - if (Array.isArray(traffic)) { - return [...currentTraffic, ...traffic].sort((t1, t2) => t1.timestamp - t2.timestamp); - } else { - return [...currentTraffic, traffic].sort((t1, t2) => t1.timestamp - t2.timestamp); - } - }); - } + (callbackHelpers: CallbackInterface) => + (projectId: string, traffic: ConversationTrafficItem | ConversationTrafficItem[]) => { + const { set } = callbackHelpers; + set(webChatTrafficState(projectId), (currentTraffic) => { + if (Array.isArray(traffic)) { + return [...currentTraffic, ...traffic].sort((t1, t2) => t1.timestamp - t2.timestamp); + } else { + return [...currentTraffic, traffic].sort((t1, t2) => t1.timestamp - t2.timestamp); + } + }); + }, ); const setWebChatInspectionData = useRecoilCallback( (callbackHelpers: CallbackInterface) => (projectId: string, inspectionData: WebChatInspectionData) => { const { set } = callbackHelpers; set(webChatInspectionDataState(projectId), inspectionData); - } + }, ); const setWatchedVariables = useRecoilCallback( (callbackHelpers: CallbackInterface) => (projectId: string, variables: Record) => { const { set } = callbackHelpers; set(watchedVariablesState(projectId), variables); - } + }, ); return { diff --git a/Composer/packages/client/src/recoilModel/parsers/__test__/lgWorker.test.ts b/Composer/packages/client/src/recoilModel/parsers/__test__/lgWorker.test.ts index 4b08dca445..505705e629 100644 --- a/Composer/packages/client/src/recoilModel/parsers/__test__/lgWorker.test.ts +++ b/Composer/packages/client/src/recoilModel/parsers/__test__/lgWorker.test.ts @@ -10,6 +10,7 @@ jest.mock('./../workers/lgParser.worker.ts', () => { onmessage = (data) => data; postMessage = (data) => { + // eslint-disable-next-line @typescript-eslint/no-var-requires const payload = require('../workers/lgParser.worker').handleMessage(data); this.onmessage({ data: { id: data.id, payload } }); }; @@ -18,6 +19,7 @@ jest.mock('./../workers/lgParser.worker.ts', () => { return Test; }); +// eslint-disable-next-line @typescript-eslint/no-var-requires const lgCache = require('../workers/lgParser.worker').cache; const lgFiles = [ @@ -32,7 +34,7 @@ const getLgTemplate = (name, body): LgTemplate => ({ name, body, - } as LgTemplate); + }) as LgTemplate; describe('test lg worker', () => { it('cache the new project', async () => { @@ -65,7 +67,7 @@ describe('test lg worker', () => { 'test', lgFiles[0], [getLgTemplate('Test1', '-add1'), getLgTemplate('Test2', '-add2')], - lgFiles + lgFiles, ); const expected = { body: '-add2', @@ -84,7 +86,7 @@ describe('test lg worker', () => { lgFiles[0], 'Test2', getLgTemplate('Test2', '-update'), - lgFiles + lgFiles, ); const expected = { body: '-update', diff --git a/Composer/packages/client/src/recoilModel/parsers/__test__/luWorker.test.ts b/Composer/packages/client/src/recoilModel/parsers/__test__/luWorker.test.ts index ad94307424..6738fb7d35 100644 --- a/Composer/packages/client/src/recoilModel/parsers/__test__/luWorker.test.ts +++ b/Composer/packages/client/src/recoilModel/parsers/__test__/luWorker.test.ts @@ -12,6 +12,7 @@ jest.mock('./../workers/luParser.worker.ts', () => { onmessage = (data) => data; postMessage = (data) => { + // eslint-disable-next-line @typescript-eslint/no-var-requires const payload = require('../workers/luParser.worker').handleMessage(data); this.onmessage({ data: { id: data.id, payload } }); }; @@ -24,7 +25,7 @@ const getLuIntent = (Name, Body): LuIntentSection => ({ Name, Body, - } as LuIntentSection); + }) as LuIntentSection; let luFile; describe('test lu worker', () => { @@ -74,7 +75,7 @@ hi luFile, [getLuIntent('New1', '-IntentValue1'), getLuIntent('New2', '-IntentValue2')], luFeatures, - [] + [], ); const expected = { Body: '-IntentValue2', diff --git a/Composer/packages/client/src/recoilModel/parsers/__test__/qnaWorker.test.ts b/Composer/packages/client/src/recoilModel/parsers/__test__/qnaWorker.test.ts index 0e699905e7..89a326532e 100644 --- a/Composer/packages/client/src/recoilModel/parsers/__test__/qnaWorker.test.ts +++ b/Composer/packages/client/src/recoilModel/parsers/__test__/qnaWorker.test.ts @@ -8,6 +8,7 @@ jest.mock('./../workers/qnaParser.worker.ts', () => { onmessage = (data) => data; postMessage = (data) => { + // eslint-disable-next-line @typescript-eslint/no-var-requires const payload = require('../workers/qnaParser.worker').handleMessage(data); this.onmessage({ data: { id: data.id, payload } }); }; diff --git a/Composer/packages/client/src/recoilModel/parsers/lgWorker.ts b/Composer/packages/client/src/recoilModel/parsers/lgWorker.ts index 564ec0f71f..a67f0a5082 100644 --- a/Composer/packages/client/src/recoilModel/parsers/lgWorker.ts +++ b/Composer/packages/client/src/recoilModel/parsers/lgWorker.ts @@ -83,7 +83,7 @@ class LgWorker extends BaseWorker { lgFile: LgFile, templateName: string, template: { name?: string; parameters?: string[]; body?: string }, - lgFiles: LgFile[] + lgFiles: LgFile[], ) { return this.sendMsg(LgActionType.UpdateTemplate, { lgFile, diff --git a/Composer/packages/client/src/recoilModel/parsers/luWorker.ts b/Composer/packages/client/src/recoilModel/parsers/luWorker.ts index 0a6143fc59..f1bd302235 100644 --- a/Composer/packages/client/src/recoilModel/parsers/luWorker.ts +++ b/Composer/packages/client/src/recoilModel/parsers/luWorker.ts @@ -36,7 +36,7 @@ class LuWorker extends BaseWorker { intentName: string, intent: { Name?: string; Body?: string }, luFeatures, - luFiles: LuFile[] + luFiles: LuFile[], ) { const payload = { luFile, intentName, intent, luFeatures, luFiles }; return this.sendMsg(LuActionType.UpdateIntent, payload); diff --git a/Composer/packages/client/src/recoilModel/parsers/workers/calculator.worker.ts b/Composer/packages/client/src/recoilModel/parsers/workers/calculator.worker.ts index b724a07bda..e7d998b6ef 100644 --- a/Composer/packages/client/src/recoilModel/parsers/workers/calculator.worker.ts +++ b/Composer/packages/client/src/recoilModel/parsers/workers/calculator.worker.ts @@ -40,7 +40,7 @@ export function getDifferenceItems(target: FileAsset[], origin: FileAsset[]) { return result; }, - { updated: [], added: [] } + { updated: [], added: [] }, ); return { updated, added, deleted }; diff --git a/Composer/packages/client/src/recoilModel/parsers/workers/lgParser.worker.ts b/Composer/packages/client/src/recoilModel/parsers/workers/lgParser.worker.ts index e78b98770b..f313c5939c 100644 --- a/Composer/packages/client/src/recoilModel/parsers/workers/lgParser.worker.ts +++ b/Composer/packages/client/src/recoilModel/parsers/workers/lgParser.worker.ts @@ -252,7 +252,7 @@ export const handleMessage = (msg: LgMessageEvent) => { getTargetFile(projectId, lgFile, lgFiles), templateName, template, - lgFileResolver(lgFiles) + lgFileResolver(lgFiles), ); cache.set(projectId, result); payload = filterParseResult(result); @@ -264,7 +264,7 @@ export const handleMessage = (msg: LgMessageEvent) => { const result = lgUtil.removeTemplate( getTargetFile(projectId, lgFile, lgFiles), templateName, - lgFileResolver(lgFiles) + lgFileResolver(lgFiles), ); cache.set(projectId, result); payload = filterParseResult(result); @@ -276,7 +276,7 @@ export const handleMessage = (msg: LgMessageEvent) => { const result = lgUtil.removeTemplates( getTargetFile(projectId, lgFile, lgFiles), templateNames, - lgFileResolver(lgFiles) + lgFileResolver(lgFiles), ); cache.set(projectId, result); payload = filterParseResult(result); @@ -289,7 +289,7 @@ export const handleMessage = (msg: LgMessageEvent) => { getTargetFile(projectId, lgFile, lgFiles), fromTemplateName, toTemplateName, - lgFileResolver(lgFiles) + lgFileResolver(lgFiles), ); cache.set(projectId, result); payload = filterParseResult(result); diff --git a/Composer/packages/client/src/recoilModel/persistence/FilePersistence.ts b/Composer/packages/client/src/recoilModel/persistence/FilePersistence.ts index b4a49209a2..35c862bab3 100644 --- a/Composer/packages/client/src/recoilModel/persistence/FilePersistence.ts +++ b/Composer/packages/client/src/recoilModel/persistence/FilePersistence.ts @@ -196,19 +196,19 @@ class FilePersistence { const changes = await Promise.all( files.map(async (item) => { return await this.getFilesChanges(item[0], item[1], item[2]); - }) + }), ); const settingChanges = this.getSettingsChanges(currentAssets.setting, previousAssets.setting); const botProjectFileChanges = this.getBotProjectFileChanges( currentAssets.botProjectFile, - previousAssets.botProjectFile + previousAssets.botProjectFile, ); const crossTrainFileChanges = this.getCrossTrainConfigChanges( currentAssets.crossTrainConfig, - previousAssets.crossTrainConfig + previousAssets.crossTrainConfig, ); const fileChanges: IFileChange[] = [...settingChanges, ...botProjectFileChanges, ...crossTrainFileChanges]; diff --git a/Composer/packages/client/src/recoilModel/persistence/__test__/FilePersistence.test.ts b/Composer/packages/client/src/recoilModel/persistence/__test__/FilePersistence.test.ts index be9275dd4b..af8f3be576 100644 --- a/Composer/packages/client/src/recoilModel/persistence/__test__/FilePersistence.test.ts +++ b/Composer/packages/client/src/recoilModel/persistence/__test__/FilePersistence.test.ts @@ -7,6 +7,7 @@ const projectId = '2123.2234as'; jest.mock('../../parsers/fileDiffCalculator', () => { return { + // eslint-disable-next-line @typescript-eslint/no-var-requires difference: require('../../parsers/workers/calculator.worker').getDifferenceItems, }; }); @@ -29,7 +30,7 @@ describe('test persistence layer', () => { const current = { projectId: 'test', - dialogs: ([{ id: 'a', content: { a: 'create' } }] as unknown) as DialogInfo[], + dialogs: [{ id: 'a', content: { a: 'create' } }] as unknown as DialogInfo[], dialogSchemas: [{ id: 'a', content: { a: 'new schema' } }] as DialogSchemaFile[], lgFiles: [{ id: 'a.en-us', content: 'a.lg' }] as LgFile[], luFiles: [{ id: 'a.en-us', content: 'a.lu' }] as LuFile[], @@ -38,7 +39,7 @@ describe('test persistence layer', () => { const last = { projectId: 'test', - dialogs: ([{ id: 'a', content: { a: 'update' } }] as unknown) as DialogInfo[], + dialogs: [{ id: 'a', content: { a: 'update' } }] as unknown as DialogInfo[], dialogSchemas: [{ id: 'a', content: { a: 'new schema' } }] as DialogSchemaFile[], lgFiles: [{ id: 'a.en-us', content: 'a.lg' }] as LgFile[], luFiles: [{ id: 'a.en-us', content: 'a.lu' }] as LuFile[], @@ -61,7 +62,7 @@ describe('test persistence layer', () => { it('test notify create', async () => { const previous = { projectId: 'test', - dialogs: ([{ id: 'a', content: { a: 'a' } }] as unknown) as DialogInfo[], + dialogs: [{ id: 'a', content: { a: 'a' } }] as unknown as DialogInfo[], dialogSchemas: [{ id: 'a', content: { a: 'a' } }] as DialogSchemaFile[], lgFiles: [{ id: 'a.en-us', content: 'a' }] as LgFile[], luFiles: [{ id: 'a.en-us', content: 'a' }] as LuFile[], @@ -69,10 +70,10 @@ describe('test persistence layer', () => { const current = { projectId: 'test', - dialogs: ([ + dialogs: [ { id: 'a', content: { a: 'a' } }, { id: 'b', content: { b: 'b' } }, - ] as unknown) as DialogInfo[], + ] as unknown as DialogInfo[], dialogSchemas: [ { id: 'a', content: { a: 'a' } }, { id: 'b', content: { b: 'b' } }, @@ -100,10 +101,10 @@ describe('test persistence layer', () => { it('test notify remove', async () => { const previous = { projectId: 'test', - dialogs: ([ + dialogs: [ { id: 'a', content: { a: 'a' } }, { id: 'b', content: { b: 'b.pre' } }, - ] as unknown) as DialogInfo[], + ] as unknown as DialogInfo[], dialogSchemas: [ { id: 'a', content: { a: 'a' } }, { id: 'b', content: { b: 'b.pre' } }, @@ -120,7 +121,7 @@ describe('test persistence layer', () => { const current = { projectId: 'test', - dialogs: ([{ id: 'a', content: { a: 'a' } }] as unknown) as DialogInfo[], + dialogs: [{ id: 'a', content: { a: 'a' } }] as unknown as DialogInfo[], dialogSchemas: [{ id: 'a', content: { a: 'a' } }] as DialogSchemaFile[], lgFiles: [{ id: 'a.en-us', content: 'a' }] as LgFile[], luFiles: [{ id: 'a.en-us', content: 'a' }] as LuFile[], diff --git a/Composer/packages/client/src/recoilModel/selectors/__test__/project.test.ts b/Composer/packages/client/src/recoilModel/selectors/__test__/project.test.ts index 043c528c31..0484d6ea3f 100644 --- a/Composer/packages/client/src/recoilModel/selectors/__test__/project.test.ts +++ b/Composer/packages/client/src/recoilModel/selectors/__test__/project.test.ts @@ -20,20 +20,22 @@ const projectIds = ['123-a', '234-bc', '567-de']; const projectDataSelector = selectorFamily({ key: 'project-data-selector', get: () => noop, - set: (projectId: string) => ({ set }, stateUpdater: any) => { - const { metadata, botError, displayName } = stateUpdater; - if (metadata) { - set(projectMetaDataState(projectId), metadata); - } + set: + (projectId: string) => + ({ set }, stateUpdater: any) => { + const { metadata, botError, displayName } = stateUpdater; + if (metadata) { + set(projectMetaDataState(projectId), metadata); + } - if (botError) { - set(botErrorState(projectId), location); - } + if (botError) { + set(botErrorState(projectId), location); + } - if (displayName) { - set(botDisplayNameState(projectId), displayName); - } - }, + if (displayName) { + set(botDisplayNameState(projectId), displayName); + } + }, }); const useRecoilTestHook = () => { @@ -69,7 +71,7 @@ beforeEach(() => { useRecoilTestHook, { states: [], - } + }, ); renderedComponent = rendered.result; }); diff --git a/Composer/packages/client/src/recoilModel/selectors/diagnosticsPageSelector.ts b/Composer/packages/client/src/recoilModel/selectors/diagnosticsPageSelector.ts index 15f319c239..32c278dc96 100644 --- a/Composer/packages/client/src/recoilModel/selectors/diagnosticsPageSelector.ts +++ b/Composer/packages/client/src/recoilModel/selectors/diagnosticsPageSelector.ts @@ -43,65 +43,69 @@ import { qnaFilesSelectorFamily } from './qna'; export const botAssetsSelectFamily = selectorFamily({ key: 'botAssetsSelectFamily', - get: (projectId: string) => ({ get }) => { - const projectsMetaData = get(projectMetaDataState(projectId)); - if (!projectsMetaData || projectsMetaData.isRemote) return null; - - const dialogs = get(dialogsWithLuProviderSelectorFamily(projectId)); - const luFiles = get(luFilesSelectorFamily(projectId)); - const lgFiles = get(lgFilesSelectorFamily(projectId)); - const setting = get(settingsState(projectId)); - const skillManifests = get(skillManifestsState(projectId)); - const dialogSchemas = get(dialogSchemasState(projectId)); - const qnaFiles = get(qnaFilesSelectorFamily(projectId)); - const formDialogSchemas = get(formDialogSchemasSelectorFamily(projectId)); - const botProjectFile = get(botProjectFileState(projectId)); - const jsonSchemaFiles = get(jsonSchemaFilesState(projectId)); - const recognizers = get(recognizersSelectorFamily(projectId)); - const crossTrainConfig = get(crossTrainConfigState(projectId)); - return { - projectId, - dialogs, - luFiles, - qnaFiles, - lgFiles, - skillManifests, - setting, - dialogSchemas, - formDialogSchemas, - botProjectFile, - jsonSchemaFiles, - recognizers, - crossTrainConfig, - }; - }, + get: + (projectId: string) => + ({ get }) => { + const projectsMetaData = get(projectMetaDataState(projectId)); + if (!projectsMetaData || projectsMetaData.isRemote) return null; + + const dialogs = get(dialogsWithLuProviderSelectorFamily(projectId)); + const luFiles = get(luFilesSelectorFamily(projectId)); + const lgFiles = get(lgFilesSelectorFamily(projectId)); + const setting = get(settingsState(projectId)); + const skillManifests = get(skillManifestsState(projectId)); + const dialogSchemas = get(dialogSchemasState(projectId)); + const qnaFiles = get(qnaFilesSelectorFamily(projectId)); + const formDialogSchemas = get(formDialogSchemasSelectorFamily(projectId)); + const botProjectFile = get(botProjectFileState(projectId)); + const jsonSchemaFiles = get(jsonSchemaFilesState(projectId)); + const recognizers = get(recognizersSelectorFamily(projectId)); + const crossTrainConfig = get(crossTrainConfigState(projectId)); + return { + projectId, + dialogs, + luFiles, + qnaFiles, + lgFiles, + skillManifests, + setting, + dialogSchemas, + formDialogSchemas, + botProjectFile, + jsonSchemaFiles, + recognizers, + crossTrainConfig, + }; + }, }); export const botDiagnosticsSelectorFamily = selectorFamily({ key: 'botDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const diagnostics = get(botDiagnosticsState(projectId)); + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + if (botAssets === null) return []; - const diagnosticList: DiagnosticInfo[] = []; + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const diagnostics = get(botDiagnosticsState(projectId)); - diagnostics.forEach((d) => { - diagnosticList.push(new BotDiagnostic(rootProjectId, projectId, '', d.source, d)); - }); + const diagnosticList: DiagnosticInfo[] = []; - //manifest.json - //Manifest should exist - if (rootProjectId !== projectId) { - BotIndexer.checkManifest(botAssets).forEach((d) => { + diagnostics.forEach((d) => { diagnosticList.push(new BotDiagnostic(rootProjectId, projectId, '', d.source, d)); }); - } - return diagnosticList; - }, + //manifest.json + //Manifest should exist + if (rootProjectId !== projectId) { + BotIndexer.checkManifest(botAssets).forEach((d) => { + diagnosticList.push(new BotDiagnostic(rootProjectId, projectId, '', d.source, d)); + }); + } + + return diagnosticList; + }, }); /** @@ -111,219 +115,239 @@ export const botDiagnosticsSelectorFamily = selectorFamily({ */ export const skillSettingDiagnosticsSelectorFamily = selectorFamily({ key: 'skillDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const diagnosticList: DiagnosticInfo[] = []; - - const skillDiagnostics = BotIndexer.checkSkillSetting(botAssets); - skillDiagnostics.forEach((item) => { - diagnosticList.push(new SkillSettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); - }); - return diagnosticList; - }, + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + if (botAssets === null) return []; + + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const diagnosticList: DiagnosticInfo[] = []; + + const skillDiagnostics = BotIndexer.checkSkillSetting(botAssets); + skillDiagnostics.forEach((item) => { + diagnosticList.push(new SkillSettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); + }); + return diagnosticList; + }, }); export const settingDiagnosticsSelectorFamily = selectorFamily({ key: 'settingDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const rootSetting = get(settingsState(rootProjectId)); - const diagnosticList: DiagnosticInfo[] = []; - - //1. Missing LUIS key - //2. Missing QnA Maker subscription key. - //appsettings.json - const settingDiagnostic = BotIndexer.checkSetting(botAssets, rootSetting); - settingDiagnostic.forEach((item) => { - diagnosticList.push(new SettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); - }); - - //Check bot settings & dialog - //files meet LUIS/QnA requirments. - //appsettings.json - const luisLocaleDiagnostics = BotIndexer.checkLUISLocales(botAssets); - const qnaLocaleDiagnostics = BotIndexer.checkQnALocales(botAssets); - - luisLocaleDiagnostics.forEach((item) => { - diagnosticList.push(new SettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); - }); - - qnaLocaleDiagnostics.forEach((item) => { - diagnosticList.push(new SettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); - }); - - return diagnosticList; - }, + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + if (botAssets === null) return []; + + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const rootSetting = get(settingsState(rootProjectId)); + const diagnosticList: DiagnosticInfo[] = []; + + //1. Missing LUIS key + //2. Missing QnA Maker subscription key. + //appsettings.json + const settingDiagnostic = BotIndexer.checkSetting(botAssets, rootSetting); + settingDiagnostic.forEach((item) => { + diagnosticList.push(new SettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); + }); + + //Check bot settings & dialog + //files meet LUIS/QnA requirments. + //appsettings.json + const luisLocaleDiagnostics = BotIndexer.checkLUISLocales(botAssets); + const qnaLocaleDiagnostics = BotIndexer.checkQnALocales(botAssets); + + luisLocaleDiagnostics.forEach((item) => { + diagnosticList.push(new SettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); + }); + + qnaLocaleDiagnostics.forEach((item) => { + diagnosticList.push(new SettingDiagnostic(rootProjectId, projectId, item.source, item.source, item)); + }); + + return diagnosticList; + }, }); export const dialogsDiagnosticsSelectorFamily = selectorFamily({ key: 'dialogsDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - const { dialogs } = botAssets; + if (botAssets === null) return []; + const { dialogs } = botAssets; - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const dialogIds = get(dialogIdsState(projectId)); + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const dialogIds = get(dialogIdsState(projectId)); - const diagnosticList: DiagnosticInfo[] = []; + const diagnosticList: DiagnosticInfo[] = []; - dialogIds.forEach((dialogId: string) => { - const diagnostics = get(dialogDiagnosticsSelectorFamily({ projectId, dialogId })) || []; - diagnostics.forEach((diagnostic) => { - const location = `${dialogId}.dialog`; - diagnosticList.push(new DialogDiagnostic(rootProjectId, projectId, dialogId, location, diagnostic, dialogs)); + dialogIds.forEach((dialogId: string) => { + const diagnostics = get(dialogDiagnosticsSelectorFamily({ projectId, dialogId })) || []; + diagnostics.forEach((diagnostic) => { + const location = `${dialogId}.dialog`; + diagnosticList.push(new DialogDiagnostic(rootProjectId, projectId, dialogId, location, diagnostic, dialogs)); + }); }); - }); - return diagnosticList; - }, + return diagnosticList; + }, }); export const schemaDiagnosticsSelectorFamily = selectorFamily({ key: 'schemaDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - const { dialogs } = botAssets; - - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - - /** - * `botAssets.dialogSchema` contains all *.schema files loaded by project indexer. However, it actually messes up sdk.schema and *.dialog.schema. - * To get the correct sdk.schema content, current workaround is to filter schema by id. - * - * TODO: To fix it entirely, we need to differentiate dialog.schema from sdk.schema in indexer. - */ - const sdkSchemaContent = botAssets.dialogSchemas.find((d) => d.id === '')?.content; - if (!sdkSchemaContent) return []; - - const fullDiagnostics: DiagnosticInfo[] = []; - botAssets.dialogs.forEach((dialog) => { - const diagnostics = validateSchema(dialog.id, dialog.content, sdkSchemaContent); - fullDiagnostics.push( - ...diagnostics.map((d) => { - let location = dialog.id; - if (d.path) { - const list = d.path.split('.'); - let path = ''; - location = [ - location, - ...list.map((item) => { - path = `${path}${path ? '.' : ''}${item}`; - return getFriendlyName(lodashGet(dialog.content, path)) || ''; - }), - ].join('>'); - } - return new SchemaDiagnostic(rootProjectId, projectId, dialog.id, location, d, dialogs); - }) - ); - }); - return fullDiagnostics; - }, + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + if (botAssets === null) return []; + const { dialogs } = botAssets; + + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + + /** + * `botAssets.dialogSchema` contains all *.schema files loaded by project indexer. However, it actually messes up sdk.schema and *.dialog.schema. + * To get the correct sdk.schema content, current workaround is to filter schema by id. + * + * TODO: To fix it entirely, we need to differentiate dialog.schema from sdk.schema in indexer. + */ + const sdkSchemaContent = botAssets.dialogSchemas.find((d) => d.id === '')?.content; + if (!sdkSchemaContent) return []; + + const fullDiagnostics: DiagnosticInfo[] = []; + botAssets.dialogs.forEach((dialog) => { + const diagnostics = validateSchema(dialog.id, dialog.content, sdkSchemaContent); + fullDiagnostics.push( + ...diagnostics.map((d) => { + let location = dialog.id; + if (d.path) { + const list = d.path.split('.'); + let path = ''; + location = [ + location, + ...list.map((item) => { + path = `${path}${path ? '.' : ''}${item}`; + return getFriendlyName(lodashGet(dialog.content, path)) || ''; + }), + ].join('>'); + } + return new SchemaDiagnostic(rootProjectId, projectId, dialog.id, location, d, dialogs); + }), + ); + }); + return fullDiagnostics; + }, }); export const luDiagnosticsSelectorFamily = selectorFamily({ key: 'luDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - - if (botAssets === null) return []; - - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const diagnosticList: DiagnosticInfo[] = []; - const { luFiles, dialogs } = botAssets; - - getReferredLuFiles(luFiles, dialogs).forEach((lufile) => { - lufile.diagnostics.forEach((diagnostic) => { - const location = `${lufile.id}.lu`; - diagnosticList.push( - new LuDiagnostic(rootProjectId, projectId, lufile.id, location, diagnostic, lufile, dialogs) - ); + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + + if (botAssets === null) return []; + + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const diagnosticList: DiagnosticInfo[] = []; + const { luFiles, dialogs } = botAssets; + + getReferredLuFiles(luFiles, dialogs).forEach((lufile) => { + lufile.diagnostics.forEach((diagnostic) => { + const location = `${lufile.id}.lu`; + diagnosticList.push( + new LuDiagnostic(rootProjectId, projectId, lufile.id, location, diagnostic, lufile, dialogs), + ); + }); }); - }); - return diagnosticList; - }, + return diagnosticList; + }, }); export const lgDiagnosticsSelectorFamily = selectorFamily({ key: 'lgDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - - const { lgFiles, dialogs } = botAssets; - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const diagnosticList: DiagnosticInfo[] = []; - - lgFiles.forEach((lgFile) => { - lgFile.diagnostics.forEach((diagnostic) => { - const location = `${lgFile.id}.lg`; - diagnosticList.push( - new LgDiagnostic(rootProjectId, projectId, lgFile.id, location, diagnostic, lgFile, dialogs) - ); + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + if (botAssets === null) return []; + + const { lgFiles, dialogs } = botAssets; + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const diagnosticList: DiagnosticInfo[] = []; + + lgFiles.forEach((lgFile) => { + lgFile.diagnostics.forEach((diagnostic) => { + const location = `${lgFile.id}.lg`; + diagnosticList.push( + new LgDiagnostic(rootProjectId, projectId, lgFile.id, location, diagnostic, lgFile, dialogs), + ); + }); }); - }); - return diagnosticList; - }, + return diagnosticList; + }, }); export const qnaDiagnosticsSelectorFamily = selectorFamily({ key: 'qnaDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const botAssets = get(botAssetsSelectFamily(projectId)); - if (botAssets === null) return []; - - const { qnaFiles } = botAssets; - const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; - const diagnosticList: DiagnosticInfo[] = []; - - qnaFiles.forEach((qnaFile) => { - lodashGet(qnaFile, 'diagnostics', []).forEach((diagnostic) => { - const location = `${qnaFile.id}.qna`; - diagnosticList.push(new QnADiagnostic(rootProjectId, projectId, qnaFile.id, location, diagnostic)); + get: + (projectId: string) => + ({ get }) => { + const botAssets = get(botAssetsSelectFamily(projectId)); + if (botAssets === null) return []; + + const { qnaFiles } = botAssets; + const rootProjectId = get(rootBotProjectIdSelector) ?? projectId; + const diagnosticList: DiagnosticInfo[] = []; + + qnaFiles.forEach((qnaFile) => { + lodashGet(qnaFile, 'diagnostics', []).forEach((diagnostic) => { + const location = `${qnaFile.id}.qna`; + diagnosticList.push(new QnADiagnostic(rootProjectId, projectId, qnaFile.id, location, diagnostic)); + }); }); - }); - return diagnosticList; - }, + return diagnosticList; + }, }); export const diagnosticsSelectorFamily = selectorFamily({ key: 'diagnosticsSelector', - get: (projectId: string) => ({ get }) => [ - ...get(dialogsDiagnosticsSelectorFamily(projectId)), - ...get(botDiagnosticsSelectorFamily(projectId)), - ...get(skillSettingDiagnosticsSelectorFamily(projectId)), - ...get(settingDiagnosticsSelectorFamily(projectId)), - ...get(luDiagnosticsSelectorFamily(projectId)), - ...get(lgDiagnosticsSelectorFamily(projectId)), - ...get(qnaDiagnosticsSelectorFamily(projectId)), - ...get(schemaDiagnosticsSelectorFamily(projectId)), - ], + get: + (projectId: string) => + ({ get }) => [ + ...get(dialogsDiagnosticsSelectorFamily(projectId)), + ...get(botDiagnosticsSelectorFamily(projectId)), + ...get(skillSettingDiagnosticsSelectorFamily(projectId)), + ...get(settingDiagnosticsSelectorFamily(projectId)), + ...get(luDiagnosticsSelectorFamily(projectId)), + ...get(lgDiagnosticsSelectorFamily(projectId)), + ...get(qnaDiagnosticsSelectorFamily(projectId)), + ...get(schemaDiagnosticsSelectorFamily(projectId)), + ], }); export const allDiagnosticsSelectorFamily = selectorFamily({ key: 'allDiagnosticsSelector', - get: (severitiesToFilter: DiagnosticSeverity[]) => ({ get }) => { - const ids = get(botProjectIdsState); - const result = ids.reduce((result: DiagnosticInfo[], id: string) => { - return [ - ...result, - ...get(diagnosticsSelectorFamily(id)).filter((diagnostic) => severitiesToFilter.includes(diagnostic.severity)), - ]; - }, []); - return result; - }, + get: + (severitiesToFilter: DiagnosticSeverity[]) => + ({ get }) => { + const ids = get(botProjectIdsState); + const result = ids.reduce((result: DiagnosticInfo[], id: string) => { + return [ + ...result, + ...get(diagnosticsSelectorFamily(id)).filter((diagnostic) => + severitiesToFilter.includes(diagnostic.severity), + ), + ]; + }, []); + return result; + }, }); export const diagnosticNavLinksSelector = selector({ diff --git a/Composer/packages/client/src/recoilModel/selectors/dialogImports.ts b/Composer/packages/client/src/recoilModel/selectors/dialogImports.ts index a487d90f05..72044d46d5 100644 --- a/Composer/packages/client/src/recoilModel/selectors/dialogImports.ts +++ b/Composer/packages/client/src/recoilModel/selectors/dialogImports.ts @@ -14,7 +14,7 @@ import { luFilesSelectorFamily } from './lu'; // Finds all the file imports starting from a given dialog file. export const getLanguageFileImports = ( rootDialogId: string, - getFile: (fileId: string) => T + getFile: (fileId: string) => T, ): LanguageFileImport[] => { const imports: LanguageFileImport[] = []; @@ -31,7 +31,7 @@ export const getLanguageFileImports = ( const file = getFile(currentId); // If file is not found or file content is empty, then continue. - if (!file || !file.content) { + if (!file?.content) { // eslint-disable-next-line no-console console.warn(`Could not find language import file ${currentId}`); continue; @@ -58,26 +58,30 @@ export const getLanguageFileImports = ( // Returns all the lg imports referenced by a dialog file and its referenced lg files. export const lgImportsSelectorFamily = selectorFamily({ key: 'lgImports', - get: ({ projectId, dialogId }) => ({ get }) => { - const locale = get(localeState(projectId)); + get: + ({ projectId, dialogId }) => + ({ get }) => { + const locale = get(localeState(projectId)); - const getFile = (fileId: string) => - get(lgFilesSelectorFamily(projectId)).find((f) => f.id === fileId || f.id === `${fileId}.${locale}`) as LgFile; + const getFile = (fileId: string) => + get(lgFilesSelectorFamily(projectId)).find((f) => f.id === fileId || f.id === `${fileId}.${locale}`) as LgFile; - // Have to exclude common as a special case - return getLanguageFileImports(dialogId, getFile).filter((i) => getBaseName(i.id) !== 'common'); - }, + // Have to exclude common as a special case + return getLanguageFileImports(dialogId, getFile).filter((i) => getBaseName(i.id) !== 'common'); + }, }); // Returns all the lu imports referenced by a dialog file and its referenced lu files. export const luImportsSelectorFamily = selectorFamily({ key: 'luImports', - get: ({ projectId, dialogId }) => ({ get }) => { - const locale = get(localeState(projectId)); + get: + ({ projectId, dialogId }) => + ({ get }) => { + const locale = get(localeState(projectId)); - const getFile = (fileId: string) => - get(luFilesSelectorFamily(projectId)).find((f) => f.id === fileId || f.id === `${fileId}.${locale}`) as LuFile; + const getFile = (fileId: string) => + get(luFilesSelectorFamily(projectId)).find((f) => f.id === fileId || f.id === `${fileId}.${locale}`) as LuFile; - return getLanguageFileImports(dialogId, getFile); - }, + return getLanguageFileImports(dialogId, getFile); + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/dialogs.ts b/Composer/packages/client/src/recoilModel/selectors/dialogs.ts index d29def42ae..c8c15c8533 100644 --- a/Composer/packages/client/src/recoilModel/selectors/dialogs.ts +++ b/Composer/packages/client/src/recoilModel/selectors/dialogs.ts @@ -10,66 +10,76 @@ import { dialogsWithLuProviderSelectorFamily } from './validatedDialogs'; export const dialogsSelectorFamily = selectorFamily({ key: 'dialogs', - get: (projectId: string) => ({ get }) => { - const dialogIds = get(dialogIdsState(projectId)); - return dialogIds - .map((dialogId) => { - const result = get(dialogState({ projectId, dialogId })); - return result; - }) - .filter((d) => !d.isTopic); - }, - set: (projectId: string) => ({ set }, newDialogs) => { - const newDialogArray = newDialogs as DialogInfo[]; + get: + (projectId: string) => + ({ get }) => { + const dialogIds = get(dialogIdsState(projectId)); + return dialogIds + .map((dialogId) => { + const result = get(dialogState({ projectId, dialogId })); + return result; + }) + .filter((d) => !d.isTopic); + }, + set: + (projectId: string) => + ({ set }, newDialogs) => { + const newDialogArray = newDialogs as DialogInfo[]; - set( - dialogIdsState(projectId), - newDialogArray.map((dialog) => dialog.id) - ); - newDialogArray.forEach((dialog) => set(dialogState({ projectId, dialogId: dialog.id }), dialog)); - }, + set( + dialogIdsState(projectId), + newDialogArray.map((dialog) => dialog.id), + ); + newDialogArray.forEach((dialog) => set(dialogState({ projectId, dialogId: dialog.id }), dialog)); + }, }); export const topicsSelectorFamily = selectorFamily({ key: 'topics', - get: (projectId: string) => ({ get }) => { - const dialogIds = get(dialogIdsState(projectId)); + get: + (projectId: string) => + ({ get }) => { + const dialogIds = get(dialogIdsState(projectId)); - return dialogIds - .map((dialogId) => { - return get(dialogState({ projectId, dialogId })); - }) - .filter((d) => d.isTopic) - .sort((a, b) => { - // sort system topics at the end of the list - if (a.content?.isSystemTopic) { - return 1; - } else if (b.content?.isSystemTopic) { - return -1; - } else { - return 0; - } - }); - }, + return dialogIds + .map((dialogId) => { + return get(dialogState({ projectId, dialogId })); + }) + .filter((d) => d.isTopic) + .sort((a, b) => { + // sort system topics at the end of the list + if (a.content?.isSystemTopic) { + return 1; + } else if (b.content?.isSystemTopic) { + return -1; + } else { + return 0; + } + }); + }, }); export const currentDialogState = selectorFamily({ key: 'currentDialog', - get: ({ projectId, dialogId }) => ({ get }) => { - const dialogIds = get(dialogIdsState(projectId)); - if (dialogId && dialogIds.includes(dialogId)) { - return get(dialogState({ projectId, dialogId })); - } + get: + ({ projectId, dialogId }) => + ({ get }) => { + const dialogIds = get(dialogIdsState(projectId)); + if (dialogId && dialogIds.includes(dialogId)) { + return get(dialogState({ projectId, dialogId })); + } - return get(dialogsSelectorFamily(projectId))?.[0]; - }, + return get(dialogsSelectorFamily(projectId))?.[0]; + }, }); export const rootDialogSelector = selectorFamily({ key: 'luFiles', - get: (projectId: string) => ({ get }) => { - const dialogs = get(dialogsWithLuProviderSelectorFamily(projectId)); + get: + (projectId: string) => + ({ get }) => { + const dialogs = get(dialogsWithLuProviderSelectorFamily(projectId)); - return dialogs.find((d) => d.isRoot); - }, + return dialogs.find((d) => d.isRoot); + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/lg.ts b/Composer/packages/client/src/recoilModel/selectors/lg.ts index c4a45d7694..9389b257dc 100644 --- a/Composer/packages/client/src/recoilModel/selectors/lg.ts +++ b/Composer/packages/client/src/recoilModel/selectors/lg.ts @@ -8,21 +8,25 @@ import { lgFileIdsState, lgFileState, settingsState } from '../atoms'; export const lgFilesSelectorFamily = selectorFamily({ key: 'lgFiles', - get: (projectId: string) => ({ get }) => { - const lgFileIds = get(lgFileIdsState(projectId)); - const settings = get(settingsState(projectId)); - return lgFileIds.map((lgFileId) => { - const lgFile = get(lgFileState({ projectId, lgFileId })); - const diagnostics = filterCustomFunctionError(lgFile.diagnostics, settings?.customFunctions ?? []); - return { ...lgFile, diagnostics }; - }); - }, - set: (projectId: string) => ({ set }, newLgFiles) => { - const newLgFileArray = newLgFiles as LgFile[]; - set( - lgFileIdsState(projectId), - newLgFileArray.map((lgFile) => lgFile.id) - ); - newLgFileArray.forEach((lgFile) => set(lgFileState({ projectId, lgFileId: lgFile.id }), lgFile)); - }, + get: + (projectId: string) => + ({ get }) => { + const lgFileIds = get(lgFileIdsState(projectId)); + const settings = get(settingsState(projectId)); + return lgFileIds.map((lgFileId) => { + const lgFile = get(lgFileState({ projectId, lgFileId })); + const diagnostics = filterCustomFunctionError(lgFile.diagnostics, settings?.customFunctions ?? []); + return { ...lgFile, diagnostics }; + }); + }, + set: + (projectId: string) => + ({ set }, newLgFiles) => { + const newLgFileArray = newLgFiles as LgFile[]; + set( + lgFileIdsState(projectId), + newLgFileArray.map((lgFile) => lgFile.id), + ); + newLgFileArray.forEach((lgFile) => set(lgFileState({ projectId, lgFileId: lgFile.id }), lgFile)); + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/localRuntimeBuilder.ts b/Composer/packages/client/src/recoilModel/selectors/localRuntimeBuilder.ts index 8c060d7881..8d4bd1f875 100644 --- a/Composer/packages/client/src/recoilModel/selectors/localRuntimeBuilder.ts +++ b/Composer/packages/client/src/recoilModel/selectors/localRuntimeBuilder.ts @@ -19,49 +19,55 @@ import { qnaFilesSelectorFamily } from './qna'; export const trackBotStatusesSelector = selectorFamily({ key: 'trackBotStatusesSelector', - get: (trackedProjectIds: string[]) => ({ get }) => { - if (trackedProjectIds.length === 0) { - return false; - } - const areBotsRunning = trackedProjectIds.find((projectId: string) => { - const currentStatus = get(botStatusState(projectId)); - return currentStatus !== BotStatus.connected && currentStatus !== BotStatus.failed; - }); - return areBotsRunning; - }, + get: + (trackedProjectIds: string[]) => + ({ get }) => { + if (trackedProjectIds.length === 0) { + return false; + } + const areBotsRunning = trackedProjectIds.find((projectId: string) => { + const currentStatus = get(botStatusState(projectId)); + return currentStatus !== BotStatus.connected && currentStatus !== BotStatus.failed; + }); + return areBotsRunning; + }, }); export const botBuildRequiredSelector = selectorFamily({ key: 'botBuildRequiredSelector', - get: (projectId: string) => ({ get }) => { - const dialogs = get(dialogsSelectorFamily(projectId)); - return !isAbsHosted() && needsBuild(dialogs); - }, + get: + (projectId: string) => + ({ get }) => { + const dialogs = get(dialogsSelectorFamily(projectId)); + return !isAbsHosted() && needsBuild(dialogs); + }, }); export const buildEssentialsSelector = selectorFamily({ key: 'buildEssentialsSelector', - get: (projectId: string) => ({ get }) => { - const settings = get(settingsState(projectId)); - const configuration = { - luis: settings.luis, - qna: settings.qna, - orchestrator: settings.orchestrator, - }; - const dialogs = get(dialogsSelectorFamily(projectId)); - const luFiles = get(luFilesSelectorFamily(projectId)); - const qnaFiles = get(qnaFilesSelectorFamily(projectId)); - const buildRequired = get(botBuildRequiredSelector(projectId)); - const status = get(botStatusState(projectId)); + get: + (projectId: string) => + ({ get }) => { + const settings = get(settingsState(projectId)); + const configuration = { + luis: settings.luis, + qna: settings.qna, + orchestrator: settings.orchestrator, + }; + const dialogs = get(dialogsSelectorFamily(projectId)); + const luFiles = get(luFilesSelectorFamily(projectId)); + const qnaFiles = get(qnaFilesSelectorFamily(projectId)); + const buildRequired = get(botBuildRequiredSelector(projectId)); + const status = get(botStatusState(projectId)); - return { - isConfigurationComplete: isBuildConfigurationComplete(configuration, dialogs, luFiles, qnaFiles), - configuration, - buildRequired, - projectId, - status, - }; - }, + return { + isConfigurationComplete: isBuildConfigurationComplete(configuration, dialogs, luFiles, qnaFiles), + configuration, + buildRequired, + projectId, + status, + }; + }, }); export const buildConfigurationSelector = selector({ diff --git a/Composer/packages/client/src/recoilModel/selectors/lu.ts b/Composer/packages/client/src/recoilModel/selectors/lu.ts index 555118b23e..b3ddfd372e 100644 --- a/Composer/packages/client/src/recoilModel/selectors/lu.ts +++ b/Composer/packages/client/src/recoilModel/selectors/lu.ts @@ -8,19 +8,23 @@ import { luFileIdsState, luFileState } from '../atoms'; export const luFilesSelectorFamily = selectorFamily({ key: 'luFiles', - get: (projectId: string) => ({ get }) => { - const luFileIds = get(luFileIdsState(projectId)); + get: + (projectId: string) => + ({ get }) => { + const luFileIds = get(luFileIdsState(projectId)); - return luFileIds.map((luFileId) => { - return get(luFileState({ projectId, luFileId })); - }); - }, - set: (projectId: string) => ({ set }, newLuFiles: LuFile[] | DefaultValue) => { - if (newLuFiles instanceof DefaultValue) return; - set( - luFileIdsState(projectId), - newLuFiles.map((luFile) => luFile.id) - ); - newLuFiles.forEach((luFile) => set(luFileState({ projectId, luFileId: luFile.id }), luFile)); - }, + return luFileIds.map((luFileId) => { + return get(luFileState({ projectId, luFileId })); + }); + }, + set: + (projectId: string) => + ({ set }, newLuFiles: LuFile[] | DefaultValue) => { + if (newLuFiles instanceof DefaultValue) return; + set( + luFileIdsState(projectId), + newLuFiles.map((luFile) => luFile.id), + ); + newLuFiles.forEach((luFile) => set(luFileState({ projectId, luFileId: luFile.id }), luFile)); + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/project.ts b/Composer/packages/client/src/recoilModel/selectors/project.ts index d2d566c9fe..36dda3add1 100644 --- a/Composer/packages/client/src/recoilModel/selectors/project.ts +++ b/Composer/packages/client/src/recoilModel/selectors/project.ts @@ -132,19 +132,23 @@ export const localBotsSettingDataSelector = selector({ export const formDialogSchemasSelectorFamily = selectorFamily({ key: 'formDialogSchemasSelector', - get: (projectId: string) => ({ get }) => { - const formDialogSchemaIds = get(formDialogSchemaIdsState(projectId)); - return formDialogSchemaIds.map((schemaId) => get(formDialogSchemaState({ projectId, schemaId }))); - }, + get: + (projectId: string) => + ({ get }) => { + const formDialogSchemaIds = get(formDialogSchemaIdsState(projectId)); + return formDialogSchemaIds.map((schemaId) => get(formDialogSchemaState({ projectId, schemaId }))); + }, }); // Given a form dialog schema, indicates if the dialog exist for it (aka is generated) export const formDialogSchemaDialogExistsSelector = selectorFamily({ key: 'formDialogSchemasSelector', - get: ({ projectId, schemaId }) => ({ get }) => { - const dialogs = get(dialogsSelectorFamily(projectId)); - return !!dialogs.find((d) => d.id === schemaId); - }, + get: + ({ projectId, schemaId }) => + ({ get }) => { + const dialogs = get(dialogsSelectorFamily(projectId)); + return !!dialogs.find((d) => d.id === schemaId); + }, }); // TODO: This selector would be modified and leveraged by the project tree @@ -239,37 +243,39 @@ export const jsonSchemaFilesByProjectIdSelector = selector({ export const perProjectDiagnosticsSelectorFamily = selectorFamily({ key: 'perProjectDiagnosticsSelectorFamily', - get: (projectId: string) => ({ get }) => { - const { isRemote, isRootBot } = get(projectMetaDataState(projectId)); - const rootBotId = get(rootBotProjectIdSelector) || projectId; - const rootSetting = get(settingsState(rootBotId)); - const dialogs = get(dialogsWithLuProviderSelectorFamily(projectId)); - const formDialogSchemas = get(formDialogSchemasSelectorFamily(projectId)); - const luFiles = get(luFilesSelectorFamily(projectId)); - const lgFiles = get(lgFilesSelectorFamily(projectId)); - const setting = get(settingsState(projectId)); - const skillManifests = get(skillManifestsState(projectId)); - const dialogSchemas = get(dialogSchemasState(projectId)); - const qnaFiles = get(qnaFilesSelectorFamily(projectId)); - const botProjectFile = get(botProjectFileState(projectId)); - const jsonSchemaFiles = get(jsonSchemaFilesState(projectId)); - const botAssets: BotAssets = { - projectId, - dialogs, - luFiles, - qnaFiles, - lgFiles, - skillManifests, - setting, - dialogSchemas, - formDialogSchemas, - botProjectFile, - jsonSchemaFiles, - recognizers: [], - crossTrainConfig: {}, - }; - return BotIndexer.validate({ ...botAssets, isRemote, isRootBot }, rootSetting); - }, + get: + (projectId: string) => + ({ get }) => { + const { isRemote, isRootBot } = get(projectMetaDataState(projectId)); + const rootBotId = get(rootBotProjectIdSelector) || projectId; + const rootSetting = get(settingsState(rootBotId)); + const dialogs = get(dialogsWithLuProviderSelectorFamily(projectId)); + const formDialogSchemas = get(formDialogSchemasSelectorFamily(projectId)); + const luFiles = get(luFilesSelectorFamily(projectId)); + const lgFiles = get(lgFilesSelectorFamily(projectId)); + const setting = get(settingsState(projectId)); + const skillManifests = get(skillManifestsState(projectId)); + const dialogSchemas = get(dialogSchemasState(projectId)); + const qnaFiles = get(qnaFilesSelectorFamily(projectId)); + const botProjectFile = get(botProjectFileState(projectId)); + const jsonSchemaFiles = get(jsonSchemaFilesState(projectId)); + const botAssets: BotAssets = { + projectId, + dialogs, + luFiles, + qnaFiles, + lgFiles, + skillManifests, + setting, + dialogSchemas, + formDialogSchemas, + botProjectFile, + jsonSchemaFiles, + recognizers: [], + crossTrainConfig: {}, + }; + return BotIndexer.validate({ ...botAssets, isRemote, isRootBot }, rootSetting); + }, }); export const botProjectDiagnosticsSelector = selector({ @@ -369,27 +375,29 @@ export const projectTreeSelectorFamily = selector({ export const webChatEssentialsSelector = selectorFamily({ key: 'webChatEssentialsSelector', - get: (projectId: string) => ({ get }) => { - const settings = get(settingsState(projectId)); - const secret = { - msAppId: settings.MicrosoftAppId || '', - msPassword: settings.MicrosoftAppPassword || '', - }; - const botEndpoints = get(botEndpointsState); - const botUrl = botEndpoints[projectId]?.url; - const botName = get(botDisplayNameState(projectId)); - const activeLocale = get(localeState(projectId)); - const botStatus = get(botStatusState(projectId)); - - return { - projectId, - botName, - secret: secret, - botUrl, - activeLocale, - botStatus, - }; - }, + get: + (projectId: string) => + ({ get }) => { + const settings = get(settingsState(projectId)); + const secret = { + msAppId: settings.MicrosoftAppId || '', + msPassword: settings.MicrosoftAppPassword || '', + }; + const botEndpoints = get(botEndpointsState); + const botUrl = botEndpoints[projectId]?.url; + const botName = get(botDisplayNameState(projectId)); + const activeLocale = get(localeState(projectId)); + const botStatus = get(botStatusState(projectId)); + + return { + projectId, + botName, + secret: secret, + botUrl, + activeLocale, + botStatus, + }; + }, }); function getBaseName(filename: string, sep?: string): string { @@ -420,7 +428,7 @@ export const allRequiredRecognizersSelector = selector({ if (botAssets) { const { dialogs, luFiles, qnaFiles } = botAssets; const requiresLUIS = dialogs.some( - (dialog) => dialog.luProvider === SDKKinds.LuisRecognizer && !isEmptyFile(luFiles, dialog.luFile) + (dialog) => dialog.luProvider === SDKKinds.LuisRecognizer && !isEmptyFile(luFiles, dialog.luFile), ); const requiresQNA = qnaFiles.some((file) => file.content.trim().replace(/^>.*$/g, '').trim() !== ''); result.push({ projectId: id, requiresLUIS, requiresQNA }); @@ -448,14 +456,16 @@ export const outputsDebugPanelSelector = selector({ export const luFileLuFeatureSelector = selectorFamily({ key: 'luFileLuFeatureSelector', - get: ({ projectId, id }) => ({ get }) => { - const recognizers = get(recognizersSelectorFamily(projectId)); - const { luFeatures } = get(settingsState(projectId)); - - const isOrchestartor = recognizers.some( - (f) => f.id === `${id}.lu.dialog` && f.content.$kind === SDKKinds.OrchestratorRecognizer - ); - - return { ...luFeatures, isOrchestartor }; - }, + get: + ({ projectId, id }) => + ({ get }) => { + const recognizers = get(recognizersSelectorFamily(projectId)); + const { luFeatures } = get(settingsState(projectId)); + + const isOrchestartor = recognizers.some( + (f) => f.id === `${id}.lu.dialog` && f.content.$kind === SDKKinds.OrchestratorRecognizer, + ); + + return { ...luFeatures, isOrchestartor }; + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/qna.ts b/Composer/packages/client/src/recoilModel/selectors/qna.ts index 6b2be2148a..101e3e08da 100644 --- a/Composer/packages/client/src/recoilModel/selectors/qna.ts +++ b/Composer/packages/client/src/recoilModel/selectors/qna.ts @@ -8,20 +8,24 @@ import { qnaFileIdsState, qnaFileState } from '../atoms'; export const qnaFilesSelectorFamily = selectorFamily({ key: 'qnaFiles', - get: (projectId: string) => ({ get }) => { - const qnaFileIds = get(qnaFileIdsState(projectId)); + get: + (projectId: string) => + ({ get }) => { + const qnaFileIds = get(qnaFileIdsState(projectId)); - return qnaFileIds.map((qnaFileId) => { - return get(qnaFileState({ projectId, qnaFileId })); - }); - }, - set: (projectId: string) => ({ set }, newQnaFiles: QnAFile[] | DefaultValue) => { - if (newQnaFiles instanceof DefaultValue) return; + return qnaFileIds.map((qnaFileId) => { + return get(qnaFileState({ projectId, qnaFileId })); + }); + }, + set: + (projectId: string) => + ({ set }, newQnaFiles: QnAFile[] | DefaultValue) => { + if (newQnaFiles instanceof DefaultValue) return; - set( - qnaFileIdsState(projectId), - newQnaFiles.map((qnaFile) => qnaFile.id) - ); - newQnaFiles.forEach((qnaFile) => set(qnaFileState({ projectId, qnaFileId: qnaFile.id }), qnaFile)); - }, + set( + qnaFileIdsState(projectId), + newQnaFiles.map((qnaFile) => qnaFile.id), + ); + newQnaFiles.forEach((qnaFile) => set(qnaFileState({ projectId, qnaFileId: qnaFile.id }), qnaFile)); + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/recognizers.ts b/Composer/packages/client/src/recoilModel/selectors/recognizers.ts index 8e772bdbdb..356d51b023 100644 --- a/Composer/packages/client/src/recoilModel/selectors/recognizers.ts +++ b/Composer/packages/client/src/recoilModel/selectors/recognizers.ts @@ -7,19 +7,23 @@ import { recognizerIdsState, recognizerState } from '../atoms'; export const recognizersSelectorFamily = selectorFamily({ key: 'recognizers', - get: (projectId: string) => ({ get }) => { - const recognizerIds = get(recognizerIdsState(projectId)); + get: + (projectId: string) => + ({ get }) => { + const recognizerIds = get(recognizerIdsState(projectId)); - return recognizerIds.map((id) => { - return get(recognizerState({ projectId, id })); - }); - }, - set: (projectId: string) => ({ set }, newRecognizers) => { - const newRecognizerArray = newRecognizers as RecognizerFile[]; - set( - recognizerIdsState(projectId), - newRecognizerArray.map((file) => file.id) - ); - newRecognizerArray.forEach((file) => set(recognizerState({ projectId, id: file.id }), file)); - }, + return recognizerIds.map((id) => { + return get(recognizerState({ projectId, id })); + }); + }, + set: + (projectId: string) => + ({ set }, newRecognizers) => { + const newRecognizerArray = newRecognizers as RecognizerFile[]; + set( + recognizerIdsState(projectId), + newRecognizerArray.map((file) => file.id), + ); + newRecognizerArray.forEach((file) => set(recognizerState({ projectId, id: file.id }), file)); + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/skills.ts b/Composer/packages/client/src/recoilModel/selectors/skills.ts index 87e2f4b1b3..58c5e73467 100644 --- a/Composer/packages/client/src/recoilModel/selectors/skills.ts +++ b/Composer/packages/client/src/recoilModel/selectors/skills.ts @@ -110,7 +110,7 @@ export const skillUsedInBotsSelector = selector({ result[skillId] = usedInBots; return result; }, - {} + {}, ); return skillInBots; }, diff --git a/Composer/packages/client/src/recoilModel/selectors/undo.ts b/Composer/packages/client/src/recoilModel/selectors/undo.ts index f031ca1c3e..65f867dd63 100644 --- a/Composer/packages/client/src/recoilModel/selectors/undo.ts +++ b/Composer/packages/client/src/recoilModel/selectors/undo.ts @@ -6,9 +6,11 @@ import { canRedoState, canUndoState } from '../atoms/botState'; export const undoStatusSelectorFamily = selectorFamily<[boolean, boolean], string>({ key: 'undoStatus', - get: (projectId: string) => ({ get }) => { - const canUndo = get(canUndoState(projectId)); - const canRedo = get(canRedoState(projectId)); - return [canUndo, canRedo]; - }, + get: + (projectId: string) => + ({ get }) => { + const canUndo = get(canUndoState(projectId)); + const canRedo = get(canRedoState(projectId)); + return [canUndo, canRedo]; + }, }); diff --git a/Composer/packages/client/src/recoilModel/selectors/validatedDialogs.ts b/Composer/packages/client/src/recoilModel/selectors/validatedDialogs.ts index 39d0475f64..769fb6d9dc 100644 --- a/Composer/packages/client/src/recoilModel/selectors/validatedDialogs.ts +++ b/Composer/packages/client/src/recoilModel/selectors/validatedDialogs.ts @@ -16,40 +16,44 @@ const dialogCache = new ClientStorage(window.sessionStorage, 'dialogCache'); type validateDialogSelectorFamilyParams = { projectId: string; dialogId: string }; export const dialogsWithLuProviderSelectorFamily = selectorFamily({ key: 'dialogLuProviderSelectorFamily', - get: (projectId: string) => ({ get }) => { - const dialogs = get(dialogsSelectorFamily(projectId)); - const recognizers: RecognizerFile[] = get(recognizersSelectorFamily(projectId)); - return dialogs.map((dialog) => { - return { - ...dialog, - luProvider: getLuProvider(dialog.id, recognizers), - }; - }); - }, + get: + (projectId: string) => + ({ get }) => { + const dialogs = get(dialogsSelectorFamily(projectId)); + const recognizers: RecognizerFile[] = get(recognizersSelectorFamily(projectId)); + return dialogs.map((dialog) => { + return { + ...dialog, + luProvider: getLuProvider(dialog.id, recognizers), + }; + }); + }, }); export const dialogDiagnosticsSelectorFamily = selectorFamily({ key: 'dialogDiagnosticsSelectorFamily', - get: ({ projectId, dialogId }: validateDialogSelectorFamilyParams) => ({ get }) => { - if (get(projectMetaDataState(projectId)).isRemote) return []; - - const dialog: DialogInfo = get(dialogState({ projectId, dialogId })); - const schemas: BotSchemas = get(schemasState(projectId)); - const locale = get(localeState(projectId)); - const lgFile: LgFile = get(lgFileState({ projectId, lgFileId: `${dialogId}.${locale}` })); - const settings: DialogSetting = get(settingsState(projectId)); - const cacheId = `${projectId}-${dialogId}`; - - const { diagnostics, cache } = validateDialog( - dialog, - schemas.sdk.content, - settings, - [lgFile], - [], - dialogCache.get(cacheId) - ); - dialogCache.set(cacheId, cache); - - return diagnostics; - }, + get: + ({ projectId, dialogId }: validateDialogSelectorFamilyParams) => + ({ get }) => { + if (get(projectMetaDataState(projectId)).isRemote) return []; + + const dialog: DialogInfo = get(dialogState({ projectId, dialogId })); + const schemas: BotSchemas = get(schemasState(projectId)); + const locale = get(localeState(projectId)); + const lgFile: LgFile = get(lgFileState({ projectId, lgFileId: `${dialogId}.${locale}` })); + const settings: DialogSetting = get(settingsState(projectId)); + const cacheId = `${projectId}-${dialogId}`; + + const { diagnostics, cache } = validateDialog( + dialog, + schemas.sdk.content, + settings, + [lgFile], + [], + dialogCache.get(cacheId), + ); + dialogCache.set(cacheId, cache); + + return diagnostics; + }, }); diff --git a/Composer/packages/client/src/recoilModel/undo/history.ts b/Composer/packages/client/src/recoilModel/undo/history.ts index c08d74e738..fdfe1e925f 100644 --- a/Composer/packages/client/src/recoilModel/undo/history.ts +++ b/Composer/packages/client/src/recoilModel/undo/history.ts @@ -72,7 +72,7 @@ function mapTrackedAtomsOntoSnapshot( target: Snapshot, currentAssets: AtomAssetsMap, nextAssets: AtomAssetsMap, - projectId: string + projectId: string, ): Snapshot { trackedAtoms(projectId).forEach((atom) => { const current = currentAssets.get(atom); @@ -157,7 +157,7 @@ export const UndoRoot = React.memo((props: UndoRootProps) => { current: AtomAssetsMap, next: AtomAssetsMap, gotoSnapshot: (snapshot: Snapshot) => void, - projectId: string + projectId: string, ) => { target = mapTrackedAtomsOntoSnapshot(target, current, next, projectId); gotoSnapshot(target); diff --git a/Composer/packages/client/src/recoilModel/utils/fontUtil.ts b/Composer/packages/client/src/recoilModel/utils/fontUtil.ts index 8effec4e4e..ac4d26f782 100644 --- a/Composer/packages/client/src/recoilModel/utils/fontUtil.ts +++ b/Composer/packages/client/src/recoilModel/utils/fontUtil.ts @@ -15,8 +15,8 @@ export const getDefaultFontSettings = () => { platformName === OS.MacOS ? DEFAULT_MAC_FONT_FAMILY : platformName === OS.Linux - ? DEFAULT_LINUX_FONT_FAMILY - : DEFAULT_WINDOWS_FONT_FAMILY, + ? DEFAULT_LINUX_FONT_FAMILY + : DEFAULT_WINDOWS_FONT_FAMILY, fontWeight: 'normal', fontSize: '14px', lineHeight: 0, diff --git a/Composer/packages/client/src/recoilModel/utils/mapOptimizer.ts b/Composer/packages/client/src/recoilModel/utils/mapOptimizer.ts index a17d3b397d..a4cd0ae9e1 100644 --- a/Composer/packages/client/src/recoilModel/utils/mapOptimizer.ts +++ b/Composer/packages/client/src/recoilModel/utils/mapOptimizer.ts @@ -35,7 +35,10 @@ export class MapOptimizer { * @param capacity The capacity limit to trigger the optimization steps. * @param list The Map object to optimize. */ - constructor(private capacity: number, public list: Map) { + constructor( + private capacity: number, + public list: Map, + ) { this.attach(); } diff --git a/Composer/packages/client/src/shell/actionApi.ts b/Composer/packages/client/src/shell/actionApi.ts index e4e3741848..e7a35b53ca 100644 --- a/Composer/packages/client/src/shell/actionApi.ts +++ b/Composer/packages/client/src/shell/actionApi.ts @@ -39,7 +39,7 @@ export const useActionApi = (projectId: string) => { toId: string, lgText: string, hostActionData: MicrosoftIDialog, - hostFieldName: string + hostFieldName: string, ): Promise => { if (!lgText) return ''; return await deserializeLgTemplate(lgFileId, toId, lgText, hostActionData, hostFieldName, addLgTemplate); @@ -63,7 +63,7 @@ export const useActionApi = (projectId: string) => { luFileId: string, intent: LuIntentSection | undefined, hostResourceId: string, - hostResourceData: MicrosoftIDialog + hostResourceData: MicrosoftIDialog, ) => { if (!intent) return; @@ -132,7 +132,7 @@ export const useActionApi = (projectId: string) => { return destructActions( actions, (templates: string[]) => removeLgTemplates(dialogId, templates), - (luIntents: string[]) => Promise.all(luIntents.map((intent) => removeLuIntent(dialogId, intent))) + (luIntents: string[]) => Promise.all(luIntents.map((intent) => removeLuIntent(dialogId, intent))), ); } diff --git a/Composer/packages/client/src/shell/lgApi.ts b/Composer/packages/client/src/shell/lgApi.ts index 23d6aec7a9..d46842ae64 100644 --- a/Composer/packages/client/src/shell/lgApi.ts +++ b/Composer/packages/client/src/shell/lgApi.ts @@ -33,7 +33,7 @@ const memoizedDebounce = (func, wait, options = {}) => { function createLgApi( state: { dialogId: string; projectId: string }, actions: Dispatcher, - lgFileResolver: (id: string) => LgFile | undefined + lgFileResolver: (id: string) => LgFile | undefined, ): LgContextApi { const getLgTemplates = (id) => { if (id === undefined) throw new Error('must have a file id'); diff --git a/Composer/packages/client/src/shell/luApi.ts b/Composer/packages/client/src/shell/luApi.ts index 244c0d481d..7069e21e8d 100644 --- a/Composer/packages/client/src/shell/luApi.ts +++ b/Composer/packages/client/src/shell/luApi.ts @@ -17,7 +17,7 @@ const INTENT_ERROR = formatMessage('intentName is missing or empty'); function createLuApi( state: { dialogId: string; projectId: string }, dispatchers: Dispatcher, - luFileResolver: (id: string) => LuFile | undefined + luFileResolver: (id: string) => LuFile | undefined, ): LuContextApi { const updateLuFile = async (id: string, content: string) => { const file = luFileResolver(id); diff --git a/Composer/packages/client/src/shell/useShell.ts b/Composer/packages/client/src/shell/useShell.ts index f20caa7245..a475e39392 100644 --- a/Composer/packages/client/src/shell/useShell.ts +++ b/Composer/packages/client/src/shell/useShell.ts @@ -267,7 +267,7 @@ export function useShell(source: EventSource, projectId: string): Shell { (newDialog: string | null) => { resolve(newDialog); }, - projectId + projectId, ); }); }, diff --git a/Composer/packages/client/src/shell/utils.ts b/Composer/packages/client/src/shell/utils.ts index 6ecf068bd4..b559b2984c 100644 --- a/Composer/packages/client/src/shell/utils.ts +++ b/Composer/packages/client/src/shell/utils.ts @@ -22,7 +22,7 @@ export const serializeLgTemplate = ( templateName: string, fromId: string, lgText: string, - lgTemplates: LgTemplate[] + lgTemplates: LgTemplate[], ) => { const lgTemplate = lgTemplates.find((x) => x.name === templateName); @@ -77,7 +77,7 @@ export const deserializeLgTemplate = async ( lgText: string, hostActionData: MicrosoftIDialog, hostFieldName: string, - addLgTemplate: ShellApi['addLgTemplate'] + addLgTemplate: ShellApi['addLgTemplate'], ) => { const newLgType = new LgType(hostActionData.$kind, hostFieldName).toString(); const newLgTemplateName = new LgMetaData(newLgType, toId).toString(); diff --git a/Composer/packages/client/src/telemetry/TelemetryClient.ts b/Composer/packages/client/src/telemetry/TelemetryClient.ts index d4e9359b5f..e4d466bfc2 100644 --- a/Composer/packages/client/src/telemetry/TelemetryClient.ts +++ b/Composer/packages/client/src/telemetry/TelemetryClient.ts @@ -26,7 +26,7 @@ export default class TelemetryClient { public static track( eventName: TN, - properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN] + properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN], ) { this.client?.trackEvent(eventName, { ...this.sharedProperties, ...properties }); } @@ -34,7 +34,7 @@ export default class TelemetryClient { public static pageView( eventName: TN, url: string, - properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN] + properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN], ) { this.client?.logPageView(eventName, url, { ...this.sharedProperties, ...properties }); } diff --git a/Composer/packages/client/src/telemetry/__tests__/AppInsightsClient.test.ts b/Composer/packages/client/src/telemetry/__tests__/AppInsightsClient.test.ts index 8db823825a..1d6dbb1104 100644 --- a/Composer/packages/client/src/telemetry/__tests__/AppInsightsClient.test.ts +++ b/Composer/packages/client/src/telemetry/__tests__/AppInsightsClient.test.ts @@ -31,7 +31,7 @@ describe('Application Insights Logger', () => { }, }), ]), - }) + }), ); }); @@ -65,7 +65,7 @@ describe('Application Insights Logger', () => { }, }), ]), - }) + }), ); }); diff --git a/Composer/packages/client/src/telemetry/__tests__/TelemetryClient.test.ts b/Composer/packages/client/src/telemetry/__tests__/TelemetryClient.test.ts index 33f358455b..9411a37026 100644 --- a/Composer/packages/client/src/telemetry/__tests__/TelemetryClient.test.ts +++ b/Composer/packages/client/src/telemetry/__tests__/TelemetryClient.test.ts @@ -21,7 +21,7 @@ describe('TelemetryClient', () => { expect.objectContaining({ prop1: 'prop1', name: 'test', - }) + }), ); }); @@ -35,7 +35,7 @@ describe('TelemetryClient', () => { expect.objectContaining({ prop1: 'prop1', name: 'test', - }) + }), ); }); }); diff --git a/Composer/packages/client/src/telemetry/useInitializeLogger.ts b/Composer/packages/client/src/telemetry/useInitializeLogger.ts index f80b776f83..e3dac22ebd 100644 --- a/Composer/packages/client/src/telemetry/useInitializeLogger.ts +++ b/Composer/packages/client/src/telemetry/useInitializeLogger.ts @@ -24,7 +24,7 @@ export const useInitializeLogger = () => { ...acc, [camelCase(key)]: enabled, }), - {} + {}, ); const { diff --git a/Composer/packages/client/src/utils/__tests__/auth.test.ts b/Composer/packages/client/src/utils/__tests__/auth.test.ts index dbb24ba9e8..e5a33d368e 100644 --- a/Composer/packages/client/src/utils/__tests__/auth.test.ts +++ b/Composer/packages/client/src/utils/__tests__/auth.test.ts @@ -9,7 +9,7 @@ const jwtToken = describe('isTokenExpired', () => { it('is false when token is valid', () => { - // @ts-ignore + // @ts-expect-error: test Date.now = jest.spyOn(Date, 'now').mockImplementation(() => 1567630800000); // 2019-09-04 14:00 PDT expect(isTokenExpired(jwtToken)).toBe(false); }); @@ -19,11 +19,11 @@ describe('isTokenExpired', () => { }); it('is true when token is expired', () => { - // @ts-ignore + // @ts-expect-error: test Date.now = jest.spyOn(Date, 'now').mockImplementation(() => 1567717200000); // 2019-09-05 14:00 PDT expect(isTokenExpired(jwtToken)).toBe(true); - // @ts-ignore + // @ts-expect-error: test Date.now = jest.spyOn(Date, 'now').mockImplementation(() => 1567803600000); // 2019-09-06 14:00 PDT expect(isTokenExpired(jwtToken)).toBe(true); }); diff --git a/Composer/packages/client/src/utils/__tests__/dialogUtil.test.ts b/Composer/packages/client/src/utils/__tests__/dialogUtil.test.ts index 562cafe4ac..a6a0c28bf3 100644 --- a/Composer/packages/client/src/utils/__tests__/dialogUtil.test.ts +++ b/Composer/packages/client/src/utils/__tests__/dialogUtil.test.ts @@ -38,7 +38,7 @@ const dialogsMap = { }, }; -const dialogs = ([ +const dialogs = [ { content: { $kind: 'kind1', @@ -57,7 +57,7 @@ const dialogs = ([ displayName: 'toBeCleaned', id: 'id3', }, -] as unknown) as DialogInfo[]; +] as unknown as DialogInfo[]; describe('getDialogData', () => { it('return empty string if no dialogId', () => { diff --git a/Composer/packages/client/src/utils/__tests__/lgUtil.test.ts b/Composer/packages/client/src/utils/__tests__/lgUtil.test.ts index 2bbcd7986b..f237c6a6f6 100644 --- a/Composer/packages/client/src/utils/__tests__/lgUtil.test.ts +++ b/Composer/packages/client/src/utils/__tests__/lgUtil.test.ts @@ -8,6 +8,7 @@ import { createMissingLgTemplatesForDialogs } from '../lgUtil'; jest.mock('../../recoilModel/parsers/lgWorker', () => { return { addTemplates: (projectId, lgFile, templatesToAdd, lgFiles) => + // eslint-disable-next-line @typescript-eslint/no-var-requires require('@bfc/indexers/lib/utils/lgUtil').addTemplates(lgFile, templatesToAdd), }; }); diff --git a/Composer/packages/client/src/utils/__tests__/navigation.test.ts b/Composer/packages/client/src/utils/__tests__/navigation.test.ts index a08005f9c5..ab4fdcf80d 100644 --- a/Composer/packages/client/src/utils/__tests__/navigation.test.ts +++ b/Composer/packages/client/src/utils/__tests__/navigation.test.ts @@ -35,7 +35,7 @@ describe('composer url util', () => { selected: 'triggers[0]', focused: 'triggers[0].actions[0]', promptTab: PromptTab.BOT_ASKS, - } + }, ); expect(result1).toEqual(true); const result2 = checkUrl(`test`, projectId, skillId, { @@ -57,7 +57,7 @@ describe('composer url util', () => { selected: 'triggers[0]', focused: 'triggers[0].actions[0]', promptTab: PromptTab.BOT_ASKS, - } + }, ); expect(result1).toEqual(true); const result2 = checkUrl(`test`, projectId, skillId, { @@ -74,16 +74,16 @@ describe('composer url util', () => { expect(result1).toEqual(`/bot/${projectId}/skill/${skillId}/dialogs/main`); const result2 = convertPathToUrl(projectId, skillId, 'main', 'main.triggers[0].actions[0]'); expect(result2).toEqual( - `/bot/${projectId}/skill/${skillId}/dialogs/main?selected=triggers[0]&focused=triggers[0].actions[0]` + `/bot/${projectId}/skill/${skillId}/dialogs/main?selected=triggers[0]&focused=triggers[0].actions[0]`, ); const result3 = convertPathToUrl( projectId, skillId, 'main', - 'main.triggers[0].actions[0]#Microsoft.TextInput#prompt' + 'main.triggers[0].actions[0]#Microsoft.TextInput#prompt', ); expect(result3).toEqual( - `/bot/${projectId}/skill/${skillId}/dialogs/main?selected=triggers[0]&focused=triggers[0].actions[0]#botAsks` + `/bot/${projectId}/skill/${skillId}/dialogs/main?selected=triggers[0]&focused=triggers[0].actions[0]#botAsks`, ); const result4 = convertPathToUrl(projectId, null, 'main'); expect(result4).toEqual(`/bot/${projectId}/dialogs/main`); diff --git a/Composer/packages/client/src/utils/auth.ts b/Composer/packages/client/src/utils/auth.ts index d63af55b37..91ae4c7629 100644 --- a/Composer/packages/client/src/utils/auth.ts +++ b/Composer/packages/client/src/utils/auth.ts @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -/* eslint-disable @typescript-eslint/camelcase */ import { randomBytes } from 'crypto'; import querystring from 'query-string'; @@ -101,7 +100,7 @@ export function prepareAxios() { } return Promise.reject(err); - } + }, ); } } @@ -211,7 +210,7 @@ export function createPopupWindow(loginUrl: string): Window | null { const popup = window.open( loginUrl, formatMessage('Login to Azure'), - `width=483, height=600, top=${top}, left=${left}` + `width=483, height=600, top=${top}, left=${left}`, ); // if popups are blocked, use a redirect flow @@ -236,7 +235,7 @@ export function createHiddenIframe(url: string): HTMLIFrameElement { export async function monitorWindowForQueryParam( popup: Window, queryParam: string, - redirectUrl: string + redirectUrl: string, ): Promise { return new Promise((resolve) => { const startTime = Date.now(); diff --git a/Composer/packages/client/src/utils/authClient.ts b/Composer/packages/client/src/utils/authClient.ts index c3106a9ad5..83194b19da 100644 --- a/Composer/packages/client/src/utils/authClient.ts +++ b/Composer/packages/client/src/utils/authClient.ts @@ -50,7 +50,7 @@ async function getAccessToken(options: AuthParameters): Promise { if (!idToken) { // pop up window if token not exist const popup = createPopupWindow( - getIdTokenUrl({ clientId: authConfig.clientId, redirectUrl: authConfig.redirectUrl }) + getIdTokenUrl({ clientId: authConfig.clientId, redirectUrl: authConfig.redirectUrl }), ); if (popup) { idToken = await monitorWindowForQueryParam(popup, 'id_token', authConfig.redirectUrl); @@ -59,7 +59,7 @@ async function getAccessToken(options: AuthParameters): Promise { } else if (isTokenExpired(idToken)) { // refresh idToken const notDisplayFrame = createHiddenIframe( - getIdTokenUrl({ clientId: authConfig.clientId, redirectUrl: authConfig.redirectUrl }) + getIdTokenUrl({ clientId: authConfig.clientId, redirectUrl: authConfig.redirectUrl }), ); idToken = notDisplayFrame.contentWindow && @@ -70,7 +70,7 @@ async function getAccessToken(options: AuthParameters): Promise { // use id token to get access token if (typeof idToken === 'string') { const notDisplayFrame = createHiddenIframe( - getAccessTokenUrl({ clientId: authConfig.clientId, redirectUrl: authConfig.redirectUrl, scopes: scopes }) + getAccessTokenUrl({ clientId: authConfig.clientId, redirectUrl: authConfig.redirectUrl, scopes: scopes }), ); token = notDisplayFrame.contentWindow && diff --git a/Composer/packages/client/src/utils/buildUtil.ts b/Composer/packages/client/src/utils/buildUtil.ts index c9d1c07841..85bcc1ebc5 100644 --- a/Composer/packages/client/src/utils/buildUtil.ts +++ b/Composer/packages/client/src/utils/buildUtil.ts @@ -20,7 +20,7 @@ export function createCrossTrainConfig(dialogs: DialogInfo[], luFiles: LuFile[], if (!luFile) return result; const filtered = intentTriggers.filter((intentTrigger) => - luFile.intents.find((intent) => intent.Name === intentTrigger.intent || intentTrigger.intent === '') + luFile.intents.find((intent) => intent.Name === intentTrigger.intent || intentTrigger.intent === ''), ); if (!filtered.length) return result; diff --git a/Composer/packages/client/src/utils/convertUtils/__tests__/designerPathEncoder.test.ts b/Composer/packages/client/src/utils/convertUtils/__tests__/designerPathEncoder.test.ts index e37d75b939..31277021d8 100644 --- a/Composer/packages/client/src/utils/convertUtils/__tests__/designerPathEncoder.test.ts +++ b/Composer/packages/client/src/utils/convertUtils/__tests__/designerPathEncoder.test.ts @@ -59,13 +59,13 @@ describe('decodeDesignerPathToArrayPath()', () => { it('can handle invalid designer path.', () => { expect(decodeDesignerPathToArrayPath(dialog, `triggers["1234"].actions["9999"]`)).toEqual( - `triggers["1234"].actions["9999"]` + `triggers["1234"].actions["9999"]`, ); expect(decodeDesignerPathToArrayPath(dialog, `triggers["5678"].actions["1234"]`)).toEqual( - `triggers["5678"].actions["1234"]` + `triggers["5678"].actions["1234"]`, ); expect(decodeDesignerPathToArrayPath(dialog, `dialogs["1234"].actions["5678"]`)).toEqual( - `dialogs["1234"].actions["5678"]` + `dialogs["1234"].actions["5678"]`, ); }); diff --git a/Composer/packages/client/src/utils/convertUtils/__tests__/parsePathToFocused.test.ts b/Composer/packages/client/src/utils/convertUtils/__tests__/parsePathToFocused.test.ts index 77ab4e3027..91ea541637 100644 --- a/Composer/packages/client/src/utils/convertUtils/__tests__/parsePathToFocused.test.ts +++ b/Composer/packages/client/src/utils/convertUtils/__tests__/parsePathToFocused.test.ts @@ -9,7 +9,7 @@ describe('parsePathToFocused', () => { expect(parsePathToFocused('main.triggers[0].actions[0]')).toBe('triggers[0].actions[0]'); expect(parsePathToFocused('main.triggers[0].actions[0].actions[1]')).toBe('triggers[0].actions[0].actions[1]'); expect(parsePathToFocused('main.triggers[0].actions[0].elseActions[1]')).toBe( - 'triggers[0].actions[0].elseActions[1]' + 'triggers[0].actions[0].elseActions[1]', ); }); }); diff --git a/Composer/packages/client/src/utils/dialogUtil.ts b/Composer/packages/client/src/utils/dialogUtil.ts index 15c8bcda27..7effaf04e0 100644 --- a/Composer/packages/client/src/utils/dialogUtil.ts +++ b/Composer/packages/client/src/utils/dialogUtil.ts @@ -151,7 +151,7 @@ export function generateNewDialog( dialogs: DialogInfo[], dialogId: string, data: TriggerFormData, - schema: any + schema: any, ): DialogInfo { //add new trigger const dialog = dialogs.find((dialog) => dialog.id === dialogId); @@ -173,7 +173,7 @@ export function deleteTrigger( dialogs: DialogInfo[], dialogId: string, index: number, - callbackOnDeletedTrigger?: (trigger: ITriggerCondition) => any + callbackOnDeletedTrigger?: (trigger: ITriggerCondition) => any, ) { let dialogCopy = getDialog(dialogs, dialogId); if (!dialogCopy) return null; @@ -191,7 +191,7 @@ export function deleteTrigger( } function getDialogsMap(dialogs: DialogInfo[]): DialogsMap { - return dialogs.reduce((result: { [key: string]: {} }, dialog: DialogInfo) => { + return dialogs.reduce((result: { [key: string]: Record }, dialog: DialogInfo) => { result[dialog.id] = dialog.content; return result; }, {}); diff --git a/Composer/packages/client/src/utils/electronUtil.ts b/Composer/packages/client/src/utils/electronUtil.ts index 8202004574..70bc6e8086 100644 --- a/Composer/packages/client/src/utils/electronUtil.ts +++ b/Composer/packages/client/src/utils/electronUtil.ts @@ -28,7 +28,7 @@ export type Profile = ABSProfile; // can include PVAProfile or other type of pro */ export async function getPublishProfileFromPayload( profile: Profile, - source: string + source: string, ): Promise { try { const result = await httpClient.post(`/import/${source}/generateProfile`, profile); diff --git a/Composer/packages/client/src/utils/hooks.ts b/Composer/packages/client/src/utils/hooks.ts index 1701bf53e8..45d4796f32 100644 --- a/Composer/packages/client/src/utils/hooks.ts +++ b/Composer/packages/client/src/utils/hooks.ts @@ -109,8 +109,8 @@ export const useProjectIdCache = () => { return projectId; }; -export function useInterval(callback: Function, delay: number | null) { - const savedCallback: MutableRefObject = useRef(); +export function useInterval(callback: () => void, delay: number | null) { + const savedCallback: MutableRefObject<(() => void) | undefined> = useRef(); // Remember the latest callback. useEffect(() => { @@ -133,9 +133,9 @@ export function useInterval(callback: Function, delay: number | null) { export function useClickOutsideOutsideTarget( targetRefs: MutableRefObject[] | null, - callback: Function + callback: (...args: any[]) => void, ) { - const savedCallback: MutableRefObject = useRef(); + const savedCallback: MutableRefObject<((...args: any[]) => void) | undefined> = useRef(); const isClickInsideTargets = (currentClickTarget: Node) => { const isClickedInside = targetRefs?.find((ref) => { diff --git a/Composer/packages/client/src/utils/lgUtil.ts b/Composer/packages/client/src/utils/lgUtil.ts index 95c0d8627b..644b24c608 100644 --- a/Composer/packages/client/src/utils/lgUtil.ts +++ b/Composer/packages/client/src/utils/lgUtil.ts @@ -15,7 +15,7 @@ import { getBaseName } from './fileUtil'; export const createMissingLgTemplatesForDialogs = async ( projectId: string, dialogs: DialogInfo[], - lgFiles: LgFile[] + lgFiles: LgFile[], ): Promise => { const updatedLgFiles: LgFile[] = []; diff --git a/Composer/packages/client/src/utils/luUtil.ts b/Composer/packages/client/src/utils/luUtil.ts index 06f4ceb2b9..47f93af51c 100644 --- a/Composer/packages/client/src/utils/luUtil.ts +++ b/Composer/packages/client/src/utils/luUtil.ts @@ -30,7 +30,7 @@ export function getLuisBuildLuFiles(luFiles: LuFile[], dialogs: DialogInfo[]) { const idWithoutLocale = getBaseName(file.id); return dialogs.some( (dialog) => - dialog.luFile === idWithoutLocale && dialog.luProvider !== SDKKinds.OrchestratorRecognizer && !file.empty + dialog.luFile === idWithoutLocale && dialog.luProvider !== SDKKinds.OrchestratorRecognizer && !file.empty, ); }); } @@ -47,7 +47,7 @@ function generateErrorMessage(invalidLuFile: LuFile[]) { export function checkLuisBuild(luFiles: LuFile[], dialogs: DialogInfo[]) { const referred = getReferredLuFiles(luFiles, dialogs, false); const invalidLuFile = referred.filter( - (file) => file.diagnostics.filter((n) => n.severity === DiagnosticSeverity.Error).length !== 0 + (file) => file.diagnostics.filter((n) => n.severity === DiagnosticSeverity.Error).length !== 0, ); if (invalidLuFile.length !== 0) { const msg = generateErrorMessage(invalidLuFile); diff --git a/Composer/packages/client/src/utils/navigation.ts b/Composer/packages/client/src/utils/navigation.ts index 764938c358..e9d101b346 100644 --- a/Composer/packages/client/src/utils/navigation.ts +++ b/Composer/packages/client/src/utils/navigation.ts @@ -42,7 +42,7 @@ export function checkUrl( currentUri: string, projectId: string, skillId: string | null, - { dialogId, selected, focused, promptTab }: DesignPageLocation + { dialogId, selected, focused, promptTab }: DesignPageLocation, ) { let lastUri = skillId == null @@ -62,7 +62,7 @@ export function convertPathToUrl( projectId: string, skillId: string | null, dialogId: string | null, - path?: string + path?: string, ): string { //path is like main.triggers[0].actions[0] //uri = id?selected=triggers[0]&focused=triggers[0].actions[0] diff --git a/Composer/packages/client/src/utils/pageLinks.ts b/Composer/packages/client/src/utils/pageLinks.ts index 48ebaacbdc..67ae9570e3 100644 --- a/Composer/packages/client/src/utils/pageLinks.ts +++ b/Composer/packages/client/src/utils/pageLinks.ts @@ -22,7 +22,7 @@ export const topLinks = ( showFormDialog: boolean, schema: any, skillIsRemote: boolean, - rootProjectId?: string + rootProjectId?: string, ) => { const isPVASchema = checkForPVASchema(schema); const botLoaded = !!projectId; diff --git a/Composer/packages/client/src/utils/publishStatusPollingUpdater.ts b/Composer/packages/client/src/utils/publishStatusPollingUpdater.ts index 413b724810..ac4ae1ea7c 100644 --- a/Composer/packages/client/src/utils/publishStatusPollingUpdater.ts +++ b/Composer/packages/client/src/utils/publishStatusPollingUpdater.ts @@ -79,7 +79,7 @@ export class PublishStatusPollingUpdater { this.fetchPublishStatusData(this.botProjectId, this.publishTargetName, onData); this.timerId = window.setInterval( async () => this.fetchPublishStatusData(this.botProjectId, this.publishTargetName, onData), - this.pollingInterval + this.pollingInterval, ); } diff --git a/Composer/packages/client/src/utils/qnaUtil.ts b/Composer/packages/client/src/utils/qnaUtil.ts index fb40dd89f1..e56822a8f9 100644 --- a/Composer/packages/client/src/utils/qnaUtil.ts +++ b/Composer/packages/client/src/utils/qnaUtil.ts @@ -94,7 +94,7 @@ export const copyQnAFilesOnOtherLocales = ( projectId: string, dialogIds: string[], qnaFiles: QnAFile[], - locales: string[] + locales: string[], ): QnAFile[] => { const originalSourceQnAFiles = qnaFiles.filter((f) => f.id.endsWith('.source')); const containerQnAFileIds = dialogIds.map((d) => `${d}.en-us`); @@ -136,7 +136,7 @@ export const migrateQnAFiles = ( projectId: string, dialogIds: string[], qnaFiles: QnAFile[], - locales: string[] + locales: string[], ): QnAFile[] => { // migrate script move qna pairs in *.qna to *-manual.source.qna. const updateQnAFiles1 = reformQnAToContainerKB(projectId, qnaFiles, locales); diff --git a/Composer/packages/client/src/utils/runtimeErrors.ts b/Composer/packages/client/src/utils/runtimeErrors.ts index 7d458bea33..148fc18126 100644 --- a/Composer/packages/client/src/utils/runtimeErrors.ts +++ b/Composer/packages/client/src/utils/runtimeErrors.ts @@ -19,8 +19,7 @@ export const missingFunctionsError = { message: formatMessage('To run this bot, Composer needs Azure Functions Core Tools.'), linkAfterMessage: { text: formatMessage('Learn more'), - url: - 'https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#install-the-azure-functions-core-tools', + url: 'https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#install-the-azure-functions-core-tools', }, link: { text: formatMessage('Install Azure Functions'), diff --git a/Composer/packages/electron-server/__tests__/auth/oneAuthService.test.ts b/Composer/packages/electron-server/__tests__/auth/oneAuthService.test.ts index 401cc15bc7..a91f89a0f6 100644 --- a/Composer/packages/electron-server/__tests__/auth/oneAuthService.test.ts +++ b/Composer/packages/electron-server/__tests__/auth/oneAuthService.test.ts @@ -153,8 +153,7 @@ describe('OneAuth Serivce', () => { it('should return the shim on Linux', async () => { Object.assign(process.env, { ...process.env, COMPOSER_ENABLE_ONEAUTH: 'true', TEST_IS_LINUX: 'true' }); - // eslint-disable-next-line @typescript-eslint/no-var-requires - const { OneAuthService: service } = require('../../src/auth/oneAuthService'); + const { OneAuthService: service } = require('../../src/auth/oneAuthService'); const result = await service.getAccessToken({}); expect(result).toEqual({ accessToken: '', acquiredAt: 0, expiryTime: 99999999999 }); @@ -167,8 +166,7 @@ describe('OneAuth Serivce', () => { NODE_ENV: 'development', TEST_IS_LINUX: 'false', }); - // eslint-disable-next-line @typescript-eslint/no-var-requires - const { OneAuthService: service } = require('../../src/auth/oneAuthService'); + const { OneAuthService: service } = require('../../src/auth/oneAuthService'); const result = await service.getAccessToken({}); expect(result).toEqual({ accessToken: '', acquiredAt: 0, expiryTime: 99999999999 }); diff --git a/Composer/packages/electron-server/src/auth/oneAuthBase.ts b/Composer/packages/electron-server/src/auth/oneAuthBase.ts index 86dd760ffb..4e03c6f209 100644 --- a/Composer/packages/electron-server/src/auth/oneAuthBase.ts +++ b/Composer/packages/electron-server/src/auth/oneAuthBase.ts @@ -5,7 +5,7 @@ import { ElectronAuthParameters } from '@botframework-composer/types'; export abstract class OneAuthBase { abstract async getAccessToken( - params: ElectronAuthParameters + params: ElectronAuthParameters, ): Promise<{ accessToken: string; acquiredAt: number; expiryTime: number }>; abstract shutdown(); abstract signOut(); diff --git a/Composer/packages/electron-server/src/auth/oneAuthService.ts b/Composer/packages/electron-server/src/auth/oneAuthService.ts index 2baff6b3d3..bcff4cd507 100644 --- a/Composer/packages/electron-server/src/auth/oneAuthService.ts +++ b/Composer/packages/electron-server/src/auth/oneAuthService.ts @@ -91,19 +91,19 @@ export class OneAuthInstance extends OneAuthBase { COMPOSER_APP_VERSION, DEFAULT_LOCALE, 'Please login', - window.getNativeWindowHandle() + window.getNativeWindowHandle(), ); const msaConfig = new this.oneAuth.MsaConfiguration( COMPOSER_CLIENT_ID, COMPOSER_REDIRECT_URI, GRAPH_RESOURCE + '/Application.ReadWrite.All', - undefined + undefined, ); const aadConfig = new this.oneAuth.AadConfiguration( COMPOSER_CLIENT_ID, COMPOSER_REDIRECT_URI, GRAPH_RESOURCE, - false // prefer broker + false, // prefer broker ); this.oneAuth.setFlights([Flight.UseMsalforMsa]); this.oneAuth.initialize(appConfig, msaConfig, aadConfig, undefined); @@ -115,7 +115,7 @@ export class OneAuthInstance extends OneAuthBase { } public async getAccessToken( - params: ElectronAuthParameters + params: ElectronAuthParameters, ): Promise<{ accessToken: string; acquiredAt: number; expiryTime: number }> { try { if (!this.initialized) { @@ -150,10 +150,10 @@ export class OneAuthInstance extends OneAuthBase { params.authority || DEFAULT_AUTH_AUTHORITY, params.targetResource, this.signedInAccount.realm, - '' + '', ); const result = await this.oneAuth.acquireCredentialSilently(this.signedInAccount?.id, reqParams, ''); - if (result.credential && result.credential.value) { + if (result.credential?.value) { log('Acquired access token. %s', result.credential.value); return { accessToken: result.credential.value, @@ -172,10 +172,10 @@ export class OneAuthInstance extends OneAuthBase { params.authority || DEFAULT_AUTH_AUTHORITY, params.targetResource, this.signedInAccount.realm, - '' + '', ); const result = await this.oneAuth.acquireCredentialInteractively(this.signedInAccount?.id, reqParams, ''); - if (result.credential && result.credential.value) { + if (result.credential?.value) { log('Acquired access token interactively. %s', result.credential.value); return { accessToken: result.credential.value, @@ -246,10 +246,10 @@ export class OneAuthInstance extends OneAuthBase { `https://login.microsoftonline.com/${tenantId}`, ARM_RESOURCE, '', - '' + '', ); const result = await this.oneAuth.acquireCredentialSilently(this.signedInARMAccount.id, tokenParams, ''); - if (result.credential && result.credential.value && Date.now() <= result.credential.expiresOn) { + if (result.credential?.value && Date.now() <= result.credential.expiresOn) { log('Acquired ARM token for tenant: %s', result.credential.value); return result.credential.value; } @@ -258,7 +258,7 @@ export class OneAuthInstance extends OneAuthBase { log( 'There was an error trying to silently get an ARM token for tenant %s: %O. Trying again interactively to get access token.', tenantId, - e + e, ); // use the signed in account to acquire a token @@ -267,10 +267,10 @@ export class OneAuthInstance extends OneAuthBase { `https://login.microsoftonline.com/${tenantId}`, ARM_RESOURCE, '', - '' + '', ); const result = await this.oneAuth.acquireCredentialInteractively(this.signedInARMAccount?.id, reqParams, ''); - if (result.credential && result.credential.value && Date.now() <= result.credential.expiresOn) { + if (result.credential?.value && Date.now() <= result.credential.expiresOn) { log('Acquired ARM token interactively. %s', result.credential.value); return result.credential.value; } @@ -286,7 +286,7 @@ export class OneAuthInstance extends OneAuthBase { `https://login.microsoftonline.com/${tenantId}`, ARM_RESOURCE, '', - '' + '', ); const result = await this.oneAuth.acquireCredentialInteractively(this.signedInARMAccount.id, tokenParams, ''); if (!result.credential.value) { @@ -336,7 +336,7 @@ export class OneAuthInstance extends OneAuthBase { /** Temporary workaround on Mac until we figure out how to enable keychain access on a dev build. */ // eslint-disable-next-line private async TEMPORARY_getAccessTokenOnMacDev( - params: ElectronAuthParameters + params: ElectronAuthParameters, ): Promise<{ accessToken: string; acquiredAt: number; expiryTime: number }> { try { // sign-in every time with auth parameters to get a token @@ -345,7 +345,7 @@ export class OneAuthInstance extends OneAuthBase { params.authority || DEFAULT_AUTH_AUTHORITY, params.targetResource, '', - '' + '', ); const result = await this.oneAuth.signInInteractively(undefined, reqParams, ''); if (result?.credential?.value) { @@ -367,7 +367,7 @@ export class OneAuthInstance extends OneAuthBase { if (!this._oneAuth) { log('Attempting to load oneauth module from %s.', this.oneauthPath); try { - // eslint-disable-next-line security/detect-non-literal-require + // eslint-disable-next-line @typescript-eslint/no-var-requires, security/detect-non-literal-require this._oneAuth = require(this.oneauthPath) as typeof OneAuth; } catch (e) { log('Error loading oneauth module. %O', e); diff --git a/Composer/packages/electron-server/src/auth/oneauth.d.ts b/Composer/packages/electron-server/src/auth/oneauth.d.ts index 5fd78ec6e0..c13a1be2f5 100644 --- a/Composer/packages/electron-server/src/auth/oneauth.d.ts +++ b/Composer/packages/electron-server/src/auth/oneauth.d.ts @@ -192,7 +192,7 @@ export namespace OneAuth { appVersion: string, languageCode: string, signInWindowTitle: string | undefined, - parentWindow: any | undefined + parentWindow: any | undefined, ); readonly appId: string; readonly appName: string; @@ -212,7 +212,7 @@ export namespace OneAuth { clientId: string, redirectUri: string, defaultSignInScope: string, - useMsalFlight: boolean | undefined // deprecated + useMsalFlight: boolean | undefined, // deprecated ); readonly clientId: string; readonly redirectUri: string; @@ -237,7 +237,7 @@ export namespace OneAuth { appConfiguration: AppConfiguration, msaConfiguration: MsaConfiguration | undefined, aadConfiguration: AadConfiguration | undefined, - telemetryConfiguration: TelemetryConfiguration | undefined + telemetryConfiguration: TelemetryConfiguration | undefined, ): boolean; /// Cancels all outstanding tasks, closes the authentication UI if any, and shuts down the OneAuth authenticator. @@ -313,7 +313,7 @@ export namespace OneAuth { export function signInInteractively( accountHint: string | undefined, authParameters: AuthParameters | undefined, - correlationId: string + correlationId: string, ): Promise; /// Sign in a user to the app silently with an account inferred from the underlying OS infrastructure, if such @@ -350,7 +350,7 @@ export namespace OneAuth { /// @see {@link AuthResult} export function signInSilently( authParameters: AuthParameters | undefined, - correlationId: string + correlationId: string, ): Promise; /// Show a prompt for the given account and parameters. @@ -388,7 +388,7 @@ export namespace OneAuth { export function acquireCredentialInteractively( accountId: string, authParameters: AuthParameters, - correlationId: string + correlationId: string, ): Promise; /// Acquire a credential silently for the given account and parameters. @@ -424,7 +424,7 @@ export namespace OneAuth { export function acquireCredentialSilently( accountId: string, authParameters: AuthParameters, - correlationId: string + correlationId: string, ): Promise; /// Cancels all ongoing tasks and dismisses the UI (if any). @@ -542,7 +542,7 @@ export namespace OneAuth { audienceType: AudienceType, sessionId: string, dispatcher: TelemetryDispatcher | undefined, - allowedResources: string[] + allowedResources: string[], ): TelemetryConfiguration; } diff --git a/Composer/packages/electron-server/src/auth/oneauthShim/index.ts b/Composer/packages/electron-server/src/auth/oneauthShim/index.ts index 57d5839dcf..a0315ca0ef 100644 --- a/Composer/packages/electron-server/src/auth/oneauthShim/index.ts +++ b/Composer/packages/electron-server/src/auth/oneauthShim/index.ts @@ -3,7 +3,7 @@ import { OneAuth } from '../oneauth'; -export const oneauthShim = ({ +export const oneauthShim = { initialize() {}, shutdown() {}, setLogPiiEnabled() {}, @@ -15,5 +15,5 @@ export const oneauthShim = ({ AuthParameters() {}, AuthResult() {}, Account() {}, -} as unknown) as typeof OneAuth; +} as unknown as typeof OneAuth; export default oneauthShim; diff --git a/Composer/packages/electron-server/src/main.ts b/Composer/packages/electron-server/src/main.ts index ef42ea9685..dca9cb8be2 100644 --- a/Composer/packages/electron-server/src/main.ts +++ b/Composer/packages/electron-server/src/main.ts @@ -206,7 +206,7 @@ async function main(show = false) { } }) .catch((e) => - console.error('[Windows] Error while waiting for main window to show before processing deep link: ', e) + console.error('[Windows] Error while waiting for main window to show before processing deep link: ', e), ); } log('Rendered application.'); @@ -369,7 +369,7 @@ async function run() { mainWindow?.loadURL(getBaseUrl() + deeplinkUrl); }) .catch((e) => - console.error('[Mac] Error while waiting for main window to show before processing deep link: ', e) + console.error('[Mac] Error while waiting for main window to show before processing deep link: ', e), ); }); } diff --git a/Composer/packages/electron-server/src/splash/splashScreen.ts b/Composer/packages/electron-server/src/splash/splashScreen.ts index a66ca2bbfb..a46a590214 100644 --- a/Composer/packages/electron-server/src/splash/splashScreen.ts +++ b/Composer/packages/electron-server/src/splash/splashScreen.ts @@ -88,7 +88,7 @@ export const initSplashScreen = async ({ */ const updateStatus = async (status: string) => { await splashScreenWindow.webContents.executeJavaScript( - `document.querySelector('#${statusElmId}').textContent = '${status}';` + `document.querySelector('#${statusElmId}').textContent = '${status}';`, ); }; diff --git a/Composer/packages/electron-server/src/utility/fs.ts b/Composer/packages/electron-server/src/utility/fs.ts index f64650da38..aeccfb53f1 100644 --- a/Composer/packages/electron-server/src/utility/fs.ts +++ b/Composer/packages/electron-server/src/utility/fs.ts @@ -7,7 +7,7 @@ import { existsSync, mkdirp, mkdirpSync, readFileSync, writeFile, writeFileSync export const ensureDirectory = async (dirPath: string) => await mkdirp(dirPath); -export const ensureJsonFileSync = (filePath: string, defaultContent: { [key: string]: {} }) => { +export const ensureJsonFileSync = (filePath: string, defaultContent: { [key: string]: unknown }) => { if (!existsSync(filePath)) { mkdirpSync(path.dirname(filePath)); writeFileSync(filePath, JSON.stringify(defaultContent, null, 4), { encoding: 'utf8' }); diff --git a/Composer/packages/extension/src/extensionRegistration.ts b/Composer/packages/extension/src/extensionRegistration.ts index ba39a77829..f90c3a58c3 100644 --- a/Composer/packages/extension/src/extensionRegistration.ts +++ b/Composer/packages/extension/src/extensionRegistration.ts @@ -32,7 +32,7 @@ export class ExtensionRegistration implements IExtensionRegistration { public context: IExtensionContext, metadata: ExtensionMetadata, private _getSettings: () => ExtensionSettings, - private _dataDir: string + private _dataDir: string, ) { this._name = metadata.id; this._description = metadata.description; diff --git a/Composer/packages/extension/src/storage/store.ts b/Composer/packages/extension/src/storage/store.ts index 63d8b409df..ce51c713b6 100644 --- a/Composer/packages/extension/src/storage/store.ts +++ b/Composer/packages/extension/src/storage/store.ts @@ -10,7 +10,11 @@ export class Store { private path: string; private data: Partial; - public constructor(storePath: string, private defaultValue: T, private _log?: debug.Debugger) { + public constructor( + storePath: string, + private defaultValue: T, + private _log?: debug.Debugger, + ) { this.path = storePath; this.data = { ...defaultValue }; diff --git a/Composer/packages/form-dialogs/src/FormDialogSchemaEditor.tsx b/Composer/packages/form-dialogs/src/FormDialogSchemaEditor.tsx index a474e6ea19..455821fba5 100644 --- a/Composer/packages/form-dialogs/src/FormDialogSchemaEditor.tsx +++ b/Composer/packages/form-dialogs/src/FormDialogSchemaEditor.tsx @@ -3,7 +3,6 @@ import { FormDialogSchemaTemplate } from '@bfc/shared'; import * as React from 'react'; -// eslint-disable-next-line @typescript-eslint/camelcase import { RecoilRoot, useRecoilTransactionObserver_UNSTABLE, useRecoilValue } from 'recoil'; import { formDialogSchemaJsonSelector, trackedAtomsSelector } from './atoms/appState'; diff --git a/Composer/packages/form-dialogs/src/atoms/appState.ts b/Composer/packages/form-dialogs/src/atoms/appState.ts index bd46dfec08..4c925cc0b1 100644 --- a/Composer/packages/form-dialogs/src/atoms/appState.ts +++ b/Composer/packages/form-dialogs/src/atoms/appState.ts @@ -83,10 +83,12 @@ export const formDialogSchemaPropertyNamesSelector = selector({ */ export const formDialogPropertyJsonSelector = selectorFamily({ key: 'FormDialogPropertyJsonSelector', - get: (id) => ({ get }) => { - const cardData = get(propertyCardDataAtom(id)); - return spreadCardData(cardData); - }, + get: + (id) => + ({ get }) => { + const cardData = get(propertyCardDataAtom(id)); + return spreadCardData(cardData); + }, }); /** @@ -94,11 +96,13 @@ export const formDialogPropertyJsonSelector = selectorFamily({ */ export const formDialogPropertyValidSelector = selectorFamily({ key: 'FormDialogPropertyValidSelector', - get: (id) => ({ get }) => { - const templates = get(formDialogTemplatesAtom); - const cardData = get(propertyCardDataAtom(id)); - return validateSchemaPropertyStore(cardData, templates); - }, + get: + (id) => + ({ get }) => { + const templates = get(formDialogTemplatesAtom); + const cardData = get(propertyCardDataAtom(id)); + return validateSchemaPropertyStore(cardData, templates); + }, }); /** @@ -129,11 +133,14 @@ export const formDialogSchemaJsonSelector = selector({ if (propertyCards.length) { jsonObject = { ...jsonObject, - properties: propertyIds.reduce>((acc, propId, idx) => { - const property = propertyCards[idx]; - acc[property.name] = get(formDialogPropertyJsonSelector(propId)); - return acc; - }, >{}), + properties: propertyIds.reduce>( + (acc, propId, idx) => { + const property = propertyCards[idx]; + acc[property.name] = get(formDialogPropertyJsonSelector(propId)); + return acc; + }, + >{}, + ), }; } diff --git a/Composer/packages/form-dialogs/src/atoms/handlers.ts b/Composer/packages/form-dialogs/src/atoms/handlers.ts index 19ee429834..84246c5d41 100644 --- a/Composer/packages/form-dialogs/src/atoms/handlers.ts +++ b/Composer/packages/form-dialogs/src/atoms/handlers.ts @@ -29,25 +29,18 @@ import { createSchemaStoreFromJson, getDuplicateName } from './utils'; const getHandlers = () => { const importSchemaString = useRecoilCallback( - ({ set }) => async ({ - id, - content, - templates, - }: { - id: string; - content: string; - templates: FormDialogSchemaTemplate[]; - }) => { - const schema = createSchemaStoreFromJson(id, content, templates); - - set(formDialogSchemaAtom, { - id: schema.name, - name: schema.name, - requiredPropertyIds: schema.properties.filter((p) => p.isRequired).map((p) => p.id), - optionalPropertyIds: schema.properties.filter((p) => !p.isRequired).map((p) => p.id), - }); - schema.properties.forEach((property) => set(propertyCardDataAtom(property.id), property)); - } + ({ set }) => + async ({ id, content, templates }: { id: string; content: string; templates: FormDialogSchemaTemplate[] }) => { + const schema = createSchemaStoreFromJson(id, content, templates); + + set(formDialogSchemaAtom, { + id: schema.name, + name: schema.name, + requiredPropertyIds: schema.properties.filter((p) => p.isRequired).map((p) => p.id), + optionalPropertyIds: schema.properties.filter((p) => !p.isRequired).map((p) => p.id), + }); + schema.properties.forEach((property) => set(propertyCardDataAtom(property.id), property)); + }, ); const importSchema = useRecoilCallback(({ snapshot }) => async ({ id, file }: { id: string; file: File }) => { @@ -77,80 +70,84 @@ const getHandlers = () => { }); const changePropertyType = useRecoilCallback( - ({ set }) => ({ id, propertyType }: { id: string; propertyType: string }) => { - set(propertyCardDataAtom(id), (currentPropertyCardData) => { - const basicCardData = pick(currentPropertyCardData, ['id', 'name', 'isRequired', 'isArray']); - return { ...basicCardData, propertyType }; - }); - } + ({ set }) => + ({ id, propertyType }: { id: string; propertyType: string }) => { + set(propertyCardDataAtom(id), (currentPropertyCardData) => { + const basicCardData = pick(currentPropertyCardData, ['id', 'name', 'isRequired', 'isArray']); + return { ...basicCardData, propertyType }; + }); + }, ); const changePropertyRequired = useRecoilCallback( - ({ set }) => ({ id, isRequired }: { id: string; isRequired: boolean }) => { - set(propertyCardDataAtom(id), (currentPropertyCardData) => { - return { ...currentPropertyCardData, isRequired }; - }); - } + ({ set }) => + ({ id, isRequired }: { id: string; isRequired: boolean }) => { + set(propertyCardDataAtom(id), (currentPropertyCardData) => { + return { ...currentPropertyCardData, isRequired }; + }); + }, ); const changePropertyName = useRecoilCallback( - ({ set, snapshot }) => async ({ id, name }: { id: string; name: string }) => { - const locale = await snapshot.getPromise(formDialogLocale); - set(propertyCardDataAtom(id), (currentPropertyCardData) => { - const currentName = currentPropertyCardData.name; - const cardData = { ...currentPropertyCardData, name } as PropertyCardData; - - // Change the name of the entity for examples if the type is enum - if (cardData.propertyType === 'enum' && cardData.$examples?.[locale]?.[`${currentName}Value`]) { - const examples = cloneDeep(cardData.$examples); - examples[locale][`${name}Value`] = { ...examples[locale][`${currentName}Value`] }; - delete examples[locale][`${currentName}Value`]; - - cardData.$examples = examples; - } + ({ set, snapshot }) => + async ({ id, name }: { id: string; name: string }) => { + const locale = await snapshot.getPromise(formDialogLocale); + set(propertyCardDataAtom(id), (currentPropertyCardData) => { + const currentName = currentPropertyCardData.name; + const cardData = { ...currentPropertyCardData, name } as PropertyCardData; + + // Change the name of the entity for examples if the type is enum + if (cardData.propertyType === 'enum' && cardData.$examples?.[locale]?.[`${currentName}Value`]) { + const examples = cloneDeep(cardData.$examples); + examples[locale][`${name}Value`] = { ...examples[locale][`${currentName}Value`] }; + delete examples[locale][`${currentName}Value`]; + + cardData.$examples = examples; + } - return cardData; - }); - } + return cardData; + }); + }, ); const changePropertyCardData = useRecoilCallback( - ({ set, snapshot }) => async ({ id, data }: { id: string; data: Record }) => { - const locale = await snapshot.getPromise(formDialogLocale); - set(propertyCardDataAtom(id), (currentPropertyCardData) => { - const hadEnum = !!currentPropertyCardData.enum?.length; - const cardData = { ...currentPropertyCardData, ...data } as PropertyCardData; - - if (cardData.propertyType === 'enum') { - // If $examples is empty, deleted current locale examples - if (hadEnum && !cardData.$examples?.[locale]) { + ({ set, snapshot }) => + async ({ id, data }: { id: string; data: Record }) => { + const locale = await snapshot.getPromise(formDialogLocale); + set(propertyCardDataAtom(id), (currentPropertyCardData) => { + const hadEnum = !!currentPropertyCardData.enum?.length; + const cardData = { ...currentPropertyCardData, ...data } as PropertyCardData; + + if (cardData.propertyType === 'enum') { + // If $examples is empty, deleted current locale examples + if (hadEnum && !cardData.$examples?.[locale]) { + return cardData; + } + + const defaultExamples = { + [locale]: { + [`${cardData.name}Value`]: (cardData?.enum ?? []).reduce((acc, e) => { + acc[e] = []; + return acc; + }, {}), + }, + }; + + const newExamples = data?.$examples?.[locale]?.[`${cardData.name}Value`] ? data.$examples : defaultExamples; + + // Merge default, old and new and only keep the examples for current enum values + const mergedExamples = pick( + merge(defaultExamples, newExamples), + cardData.enum.map((e: string) => `${locale}.${cardData.name}Value.${e}`), + ); + cardData.$examples = mergedExamples; + return cardData; } - const defaultExamples = { - [locale]: { - [`${cardData.name}Value`]: (cardData?.enum ?? []).reduce((acc, e) => { - acc[e] = []; - return acc; - }, {}), - }, - }; - - const newExamples = data?.$examples?.[locale]?.[`${cardData.name}Value`] ? data.$examples : defaultExamples; - - // Merge default, old and new and only keep the examples for current enum values - const mergedExamples = pick( - merge(defaultExamples, newExamples), - cardData.enum.map((e: string) => `${locale}.${cardData.name}Value.${e}`) - ); - cardData.$examples = mergedExamples; - return cardData; - } - - return cardData; - }); - } + }); + }, ); const changePropertyArray = useRecoilCallback(({ set }) => ({ id, isArray }: { id: string; isArray: boolean }) => { @@ -160,56 +157,56 @@ const getHandlers = () => { }); const moveProperty = useRecoilCallback( - ({ set }) => ({ - id, - source, - destination, - fromIndex, - toIndex, - }: { - id: string; - source: PropertyRequiredKind; - destination: PropertyRequiredKind; - fromIndex: number; - toIndex: number; - }) => { - const toggleRequired = source !== destination; - - if (toggleRequired) { - changePropertyRequired({ id, isRequired: source === 'optional' }); - } + ({ set }) => + ({ + id, + source, + destination, + fromIndex, + toIndex, + }: { + id: string; + source: PropertyRequiredKind; + destination: PropertyRequiredKind; + fromIndex: number; + toIndex: number; + }) => { + const toggleRequired = source !== destination; - set(formDialogSchemaAtom, (currentSchema) => { if (toggleRequired) { - //Move between two lists - const requiredPropertyIds = currentSchema.requiredPropertyIds.slice(); - const optionalPropertyIds = currentSchema.optionalPropertyIds.slice(); + changePropertyRequired({ id, isRequired: source === 'optional' }); + } - if (source === 'required') { - requiredPropertyIds.splice(fromIndex, 1); - optionalPropertyIds.splice(toIndex, 0, id); + set(formDialogSchemaAtom, (currentSchema) => { + if (toggleRequired) { + //Move between two lists + const requiredPropertyIds = currentSchema.requiredPropertyIds.slice(); + const optionalPropertyIds = currentSchema.optionalPropertyIds.slice(); + + if (source === 'required') { + requiredPropertyIds.splice(fromIndex, 1); + optionalPropertyIds.splice(toIndex, 0, id); + } else { + optionalPropertyIds.splice(fromIndex, 1); + requiredPropertyIds.splice(toIndex, 0, id); + } + + return { ...currentSchema, requiredPropertyIds, optionalPropertyIds }; } else { - optionalPropertyIds.splice(fromIndex, 1); - requiredPropertyIds.splice(toIndex, 0, id); - } - - return { ...currentSchema, requiredPropertyIds, optionalPropertyIds }; - } else { - // Move within a list - const propertyIds = (source === 'required' - ? currentSchema.requiredPropertyIds - : currentSchema.optionalPropertyIds - ).slice(); + // Move within a list + const propertyIds = ( + source === 'required' ? currentSchema.requiredPropertyIds : currentSchema.optionalPropertyIds + ).slice(); - propertyIds.splice(fromIndex, 1); - propertyIds.splice(toIndex, 0, id); + propertyIds.splice(fromIndex, 1); + propertyIds.splice(toIndex, 0, id); - return source === 'required' - ? { ...currentSchema, requiredPropertyIds: propertyIds } - : { ...currentSchema, optionalPropertyIds: propertyIds }; - } - }); - } + return source === 'required' + ? { ...currentSchema, requiredPropertyIds: propertyIds } + : { ...currentSchema, optionalPropertyIds: propertyIds }; + } + }); + }, ); const removeProperty = useRecoilCallback(({ set, reset, snapshot }) => async ({ id }: { id: string }) => { @@ -242,9 +239,8 @@ const getHandlers = () => { const name = getDuplicateName(propertyCardData.name, propertyNames); set(formDialogSchemaAtom, (currentSchema) => { - const propertyIds = (propertyCardData.isRequired - ? currentSchema.requiredPropertyIds - : currentSchema.optionalPropertyIds + const propertyIds = ( + propertyCardData.isRequired ? currentSchema.requiredPropertyIds : currentSchema.optionalPropertyIds ).slice(); if (propertyCardData.isRequired) { diff --git a/Composer/packages/form-dialogs/src/atoms/types.ts b/Composer/packages/form-dialogs/src/atoms/types.ts index c95e0c3b1e..e91add6451 100644 --- a/Composer/packages/form-dialogs/src/atoms/types.ts +++ b/Composer/packages/form-dialogs/src/atoms/types.ts @@ -19,7 +19,7 @@ export type TypedPropertyPayload = { const builtInFormats = ['date-time', 'date', 'time', 'email', 'uri', 'iri'] as const; -export type BuiltInStringFormat = typeof builtInFormats[number]; +export type BuiltInStringFormat = (typeof builtInFormats)[number]; export type StringFormatItem = { displayName: string; value: BuiltInStringFormat }; diff --git a/Composer/packages/form-dialogs/src/atoms/utils.ts b/Composer/packages/form-dialogs/src/atoms/utils.ts index a3fd8306bd..ee1335e3ff 100644 --- a/Composer/packages/form-dialogs/src/atoms/utils.ts +++ b/Composer/packages/form-dialogs/src/atoms/utils.ts @@ -36,7 +36,7 @@ const $refToRef = ($ref: string) => { export const jsonSchemaTypeToTemplateType = ( propertyJson: any, - templates: FormDialogSchemaTemplate[] + templates: FormDialogSchemaTemplate[], ): { propertyType: string; isArray?: boolean } => { const jsonType = propertyJson.type ?? 'ref'; @@ -55,7 +55,7 @@ export const jsonSchemaTypeToTemplateType = ( if (propertyJson.format) { const template = templates.find( - (template) => template.format === propertyJson.format && template.type === jsonType + (template) => template.format === propertyJson.format && template.type === jsonType, ); return { propertyType: template.id }; } @@ -77,7 +77,7 @@ export const jsonSchemaTypeToTemplateType = ( export const createSchemaStoreFromJson = ( name: string, jsonString: string, - templates: FormDialogSchemaTemplate[] + templates: FormDialogSchemaTemplate[], ): { name: string; properties: PropertyCardData[] } => { const json = JSON.parse(jsonString); diff --git a/Composer/packages/form-dialogs/src/components/FormDialogPropertiesEditor.tsx b/Composer/packages/form-dialogs/src/components/FormDialogPropertiesEditor.tsx index 698cc7af23..44ebeaee9e 100644 --- a/Composer/packages/form-dialogs/src/components/FormDialogPropertiesEditor.tsx +++ b/Composer/packages/form-dialogs/src/components/FormDialogPropertiesEditor.tsx @@ -170,7 +170,7 @@ export const FormDialogPropertiesEditor = React.memo((props: Props) => { onClick: async () => { const result = await OpenConfirmModal( formatMessage('Start over?'), - formatMessage('Are you sure you want to start over? Your progress will be lost.') + formatMessage('Are you sure you want to start over? Your progress will be lost.'), ); if (result) { diff --git a/Composer/packages/form-dialogs/src/components/property/FormDialogPropertyCard.tsx b/Composer/packages/form-dialogs/src/components/property/FormDialogPropertyCard.tsx index c67fd43202..6f27562e10 100644 --- a/Composer/packages/form-dialogs/src/components/property/FormDialogPropertyCard.tsx +++ b/Composer/packages/form-dialogs/src/components/property/FormDialogPropertyCard.tsx @@ -86,10 +86,10 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP } = props; const templates = useRecoilValue(formDialogTemplatesAtom); - const selectedTemplate = React.useMemo(() => templates.find((t) => t.id === propertyCardData.propertyType), [ - propertyCardData, - templates, - ]); + const selectedTemplate = React.useMemo( + () => templates.find((t) => t.id === propertyCardData.propertyType), + [propertyCardData, templates], + ); // Indicates if the form in the card has been touched by the user. const touchedRef = React.useRef(!!propertyCardData.name); @@ -103,7 +103,7 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP (_: React.FormEvent, checked: boolean) => { onChangeArray(checked); }, - [onChangeArray] + [onChangeArray], ); const changeName = React.useCallback( @@ -111,7 +111,7 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP onChangeName(value); touchedRef.current = true; }, - [onChangeName] + [onChangeName], ); const deactivateItem = React.useCallback(() => { @@ -124,12 +124,12 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP (props: any, defaultRender?: (props: any) => JSX.Element | null) => ( ), - [] + [], ); const renderOverflowItem = React.useCallback( (item: IOverflowSetItemProps) => , - [] + [], ); const renderOverflowButton = React.useCallback( @@ -143,7 +143,7 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP role="menuitem" /> ), - [] + [], ); /** @@ -155,10 +155,10 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP ? !value ? formatMessage('Property name is required!') : !nameRegex.test(value) - ? formatMessage('Spaces and special characters are not allowed. Use letters, numbers, -, or _.') - : '' + ? formatMessage('Spaces and special characters are not allowed. Use letters, numbers, -, or _.') + : '' : '', - [touchedRef.current] + [touchedRef.current], ); return ( @@ -177,9 +177,9 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP onGetErrorMessage={validateName} onRenderLabel={onRenderLabel( formatMessage( - `A property is a piece of information that your bot will collect. The property name is the name used in Composer; it is not necessarily the same text that will appear in your bot's messages.` + `A property is a piece of information that your bot will collect. The property name is the name used in Composer; it is not necessarily the same text that will appear in your bot's messages.`, ), - propertyNameTooltipId + propertyNameTooltipId, )} /> )} @@ -249,7 +249,7 @@ export const FormDialogPropertyCard = React.memo((props: FormDialogPropertyCardP label={selectedTemplate?.$generator.array?.uniqueItems.title} onRenderLabel={onRenderLabel( selectedTemplate?.$generator.array?.uniqueItems.description, - `${selectedTemplate.id}-unique` + `${selectedTemplate.id}-unique`, )} /> )} diff --git a/Composer/packages/form-dialogs/src/components/property/FormDialogSchemaDetails.tsx b/Composer/packages/form-dialogs/src/components/property/FormDialogSchemaDetails.tsx index fe8ab245aa..3474601680 100644 --- a/Composer/packages/form-dialogs/src/components/property/FormDialogSchemaDetails.tsx +++ b/Composer/packages/form-dialogs/src/components/property/FormDialogSchemaDetails.tsx @@ -45,7 +45,7 @@ export const FormDialogSchemaDetails = () => { if (selection?.toString()) return; const elms = Array.prototype.slice.call( - containerRef.current.querySelectorAll(`.${jsPropertyListClassName}`) || [] + containerRef.current?.querySelectorAll(`.${jsPropertyListClassName}`) || [], ) as HTMLDivElement[]; if (!dragEventRef.current && !elms.some((elm) => elm.contains(e.target as HTMLElement))) { @@ -56,7 +56,7 @@ export const FormDialogSchemaDetails = () => { if (containerRef.current) { containerRef.current.addEventListener('click', clickOutsideLists); lifetime.add(() => { - containerRef.current.removeEventListener('click', clickOutsideLists); + containerRef.current?.removeEventListener('click', clickOutsideLists); }); } @@ -85,7 +85,7 @@ export const FormDialogSchemaDetails = () => { toIndex: destination.index, }); }, - [moveProperty] + [moveProperty], ); return ( diff --git a/Composer/packages/form-dialogs/src/components/property/PropertyCardContent.tsx b/Composer/packages/form-dialogs/src/components/property/PropertyCardContent.tsx index 16e3b152ee..c2ee7e32d5 100644 --- a/Composer/packages/form-dialogs/src/components/property/PropertyCardContent.tsx +++ b/Composer/packages/form-dialogs/src/components/property/PropertyCardContent.tsx @@ -27,7 +27,8 @@ type Props = { }; const renderField = (variable: string, info: Record, value: any, onChange: (value: any) => void) => { - const renderLabel = (helpText: string, tooltipId: string) => + const renderLabel = + (helpText: string, tooltipId: string) => // eslint-disable-next-line @typescript-eslint/no-explicit-any (props: any, defaultRender?: (props: any) => JSX.Element | null) => ( diff --git a/Composer/packages/form-dialogs/src/components/property/PropertyList.tsx b/Composer/packages/form-dialogs/src/components/property/PropertyList.tsx index 9db7e05d27..b55f311b46 100644 --- a/Composer/packages/form-dialogs/src/components/property/PropertyList.tsx +++ b/Composer/packages/form-dialogs/src/components/property/PropertyList.tsx @@ -67,7 +67,7 @@ export const PropertyList = (props: Props) => { const helpText = kind === 'required' ? formatMessage( - 'Required properties are properties that your bot will ask the user to provide. The user must provide values for all required properties.' + 'Required properties are properties that your bot will ask the user to provide. The user must provide values for all required properties.', ) : formatMessage('Optional properties are properties the bot accepts if given but does not ask for.'); diff --git a/Composer/packages/form-dialogs/src/components/property/PropertyListItem.tsx b/Composer/packages/form-dialogs/src/components/property/PropertyListItem.tsx index be76f930d7..116ab0107e 100644 --- a/Composer/packages/form-dialogs/src/components/property/PropertyListItem.tsx +++ b/Composer/packages/form-dialogs/src/components/property/PropertyListItem.tsx @@ -82,7 +82,7 @@ const PropertyListItemContent = React.memo((props: ContentProps) => { const tooltipId = useId('PropertyListItemContent'); const { title: typeDisplayText, description: typeDisplayTitle } = React.useMemo( () => templates.find((template) => template.id === propertyCardData.propertyType).$generator, - [templates, propertyCardData.propertyType] + [templates, propertyCardData.propertyType], ); const activateItem = React.useCallback(() => { @@ -95,7 +95,7 @@ const PropertyListItemContent = React.memo((props: ContentProps) => { activateItem(); } }, - [activateItem] + [activateItem], ); return ( @@ -155,35 +155,35 @@ export const PropertyListItem = React.memo((props: Props) => { (propertyType: string) => { changePropertyType({ id: propertyId, propertyType }); }, - [changePropertyType, propertyId] + [changePropertyType, propertyId], ); const onChangePropertyName = React.useCallback( (name: string) => { changePropertyName({ id: propertyId, name }); }, - [changePropertyName, propertyId] + [changePropertyName, propertyId], ); const onChangeData = React.useCallback( (data: Record) => { changePropertyCardData({ id: propertyId, data }); }, - [changePropertyCardData, propertyId] + [changePropertyCardData, propertyId], ); const onChangeArray = React.useCallback( (isArray: boolean) => { changePropertyArray({ id: propertyId, isArray }); }, - [changePropertyArray] + [changePropertyArray], ); const onActivateItem = React.useCallback( (propertyId: string) => { activatePropertyId({ id: propertyId }); }, - [activatePropertyId] + [activatePropertyId], ); const onRemove = React.useCallback(async () => { @@ -191,7 +191,7 @@ export const PropertyListItem = React.memo((props: Props) => { formatMessage('Delete property?'), propertyCardData.name ? formatMessage('Are you sure you want to remove "{propertyName}"?', { propertyName: propertyCardData.name }) - : formatMessage('Are you sure you want to remove this property?') + : formatMessage('Are you sure you want to remove this property?'), ); if (res) { removeProperty({ id: propertyId }); diff --git a/Composer/packages/form-dialogs/src/components/property/PropertyTypeSelector.tsx b/Composer/packages/form-dialogs/src/components/property/PropertyTypeSelector.tsx index bdbce39707..9ce9fddaf6 100644 --- a/Composer/packages/form-dialogs/src/components/property/PropertyTypeSelector.tsx +++ b/Composer/packages/form-dialogs/src/components/property/PropertyTypeSelector.tsx @@ -32,7 +32,7 @@ export const PropertyTypeSelector = React.memo((props: Props) => { template, }, })), - [templates, selectedPropertyType] + [templates, selectedPropertyType], ); const selectedKey = React.useMemo(() => options.find((o) => o.selected).key, [options]); @@ -42,7 +42,7 @@ export const PropertyTypeSelector = React.memo((props: Props) => { const newPropertyType = option.key as string; onChange(newPropertyType); }, - [onChange] + [onChange], ); const onRenderLabel = React.useCallback( @@ -51,7 +51,7 @@ export const PropertyTypeSelector = React.memo((props: Props) => { (props: any, defaultRender?: (props: any) => JSX.Element | null) => ( ), - [] + [], ); return ( @@ -65,9 +65,9 @@ export const PropertyTypeSelector = React.memo((props: Props) => { onChange={change} onRenderLabel={onRenderLabel( formatMessage( - `The property type defines the expected input. The type can be a list (or enum) of defined values or a data format, such as a date, email, number, or string.` + `The property type defines the expected input. The type can be a list (or enum) of defined values or a data format, such as a date, email, number, or string.`, ), - propertyTypeTooltipId + propertyTypeTooltipId, )} /> ); diff --git a/Composer/packages/form-dialogs/src/components/property/RequiredPriorityIndicator.tsx b/Composer/packages/form-dialogs/src/components/property/RequiredPriorityIndicator.tsx index 3c01e46b09..0eba779dba 100644 --- a/Composer/packages/form-dialogs/src/components/property/RequiredPriorityIndicator.tsx +++ b/Composer/packages/form-dialogs/src/components/property/RequiredPriorityIndicator.tsx @@ -28,7 +28,7 @@ const usePropertyPriority = (required: boolean, propertyId: string) => { return React.useMemo( () => (required ? requiredPropertyIds.indexOf(propertyId) : optionalPropertyIds.indexOf(propertyId)), - [required, propertyId, requiredPropertyIds, optionalPropertyIds] + [required, propertyId, requiredPropertyIds, optionalPropertyIds], ); }; @@ -36,9 +36,10 @@ export const RequiredPriorityIndicator = React.memo((props: Props) => { const { required, propertyId } = props; const priority = usePropertyPriority(required, propertyId) + 1; - const requiredText = React.useMemo(() => (required ? formatMessage('Required') : formatMessage('Optional')), [ - required, - ]); + const requiredText = React.useMemo( + () => (required ? formatMessage('Required') : formatMessage('Optional')), + [required], + ); const content = React.useMemo( () => @@ -56,10 +57,10 @@ export const RequiredPriorityIndicator = React.memo((props: Props) => { tooltipId={`${propertyId}-priority-tooltip`} /> ), - } + }, ) : formatMessage('{requiredText}', { requiredText }), - [requiredText, priority] + [requiredText, priority], ); return ( diff --git a/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleContent.tsx b/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleContent.tsx index d85f3846a9..d9480c4160 100644 --- a/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleContent.tsx +++ b/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleContent.tsx @@ -68,7 +68,7 @@ export const EnumExampleContent = (props: Props) => { exampleData[currentLocale] && Object.keys(exampleData[currentLocale]) ? Object.keys(exampleData[currentLocale])[0] : `${propertyName}Value`, - [exampleData, currentLocale, propertyName] + [exampleData, currentLocale, propertyName], ); const addLocale = () => { diff --git a/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleList.tsx b/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleList.tsx index 14070ae85b..d044ac035d 100644 --- a/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleList.tsx +++ b/Composer/packages/form-dialogs/src/components/property/examples/EnumExampleList.tsx @@ -93,15 +93,18 @@ export const EnumExampleList = (props: Props) => { const [activeRowIndex, setActiveRowIndex] = React.useState(-1); const itemsRecord = React.useMemo>(() => { - return Object.keys(exampleData).reduce((a, locale) => { - a[locale] = - Object.keys(exampleData[locale]?.[entityName])?.reduce((b, word) => { - b.push({ word, synonyms: exampleData[locale]?.[entityName]?.[word] ?? [] }); - return b; - }, [] as ListItemData[]) ?? []; - - return a; - }, {} as Record); + return Object.keys(exampleData).reduce( + (a, locale) => { + a[locale] = + Object.keys(exampleData[locale]?.[entityName])?.reduce((b, word) => { + b.push({ word, synonyms: exampleData[locale]?.[entityName]?.[word] ?? [] }); + return b; + }, [] as ListItemData[]) ?? []; + + return a; + }, + {} as Record, + ); }, [exampleData, entityName]); const rowChange = (locale: string, idx: number) => (word: string, synonyms: string[]) => { @@ -118,7 +121,7 @@ export const EnumExampleList = (props: Props) => { const deleteLocale = (locale: string) => async () => { const confirm = await OpenConfirmModal( formatMessage('Delete "{locale}" examples?', { locale }), - formatMessage('Are you sure you want to remove examples for "{locale}" locale?', { locale }) + formatMessage('Are you sure you want to remove examples for "{locale}" locale?', { locale }), ); if (confirm) { const newExampleData = { ...exampleData }; diff --git a/Composer/packages/form-dialogs/src/components/property/examples/StringExampleContent.tsx b/Composer/packages/form-dialogs/src/components/property/examples/StringExampleContent.tsx index a843b3ed2a..5c60b3179f 100644 --- a/Composer/packages/form-dialogs/src/components/property/examples/StringExampleContent.tsx +++ b/Composer/packages/form-dialogs/src/components/property/examples/StringExampleContent.tsx @@ -66,7 +66,7 @@ export const StringExampleContent = (props: Props) => { exampleData[currentLocale] && Object.keys(exampleData[currentLocale]) ? Object.keys(exampleData[currentLocale])[0] : propertyType, - [exampleData, propertyType, currentLocale] + [exampleData, propertyType, currentLocale], ); const addLocale = () => { @@ -76,7 +76,7 @@ export const StringExampleContent = (props: Props) => { const deleteLocale = (locale: string) => async () => { const confirm = await OpenConfirmModal( formatMessage('Delete "{locale}" examples?', { locale }), - formatMessage('Are you sure you want to remove examples for "{locale}" locale?', { locale }) + formatMessage('Are you sure you want to remove examples for "{locale}" locale?', { locale }), ); if (confirm) { const newExampleData = { ...exampleData }; @@ -89,7 +89,8 @@ export const StringExampleContent = (props: Props) => { onChange({ ...exampleData, [currentLocale]: { [entityName]: values } }); }; - const renderLabel = (helpText: string, tooltipId: string) => + const renderLabel = + (helpText: string, tooltipId: string) => // eslint-disable-next-line @typescript-eslint/no-explicit-any (props: any, defaultRender?: (props: any) => JSX.Element | null) => ( diff --git a/Composer/packages/form-dialogs/src/undo/UndoRoot.tsx b/Composer/packages/form-dialogs/src/undo/UndoRoot.tsx index e7cd59e3a8..2100f307a8 100644 --- a/Composer/packages/form-dialogs/src/undo/UndoRoot.tsx +++ b/Composer/packages/form-dialogs/src/undo/UndoRoot.tsx @@ -9,7 +9,6 @@ import { Snapshot, useGotoRecoilSnapshot, useRecoilSnapshot, - // eslint-disable-next-line @typescript-eslint/camelcase useRecoilTransactionObserver_UNSTABLE, } from 'recoil'; import * as React from 'react'; @@ -54,7 +53,7 @@ const didAtomMapsChange = (prevMap: AtomMap, currMap: AtomMap) => { const mapTrackedAtomsOntoSnapshot = ( current: Snapshot, target: Snapshot, - trackedAtoms: RecoilState[] | null | undefined + trackedAtoms: RecoilState[] | null | undefined, ): Snapshot => { if (!trackedAtoms) { return target; diff --git a/Composer/packages/form-dialogs/src/utils/base.ts b/Composer/packages/form-dialogs/src/utils/base.ts index 327f1b2cc7..0542229301 100644 --- a/Composer/packages/form-dialogs/src/utils/base.ts +++ b/Composer/packages/form-dialogs/src/utils/base.ts @@ -24,7 +24,7 @@ export class Lifetime implements Disposable { this._disposables = []; } - public add(disposable: Disposable | Function, options?: DisposableAdditionOptions) { + public add(disposable: Disposable | (() => void), options?: DisposableAdditionOptions) { const { ignoreAfterDisposal } = options || { ignoreAfterDisposal: false }; if (this._isDisposed) { diff --git a/Composer/packages/form-dialogs/src/utils/hooks/useTraceProps.ts b/Composer/packages/form-dialogs/src/utils/hooks/useTraceProps.ts index adfaf96cc7..2754ba6c0d 100644 --- a/Composer/packages/form-dialogs/src/utils/hooks/useTraceProps.ts +++ b/Composer/packages/form-dialogs/src/utils/hooks/useTraceProps.ts @@ -9,12 +9,15 @@ import * as React from 'react'; export const useTraceProps = >(props: T, prefix?: string) => { const prev = React.useRef(props); React.useEffect(() => { - const changedProps = Object.entries(props).reduce((ps, [k, v]) => { - if (prev.current[k] !== v) { - ps[k] = [prev.current[k], v]; - } - return ps; - }, >{}); + const changedProps = Object.entries(props).reduce( + (ps, [k, v]) => { + if (prev.current[k] !== v) { + ps[k] = [prev.current[k], v]; + } + return ps; + }, + >{}, + ); if (Object.keys(changedProps).length > 0) { // eslint-disable-next-line no-console console.log(`${prefix || ''}: changed props:`, changedProps); diff --git a/Composer/packages/form-dialogs/src/utils/hooks/useUndoKeyBinding.ts b/Composer/packages/form-dialogs/src/utils/hooks/useUndoKeyBinding.ts index a96088e65f..f81e2b1e06 100644 --- a/Composer/packages/form-dialogs/src/utils/hooks/useUndoKeyBinding.ts +++ b/Composer/packages/form-dialogs/src/utils/hooks/useUndoKeyBinding.ts @@ -26,7 +26,7 @@ export const useUndoKeyBinding = () => { } } }, - [undo, redo, canRedo, canUndo] + [undo, redo, canRedo, canUndo], ); useKeyBinding('keydown', callback); diff --git a/Composer/packages/lib/code-editor/src/LuEditor.tsx b/Composer/packages/lib/code-editor/src/LuEditor.tsx index 25d0955fbf..6a1975f0e0 100644 --- a/Composer/packages/lib/code-editor/src/LuEditor.tsx +++ b/Composer/packages/lib/code-editor/src/LuEditor.tsx @@ -62,7 +62,7 @@ const LuSectionLink = withTooltip( ), }, - Link + Link, ); const sectionLinkTokens = { childrenGap: 4 }; @@ -169,14 +169,14 @@ const LuEditor: React.FC = (props) => { const onLuNavigationMsg = ( languageClient: MonacoLanguageClient, - onNavigateToLuPage: ((luFileId: string, luSectionId?: string | undefined) => void) | undefined + onNavigateToLuPage: ((luFileId: string, luSectionId?: string | undefined) => void) | undefined, ) => { return languageClient.onReady().then(() => languageClient.onNotification('LuGotoDefinition', (result) => { if (luOption?.projectId) { onNavigateToLuPage?.(result.fileId, result.intent); } - }) + }), ); }; @@ -220,7 +220,7 @@ const LuEditor: React.FC = (props) => { return convertEdit(e); }); editor.executeEdits(uri, edits); - }) + }), ); const disposable = languageClient.start(); @@ -286,7 +286,7 @@ const LuEditor: React.FC = (props) => { } } }, - [editor, entities] + [editor, entities], ); const onExpandedEditorChange = React.useCallback( @@ -294,7 +294,7 @@ const LuEditor: React.FC = (props) => { editor?.getModel()?.setValue(newValue); onChange(newValue); }, - [editor, onChange] + [editor, onChange], ); const change = React.useCallback( @@ -304,7 +304,7 @@ const LuEditor: React.FC = (props) => { onChange(newValue); } }, - [onChange] + [onChange], ); const insertEntity = useCallback( @@ -321,7 +321,7 @@ const LuEditor: React.FC = (props) => { } } }, - [editor] + [editor], ); const navigateToLuPage = React.useCallback(() => { diff --git a/Composer/packages/lib/code-editor/src/components/HelpIconTooltip.tsx b/Composer/packages/lib/code-editor/src/components/HelpIconTooltip.tsx index 16670e3b83..89a8b2ad3e 100644 --- a/Composer/packages/lib/code-editor/src/components/HelpIconTooltip.tsx +++ b/Composer/packages/lib/code-editor/src/components/HelpIconTooltip.tsx @@ -35,5 +35,5 @@ export const HelpIconTooltip = React.memo( styles={tooltipStyles} /> ); - } + }, ); diff --git a/Composer/packages/lib/code-editor/src/components/ItemWithTooltip.tsx b/Composer/packages/lib/code-editor/src/components/ItemWithTooltip.tsx index 8d127f2c53..a1394372f4 100644 --- a/Composer/packages/lib/code-editor/src/components/ItemWithTooltip.tsx +++ b/Composer/packages/lib/code-editor/src/components/ItemWithTooltip.tsx @@ -33,5 +33,5 @@ export const ItemWithTooltip = React.memo( }} /> - ) + ), ); diff --git a/Composer/packages/lib/code-editor/src/components/toolbar/FieldToolbar.tsx b/Composer/packages/lib/code-editor/src/components/toolbar/FieldToolbar.tsx index 0d8813ad5c..a14516841b 100644 --- a/Composer/packages/lib/code-editor/src/components/toolbar/FieldToolbar.tsx +++ b/Composer/packages/lib/code-editor/src/components/toolbar/FieldToolbar.tsx @@ -86,21 +86,21 @@ export const FieldToolbar = React.memo((props: FieldToolbarProps) => { const { functionRefPayload, propertyRefPayload, templateRefPayload } = useEditorToolbarItems( lgTemplates ?? [], properties ?? [], - onSelectToolbarMenuItem + onSelectToolbarMenuItem, ); const TooltipTemplateButton = React.useMemo( () => withTooltip({ content: formatMessage('Insert a template reference') }, ToolbarButtonMenu), - [] + [], ); const TooltipPropertyButton = React.useMemo( () => withTooltip({ content: formatMessage('Insert a property reference in memory') }, ToolbarButtonMenu), - [] + [], ); const TooltipFunctionButton = React.useMemo( () => withTooltip({ content: formatMessage('Insert an adaptive expression pre-built function') }, ToolbarButtonMenu), - [] + [], ); const fixedItems: ICommandBarItemProps[] = React.useMemo(() => { @@ -164,7 +164,7 @@ export const FieldToolbar = React.memo((props: FieldToolbarProps) => { buttonStyles: moreButtonStyles, className: dismissHandlerClassName, })) ?? [], - [moreToolbarItems, dismissHandlerClassName] + [moreToolbarItems, dismissHandlerClassName], ); const items = React.useMemo( @@ -175,7 +175,7 @@ export const FieldToolbar = React.memo((props: FieldToolbarProps) => { : []), ...moreItems, ], - [fixedItems, moreItems] + [fixedItems, moreItems], ); return ( diff --git a/Composer/packages/lib/code-editor/src/components/toolbar/PropertyTreeItem.tsx b/Composer/packages/lib/code-editor/src/components/toolbar/PropertyTreeItem.tsx index 5472b1fc99..57abeadf12 100644 --- a/Composer/packages/lib/code-editor/src/components/toolbar/PropertyTreeItem.tsx +++ b/Composer/packages/lib/code-editor/src/components/toolbar/PropertyTreeItem.tsx @@ -48,7 +48,7 @@ const Content = styled(Stack)<{ type PropertyTreeItemProps = { onClick?: ( ev?: React.MouseEvent | React.KeyboardEvent, - item?: IContextualMenuItem + item?: IContextualMenuItem, ) => boolean | void; item: PropertyItem; level: number; @@ -67,7 +67,7 @@ export const PropertyTreeItem = React.memo((props: PropertyTreeItemProps) => { e.stopPropagation(); onToggleExpand?.(item.id, !expanded); }, - [expanded, onToggleExpand, item] + [expanded, onToggleExpand, item], ); const isExpandable = !!item.children?.length && onToggleExpand; diff --git a/Composer/packages/lib/code-editor/src/components/toolbar/ToolbarButtonMenu.tsx b/Composer/packages/lib/code-editor/src/components/toolbar/ToolbarButtonMenu.tsx index aa0f850f04..119c670699 100644 --- a/Composer/packages/lib/code-editor/src/components/toolbar/ToolbarButtonMenu.tsx +++ b/Composer/packages/lib/code-editor/src/components/toolbar/ToolbarButtonMenu.tsx @@ -151,7 +151,7 @@ export const ToolbarButtonMenu = React.memo((props: ToolbarButtonMenuProps) => { }, layerProps: { className: dismissHandlerClassName }, }), - [dismissHandlerClassName] + [dismissHandlerClassName], ); const propertyTreeConfig = React.useMemo(() => { @@ -246,7 +246,7 @@ export const ToolbarButtonMenu = React.memo((props: ToolbarButtonMenuProps) => { const { functions, onSelectFunction } = (payload as FunctionRefPayload).data; return functions .reduce((acc, f) => { - if (f.children && f.children.length) { + if (f.children?.length) { acc.push(...f.children); } @@ -312,12 +312,12 @@ export const ToolbarButtonMenu = React.memo((props: ToolbarButtonMenuProps) => {
{uiStrings.header}
), - [] + [], ); const { onRenderMenuList, query, onReset } = useSearchableMenuListCallback( uiStrings.searchPlaceholder, - menuHeaderRenderer + menuHeaderRenderer, ); React.useEffect(() => { @@ -326,14 +326,14 @@ export const ToolbarButtonMenu = React.memo((props: ToolbarButtonMenuProps) => { payload.kind === 'function' ? flatFunctionListItems : payload.kind === 'property' - ? flatPropertyListItems - : menuItems; + ? flatPropertyListItems + : menuItems; const predicate = getFilterPredicate(payload.kind, query); const filteredItems = searchableItems.filter(predicate); - if (!filteredItems || !filteredItems.length) { + if (!filteredItems?.length) { filteredItems.push(noSearchResultMenuItem); } diff --git a/Composer/packages/lib/code-editor/src/components/toolbar/__tests__/ToolbarButtonMenu.test.tsx b/Composer/packages/lib/code-editor/src/components/toolbar/__tests__/ToolbarButtonMenu.test.tsx index 716f79173d..dc8088e1fb 100644 --- a/Composer/packages/lib/code-editor/src/components/toolbar/__tests__/ToolbarButtonMenu.test.tsx +++ b/Composer/packages/lib/code-editor/src/components/toolbar/__tests__/ToolbarButtonMenu.test.tsx @@ -201,7 +201,7 @@ describe('', () => { expect(functionPayload.data.onSelectFunction).toBeCalledWith( getBuiltInFunctionInsertText(functionName), - 'function' + 'function', ); }); }); diff --git a/Composer/packages/lib/code-editor/src/constants.ts b/Composer/packages/lib/code-editor/src/constants.ts index f00b784e71..a222b576cb 100644 --- a/Composer/packages/lib/code-editor/src/constants.ts +++ b/Composer/packages/lib/code-editor/src/constants.ts @@ -14,7 +14,7 @@ export const LU_HELP = 'https://aka.ms/lu-file-format'; export const defaultPlaceholder = formatMessage( `> To learn more about the LU file format, read the documentation at > {LU_HELP}`, - { LU_HELP } + { LU_HELP }, ); export const LG_HELP = 'https://aka.ms/lg-file-format'; @@ -23,5 +23,5 @@ export const QNA_HELP = 'https://aka.ms/qna-file-format'; export const defaultQnAPlaceholder = formatMessage( `> To learn more about the QnA file format, read the documentation at > {QNA_HELP}`, - { QNA_HELP } + { QNA_HELP }, ); diff --git a/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarItems.ts b/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarItems.ts index 4e15abfd6e..56a322ef23 100644 --- a/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarItems.ts +++ b/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarItems.ts @@ -10,20 +10,20 @@ import { FunctionRefPayload, PropertyRefPayload, TemplateRefPayload, ToolbarButt export const useEditorToolbarItems = ( lgTemplates: readonly LgTemplate[], properties: readonly string[], - selectToolbarMenuItem: (itemText: string, itemType: ToolbarButtonPayload['kind']) => void + selectToolbarMenuItem: (itemText: string, itemType: ToolbarButtonPayload['kind']) => void, ) => { const templateRefPayload = React.useMemo( () => ({ kind: 'template', data: { templates: lgTemplates, onSelectTemplate: selectToolbarMenuItem }, - } as TemplateRefPayload), - [lgTemplates, selectToolbarMenuItem] + }) as TemplateRefPayload, + [lgTemplates, selectToolbarMenuItem], ); const propertyRefPayload = React.useMemo( - () => ({ kind: 'property', data: { properties, onSelectProperty: selectToolbarMenuItem } } as PropertyRefPayload), - [properties, selectToolbarMenuItem] + () => ({ kind: 'property', data: { properties, onSelectProperty: selectToolbarMenuItem } }) as PropertyRefPayload, + [properties, selectToolbarMenuItem], ); const functionRefPayload = React.useMemo( @@ -31,8 +31,8 @@ export const useEditorToolbarItems = ( ({ kind: 'function', data: { functions: builtInFunctionsGrouping, onSelectFunction: selectToolbarMenuItem }, - } as FunctionRefPayload), - [builtInFunctionsGrouping, selectToolbarMenuItem] + }) as FunctionRefPayload, + [builtInFunctionsGrouping, selectToolbarMenuItem], ); return { templateRefPayload, propertyRefPayload, functionRefPayload }; diff --git a/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx b/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx index e2cc558819..02d7ff325c 100644 --- a/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx +++ b/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx @@ -36,7 +36,7 @@ export const useEditorToolbarPopExpandItem = ( }, options?: { customClassName?: string; - } + }, ) => { const [isExpanded, setIsExpanded] = React.useState(false); @@ -59,7 +59,7 @@ export const useEditorToolbarPopExpandItem = ( }, } as ICommandBarItemProps) : undefined, - [popExpandOptions] + [popExpandOptions], ); const dismiss = React.useCallback(() => { diff --git a/Composer/packages/lib/code-editor/src/hooks/useNoSearchResultMenuItem.tsx b/Composer/packages/lib/code-editor/src/hooks/useNoSearchResultMenuItem.tsx index 66cbb25eb7..0eb64c9c3e 100644 --- a/Composer/packages/lib/code-editor/src/hooks/useNoSearchResultMenuItem.tsx +++ b/Composer/packages/lib/code-editor/src/hooks/useNoSearchResultMenuItem.tsx @@ -35,6 +35,6 @@ export const useNoSearchResultMenuItem = (message?: string): IContextualMenuItem
), }), - [message] + [message], ); }; diff --git a/Composer/packages/lib/code-editor/src/hooks/useSearchableMenuListCallback.tsx b/Composer/packages/lib/code-editor/src/hooks/useSearchableMenuListCallback.tsx index daa23c7a5e..6478b806a8 100644 --- a/Composer/packages/lib/code-editor/src/hooks/useSearchableMenuListCallback.tsx +++ b/Composer/packages/lib/code-editor/src/hooks/useSearchableMenuListCallback.tsx @@ -23,7 +23,7 @@ const searchFieldStyles = { root: { borderRadius: 0, ...fontSizeStyle }, iconCon */ export const useSearchableMenuListCallback = ( searchFiledPlaceHolder?: string, - headerRenderer?: () => React.ReactNode + headerRenderer?: () => React.ReactNode, ) => { const { onSearchAbort, onSearchQueryChange, query, setQuery } = useDebouncedSearchCallbacks(); @@ -41,7 +41,7 @@ export const useSearchableMenuListCallback = ( =1 {one result} other {# results} }`, - { query, count: menuListProps?.items?.filter((item) => item?.key && item.key !== 'no_results').length } + { query, count: menuListProps?.items?.filter((item) => item?.key && item.key !== 'no_results').length }, ) : undefined; @@ -60,7 +60,7 @@ export const useSearchableMenuListCallback = ( ); }, - [searchFiledPlaceHolder, headerRenderer, onReset, onSearchQueryChange, searchComplete] + [searchFiledPlaceHolder, headerRenderer, onReset, onSearchQueryChange, searchComplete], ); return { onRenderMenuList: callback, query, onReset }; diff --git a/Composer/packages/lib/code-editor/src/languages/lg.ts b/Composer/packages/lib/code-editor/src/languages/lg.ts index 90125a4065..0cd9eb6d58 100644 --- a/Composer/packages/lib/code-editor/src/languages/lg.ts +++ b/Composer/packages/lib/code-editor/src/languages/lg.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/camelcase, no-useless-escape */ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. @@ -82,7 +81,7 @@ export function registerLGLanguage(monaco: Monaco) { //parameter in template name [/([a-zA-Z0-9_][a-zA-Z0-9_-]*)(,|\))/, ['parameter', 'delimiter']], // other - [/[^\()]/, 'template-name'], + [/[^(]/, 'template-name'], ], template_body: [ //comments diff --git a/Composer/packages/lib/code-editor/src/lg/LgCodeEditor.tsx b/Composer/packages/lib/code-editor/src/lg/LgCodeEditor.tsx index b745b31055..546a368e98 100644 --- a/Composer/packages/lib/code-editor/src/lg/LgCodeEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/LgCodeEditor.tsx @@ -31,7 +31,7 @@ import { jsLgToolbarMenuClassName } from './constants'; const placeholder = formatMessage( `> To learn more about the LG file format, read the documentation at > {lgHelp}`, - { lgHelp: LG_HELP } + { lgHelp: LG_HELP }, ); const linkStyles = { @@ -60,7 +60,7 @@ const LgTemplateLink = withTooltip( ), }, - Link + Link, ); const templateLinkTokens = { childrenGap: 4 }; @@ -144,7 +144,7 @@ export const LgCodeEditor = (props: LgCodeEditorProps) => { const languageClient = createLanguageClient( formatMessage('LG Language Client'), ['botbuilderlg'], - connection + connection, ); sendRequestWithRetry(languageClient, 'initializeDocuments', { lgOption, uri }); @@ -157,7 +157,7 @@ export const LgCodeEditor = (props: LgCodeEditorProps) => { if (lgOption?.projectId) { onNavigateToLgPage?.(result.fileId, { templateId: result.templateId, line: result.line }); } - }) + }), ); }, }); @@ -170,7 +170,7 @@ export const LgCodeEditor = (props: LgCodeEditorProps) => { if (lgOption?.projectId) { onNavigateToLgPage?.(result.fileId, { templateId: result.templateId, line: result.line }); } - }) + }), ); } @@ -208,7 +208,7 @@ export const LgCodeEditor = (props: LgCodeEditorProps) => { location: 'LGCodeEditor', }); }, - [editor, telemetryClient] + [editor, telemetryClient], ); const navigateToLgPage = React.useCallback(() => { @@ -220,7 +220,7 @@ export const LgCodeEditor = (props: LgCodeEditorProps) => { editor?.getModel()?.setValue(newValue); onChange(newValue); }, - [editor, onChange] + [editor, onChange], ); const change = React.useCallback( @@ -230,7 +230,7 @@ export const LgCodeEditor = (props: LgCodeEditorProps) => { onChange(newValue); } }, - [onChange] + [onChange], ); return ( diff --git a/Composer/packages/lib/code-editor/src/lg/LgResponseEditor.tsx b/Composer/packages/lib/code-editor/src/lg/LgResponseEditor.tsx index 823f9f1fa0..eaa70a77f9 100644 --- a/Composer/packages/lib/code-editor/src/lg/LgResponseEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/LgResponseEditor.tsx @@ -32,5 +32,5 @@ export const LgResponseEditor = React.memo( onTemplateChange={onTemplateChange} /> ); - } + }, ); diff --git a/Composer/packages/lib/code-editor/src/lg/LgSpeechModalityToolbar.tsx b/Composer/packages/lib/code-editor/src/lg/LgSpeechModalityToolbar.tsx index 1fb54961a3..4c0e39cdec 100644 --- a/Composer/packages/lib/code-editor/src/lg/LgSpeechModalityToolbar.tsx +++ b/Composer/packages/lib/code-editor/src/lg/LgSpeechModalityToolbar.tsx @@ -49,7 +49,7 @@ export const LgSpeechModalityToolbar = React.memo((props: Props) => { })} /> ), - [] + [], ); const subMenuProps = React.useMemo( @@ -66,12 +66,13 @@ export const LgSpeechModalityToolbar = React.memo((props: Props) => { { text: 'audio', key: 'audio', onClick: () => onInsertSSMLTag('audio'), style: menuItemStyles }, ], }), - [renderHeaderContent, onInsertSSMLTag] + [renderHeaderContent, onInsertSSMLTag], ); - const moreToolbarItems = React.useMemo(() => [{ key: 'ssmlTag', text: formatMessage('SSML tag'), subMenuProps }], [ - subMenuProps, - ]); + const moreToolbarItems = React.useMemo( + () => [{ key: 'ssmlTag', text: formatMessage('SSML tag'), subMenuProps }], + [subMenuProps], + ); return ; }); diff --git a/Composer/packages/lib/code-editor/src/lg/ModalityPivot.tsx b/Composer/packages/lib/code-editor/src/lg/ModalityPivot.tsx index a8838c31d2..d4dea4272e 100644 --- a/Composer/packages/lib/code-editor/src/lg/ModalityPivot.tsx +++ b/Composer/packages/lib/code-editor/src/lg/ModalityPivot.tsx @@ -50,7 +50,7 @@ const getModalityTooltipText = (modality: ModalityType) => { switch (modality) { case 'Attachments': return formatMessage( - 'List of attachments with their type. Used by channels to render as UI cards or other generic file attachment types.' + 'List of attachments with their type. Used by channels to render as UI cards or other generic file attachment types.', ); case 'Speak': return formatMessage('Spoken text used by the channel to render audibly.'); @@ -162,7 +162,7 @@ const renderModalityEditor = ({ const getInitialModalities = (structuredResponse?: PartialStructuredResponse): ModalityType[] => { const modalities = Object.keys(structuredResponse || {}).filter((m) => - modalityTypes.includes(m as ModalityType) + modalityTypes.includes(m as ModalityType), ) as ModalityType[]; if (structuredResponse?.InputHint && !structuredResponse.Speak) { @@ -224,7 +224,7 @@ export const ModalityPivot = React.memo((props: Props) => { tooltipText={getModalityTooltipText(itemProps.item.key as ModalityType)} /> ), - [] + [], ); const items = useMemo( @@ -260,7 +260,7 @@ export const ModalityPivot = React.memo((props: Props) => { style: menuItemStyle, }, ], - [renderMenuItemContent] + [renderMenuItemContent], ); const pivotItems = useMemo( @@ -269,12 +269,12 @@ export const ModalityPivot = React.memo((props: Props) => { .filter((m) => modalities.includes(m)) .map((modality) => items.find(({ key }) => key === modality)) .filter(Boolean) as IContextualMenuItem[], - [items, modalities] + [items, modalities], + ); + const menuItems = useMemo( + () => items.filter(({ key }) => !modalities.includes(key as ModalityType)), + [items, modalities], ); - const menuItems = useMemo(() => items.filter(({ key }) => !modalities.includes(key as ModalityType)), [ - items, - modalities, - ]); const onRemoveModality = useCallback( (modality: ModalityType, keepReferencedTemplates = false) => { @@ -320,7 +320,7 @@ export const ModalityPivot = React.memo((props: Props) => { telemetryClient.track('LGEditorModalityDeleted', { modality }); } }, - [lgOption, modalities, structuredResponse, telemetryClient, onRemoveTemplate, onTemplateChange] + [lgOption, modalities, structuredResponse, telemetryClient, onRemoveTemplate, onTemplateChange], ); const onModalityAddMenuItemClick = useCallback( @@ -331,7 +331,7 @@ export const ModalityPivot = React.memo((props: Props) => { telemetryClient.track('LGEditorModalityAdded', { modality: item.key }); } }, - [telemetryClient] + [telemetryClient], ); const onPivotChange = useCallback((item?: PivotItem) => { @@ -354,7 +354,7 @@ export const ModalityPivot = React.memo((props: Props) => { onTemplateChange(lgOption.templateId, mappedResponse); } }, - [lgOption, structuredResponse, onTemplateChange] + [lgOption, structuredResponse, onTemplateChange], ); const onAttachmentLayoutChange = useCallback( @@ -363,7 +363,7 @@ export const ModalityPivot = React.memo((props: Props) => { AttachmentLayout: { kind: 'AttachmentLayout', value: layout } as AttachmentLayoutStructuredResponseItem, }); }, - [onUpdateResponseTemplate] + [onUpdateResponseTemplate], ); const onInputHintChange = useCallback( @@ -375,7 +375,7 @@ export const ModalityPivot = React.memo((props: Props) => { } as InputHintStructuredResponseItem, }); }, - [onUpdateResponseTemplate] + [onUpdateResponseTemplate], ); const addMenuProps = React.useMemo( @@ -383,7 +383,7 @@ export const ModalityPivot = React.memo((props: Props) => { items: menuItems, onItemClick: onModalityAddMenuItemClick, }), - [menuItems, onModalityAddMenuItemClick] + [menuItems, onModalityAddMenuItemClick], ); return ( diff --git a/Composer/packages/lib/code-editor/src/lg/__tests__/ModalityPivot.test.tsx b/Composer/packages/lib/code-editor/src/lg/__tests__/ModalityPivot.test.tsx index 73554290a0..388a10b2aa 100644 --- a/Composer/packages/lib/code-editor/src/lg/__tests__/ModalityPivot.test.tsx +++ b/Composer/packages/lib/code-editor/src/lg/__tests__/ModalityPivot.test.tsx @@ -58,7 +58,7 @@ const renderModalityPivot = ({ telemetryClient={{ track: noop, pageView: noop }} onRemoveTemplate={onRemoveTemplate} onTemplateChange={onTemplateChange} - /> + />, ); }; diff --git a/Composer/packages/lib/code-editor/src/lg/__tests__/TextModalityEditors.test.tsx b/Composer/packages/lib/code-editor/src/lg/__tests__/TextModalityEditors.test.tsx index 94e0343ea1..b2d5d72a62 100644 --- a/Composer/packages/lib/code-editor/src/lg/__tests__/TextModalityEditors.test.tsx +++ b/Composer/packages/lib/code-editor/src/lg/__tests__/TextModalityEditors.test.tsx @@ -22,7 +22,7 @@ describe('TextModalityEditor', () => { onRemoveTemplate={jest.fn()} onTemplateChange={jest.fn()} onUpdateResponseTemplate={jest.fn()} - /> + />, ); await findByText('hello world'); @@ -41,7 +41,7 @@ describe('TextModalityEditor', () => { onRemoveTemplate={jest.fn()} onTemplateChange={jest.fn()} onUpdateResponseTemplate={jest.fn()} - /> + />, ); await findByText('variation1'); diff --git a/Composer/packages/lib/code-editor/src/lg/constants.ts b/Composer/packages/lib/code-editor/src/lg/constants.ts index 99067899ae..a16bf5bcc0 100644 --- a/Composer/packages/lib/code-editor/src/lg/constants.ts +++ b/Composer/packages/lib/code-editor/src/lg/constants.ts @@ -17,7 +17,7 @@ export const lgCardAttachmentTemplates = [ 'animation', ] as const; -export type LgCardTemplateType = typeof lgCardAttachmentTemplates[number]; +export type LgCardTemplateType = (typeof lgCardAttachmentTemplates)[number]; export const cardTemplates: Record = { adaptive: `> To learn more Adaptive Cards format, read the documentation at diff --git a/Composer/packages/lib/code-editor/src/lg/hooks/useStringArray.ts b/Composer/packages/lib/code-editor/src/lg/hooks/useStringArray.ts index e15fe1d405..9ace306cdc 100644 --- a/Composer/packages/lib/code-editor/src/lg/hooks/useStringArray.ts +++ b/Composer/packages/lib/code-editor/src/lg/hooks/useStringArray.ts @@ -15,7 +15,7 @@ const multiLineBlockSymbol = '```'; const getInitialItems = ( response: T, lgTemplates?: readonly LgTemplate[], - focusOnMount?: boolean + focusOnMount?: boolean, ): TemplateBodyItem[] => { const templateId = getTemplateId(response); const template = lgTemplates?.find(({ name }) => name === templateId); @@ -53,7 +53,7 @@ export const useStringArray = ( focusOnMount?: boolean; lgOption?: LGOption; lgTemplates?: readonly LgTemplate[]; - } + }, ) => { const newTemplateNameSuffix = React.useMemo(() => kind.toLowerCase(), [kind]); @@ -62,7 +62,7 @@ export const useStringArray = ( const [templateId, setTemplateId] = React.useState(getTemplateId(structuredResponse)); const [items, setItems] = React.useState( - getInitialItems(structuredResponse, lgTemplates, focusOnMount) + getInitialItems(structuredResponse, lgTemplates, focusOnMount), ); const onChange = React.useCallback( @@ -82,7 +82,7 @@ export const useStringArray = ( onTemplateChange(id, templateBodyItemsToString(fixedNewItems)); } }, - [kind, newTemplateNameSuffix, lgOption, templateId, onRemoveTemplate, onTemplateChange, onUpdateResponseTemplate] + [kind, newTemplateNameSuffix, lgOption, templateId, onRemoveTemplate, onTemplateChange, onUpdateResponseTemplate], ); return { items, onChange }; diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentArrayEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentArrayEditor.tsx index 1544056a8e..f27a35c91e 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentArrayEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentArrayEditor.tsx @@ -97,21 +97,21 @@ export const AttachmentArrayEditor = React.memo( debounce((id: string, content: string | undefined, callback: (templateId: string, body?: string) => void) => { callback(id, content); }, 300), - [] + [], ); const onLgCodeChange = React.useCallback( (templateId: string) => (body?: string) => { debouncedChange(templateId, body, onTemplateChange); }, - [debouncedChange, onTemplateChange] + [debouncedChange, onTemplateChange], ); const onFocus = React.useCallback( (index: number) => () => { setCurrentIndex(index); }, - [] + [], ); const onRemove = React.useCallback( @@ -120,7 +120,7 @@ export const AttachmentArrayEditor = React.memo( onChange(newItems); onRemoveTemplate(templateId); }, - [items, onChange, onRemoveTemplate] + [items, onChange, onRemoveTemplate], ); const onAddTemplateClick = React.useCallback( @@ -132,7 +132,7 @@ export const AttachmentArrayEditor = React.memo( setCurrentIndex(items.length); } }, - [items, lgOption, lgTemplates, onChange, onTemplateChange] + [items, lgOption, lgTemplates, onChange, onTemplateChange], ); const newButtonMenuItems = React.useMemo( @@ -163,12 +163,13 @@ export const AttachmentArrayEditor = React.memo( }, }, ], - [onAddTemplateClick] + [onAddTemplateClick], ); - const addButtonMenuProps = React.useMemo(() => ({ items: newButtonMenuItems }), [ - newButtonMenuItems, - ]); + const addButtonMenuProps = React.useMemo( + () => ({ items: newButtonMenuItems }), + [newButtonMenuItems], + ); React.useEffect(() => { const keydownHandler = (e: KeyboardEvent) => { @@ -240,7 +241,7 @@ export const AttachmentArrayEditor = React.memo( templates[index].body ); }, - [templates] + [templates], ); return ( @@ -271,5 +272,5 @@ export const AttachmentArrayEditor = React.memo( )} ); - } + }, ); diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentModalityEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentModalityEditor.tsx index 76d373c79c..4d2db3069f 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentModalityEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/AttachmentModalityEditor.tsx @@ -38,7 +38,7 @@ const AttachmentModalityEditor = React.memo( editorSettings, }: Props) => { const [items, setItems] = React.useState( - response?.value.map((item) => extractTemplateNameFromExpression(item) || '').filter(Boolean) || [] + response?.value.map((item) => extractTemplateNameFromExpression(item) || '').filter(Boolean) || [], ); const handleChange = React.useCallback( @@ -56,7 +56,7 @@ const AttachmentModalityEditor = React.memo( }, }); }, - [onUpdateResponseTemplate, lgTemplates] + [onUpdateResponseTemplate, lgTemplates], ); const handleTemplateChange = React.useCallback( @@ -80,7 +80,7 @@ const AttachmentModalityEditor = React.memo( onTemplateChange(templateId, body); }, - [onUpdateResponseTemplate, onTemplateChange, items] + [onUpdateResponseTemplate, onTemplateChange, items], ); const attachmentLayoutOptions = React.useMemo( @@ -105,7 +105,7 @@ const AttachmentModalityEditor = React.memo( selected: attachmentLayout === 'carousel', }, ], - [attachmentLayout] + [attachmentLayout], ); const attachmentLayoutChange = React.useCallback( @@ -114,7 +114,7 @@ const AttachmentModalityEditor = React.memo( onAttachmentLayoutChange?.(option.key as string); } }, - [onAttachmentLayoutChange] + [onAttachmentLayoutChange], ); return ( @@ -145,7 +145,7 @@ const AttachmentModalityEditor = React.memo( /> ); - } + }, ); export { AttachmentModalityEditor }; diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/ModalityEditorContainer.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/ModalityEditorContainer.tsx index 2e483ba461..597b657930 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/ModalityEditorContainer.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/ModalityEditorContainer.tsx @@ -33,9 +33,10 @@ const headerContentStyles = { root: { height: 32 } }; const styles = { dropdown: { root: { - ':hover .ms-Dropdown-title, :active .ms-Dropdown-title, :hover .ms-Dropdown-caretDown, :active .ms-Dropdown-caretDown': { - color: FluentTheme.palette.themeDarker, - }, + ':hover .ms-Dropdown-title, :active .ms-Dropdown-title, :hover .ms-Dropdown-caretDown, :active .ms-Dropdown-caretDown': + { + color: FluentTheme.palette.themeDarker, + }, ':focus-within .ms-Dropdown-title, :focus-within .ms-Dropdown-caretDown': { color: FluentTheme.palette.accent, }, @@ -115,7 +116,7 @@ export const ModalityEditorContainer: React.FC = ({ formatMessage('Removing content from action node'), formatMessage( 'You are about to remove {modalityTitle} content from this action node. Are you sure you want to proceed?', - { modalityTitle } + { modalityTitle }, ), { confirmText: formatMessage('Delete'), @@ -125,12 +126,12 @@ export const ModalityEditorContainer: React.FC = ({ ? { kind: 'additionalConfirm', label: formatMessage( - 'I want to keep the template content in the file, just want to dereference from this response (hint: keep the content if you currently, or plan to re-use in another location)' + 'I want to keep the template content in the file, just want to dereference from this response (hint: keep the content if you currently, or plan to re-use in another location)', ), defaultChecked: false, } : undefined, - } + }, ); if (confirm) { onRemoveModality(modalityType, !!confirm.additionalConfirm); @@ -139,7 +140,7 @@ export const ModalityEditorContainer: React.FC = ({ }, }, ], - [modalityType, modalityTitle, menuItems, disableRemoveModality, removeModalityOptionText, onRemoveModality] + [modalityType, modalityTitle, menuItems, disableRemoveModality, removeModalityOptionText, onRemoveModality], ); const renderTitle = React.useCallback( @@ -149,13 +150,13 @@ export const ModalityEditorContainer: React.FC = ({ {defaultRender?.(optionProps)} ), - [dropdownPrefix] + [dropdownPrefix], ); const renderOption = React.useCallback( ( itemProps?: IDropdownOption, - defaultRender?: (props?: IDropdownOption) => JSX.Element | null + defaultRender?: (props?: IDropdownOption) => JSX.Element | null, ): JSX.Element | null => itemProps?.itemType === DropdownMenuItemType.Header ? ( = ({ ) : ( defaultRender?.(itemProps) ?? null ), - [] + [], ); return ( diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx index b75e32888c..4d8f4a5028 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/SpeechModalityEditor.tsx @@ -43,7 +43,7 @@ const SpeechModalityEditor = React.memo( onTemplateChange, onUpdateResponseTemplate, }, - { lgOption, lgTemplates } + { lgOption, lgTemplates }, ); const inputHintOptions = React.useMemo( @@ -90,7 +90,7 @@ const SpeechModalityEditor = React.memo( selected: inputHint === 'ignoringNonSpeechInput', }, ], - [inputHint] + [inputHint], ); const inputHintChange = React.useCallback( @@ -99,7 +99,7 @@ const SpeechModalityEditor = React.memo( onInputHintChange?.(option.key as string); } }, - [onInputHintChange] + [onInputHintChange], ); return ( @@ -127,7 +127,7 @@ const SpeechModalityEditor = React.memo( /> ); - } + }, ); export { SpeechModalityEditor }; diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayEditor.tsx index 68ff55f77a..e0fa60af0f 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayEditor.tsx @@ -77,7 +77,7 @@ export const StringArrayEditor = React.memo( const containerRef = useRef(null); const [currentIndex, setCurrentIndex] = useState( - items.length === 1 && items[0].value === '' ? 0 : null + items.length === 1 && items[0].value === '' ? 0 : null, ); const [calloutTargetElement, setCalloutTargetElement] = useState(null); @@ -87,14 +87,14 @@ export const StringArrayEditor = React.memo( updatedItems[index].value = newValue ?? ''; onChange(updatedItems); }, - [items, onChange] + [items, onChange], ); const onItemFocus = useCallback( (index: number) => () => { setCurrentIndex(index); }, - [] + [], ); const onItemRemove = useCallback( @@ -106,7 +106,7 @@ export const StringArrayEditor = React.memo( setCurrentIndex(newItems.length - 1); } }, - [currentIndex, items, onChange] + [currentIndex, items, onChange], ); const onClickAddVariation = useCallback(() => { @@ -204,7 +204,7 @@ export const StringArrayEditor = React.memo( setTimeout(() => { calloutTargetElement.setSelectionRange( updatedItems[currentIndex].value.length, - updatedItems[currentIndex].value.length + updatedItems[currentIndex].value.length, ); }, 0); } @@ -217,7 +217,7 @@ export const StringArrayEditor = React.memo( location: 'LGResponseEditor', }); }, - [calloutTargetElement, currentIndex, items, telemetryClient, onChange] + [calloutTargetElement, currentIndex, items, telemetryClient, onChange], ); const onInsertSSMLTag = React.useCallback( @@ -259,7 +259,7 @@ export const StringArrayEditor = React.memo( setTimeout(() => { calloutTargetElement.setSelectionRange( updatedItems[currentIndex].value.length, - updatedItems[currentIndex].value.length + updatedItems[currentIndex].value.length, ); }, 0); } @@ -272,7 +272,7 @@ export const StringArrayEditor = React.memo( location: 'LGResponseEditor', }); }, - [calloutTargetElement, currentIndex, items, onChange] + [calloutTargetElement, currentIndex, items, onChange], ); const toolbar = React.useMemo( @@ -293,7 +293,7 @@ export const StringArrayEditor = React.memo( onSelectToolbarMenuItem={onSelectToolbarMenuItem} /> ), - [isSpeech, lgTemplates, memoryVariables, onInsertSSMLTag, onSelectToolbarMenuItem] + [isSpeech, lgTemplates, memoryVariables, onInsertSSMLTag, onSelectToolbarMenuItem], ); return ( @@ -310,7 +310,7 @@ export const StringArrayEditor = React.memo( onRemove={onItemRemove(idx)} onShowCallout={onShowCallout} /> - ) : null + ) : null, )} {currentIndex === null && ( @@ -330,5 +330,5 @@ export const StringArrayEditor = React.memo( )} ); - } + }, ); diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayItem.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayItem.tsx index f698bf9b7a..ce15ded221 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayItem.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/StringArrayItem.tsx @@ -127,7 +127,7 @@ const TextViewItem = React.memo( e.preventDefault(); onRemove(); }, - [onRemove] + [onRemove], ); const focus = React.useCallback( @@ -135,7 +135,7 @@ const TextViewItem = React.memo( e.stopPropagation(); onFocus(); }, - [onFocus] + [onFocus], ); const click = React.useCallback( @@ -143,12 +143,12 @@ const TextViewItem = React.memo( e.stopPropagation(); onFocus(); }, - [onFocus] + [onFocus], ); const RemoveIcon = React.useMemo( () => withTooltip({ content: removeTooltipTextContent ?? formatMessage('Remove variation') }, IconButton), - [removeTooltipTextContent] + [removeTooltipTextContent], ); return ( @@ -174,7 +174,7 @@ const TextViewItem = React.memo( /> ); - } + }, ); type TextFieldItemProps = Omit; @@ -196,7 +196,7 @@ const TextFieldItem = React.memo(({ value, onShowCallout, onChange }: TextFieldI e.stopPropagation(); onShowCallout?.(e.target as HTMLTextAreaElement); }, - [onShowCallout] + [onShowCallout], ); const click = React.useCallback( @@ -204,7 +204,7 @@ const TextFieldItem = React.memo(({ value, onShowCallout, onChange }: TextFieldI e.stopPropagation(); onShowCallout?.(e.target as HTMLTextAreaElement); }, - [onShowCallout] + [onShowCallout], ); return ( @@ -252,12 +252,13 @@ export const StringArrayItem = (props: Props) => { editor?.focus(); } }, - [editorMode] + [editorMode], ); - const popExpandOptions = React.useMemo(() => ({ onEditorPopToggle, popExpandTitle: formatMessage('Attachment') }), [ - onEditorPopToggle, - ]); + const popExpandOptions = React.useMemo( + () => ({ onEditorPopToggle, popExpandTitle: formatMessage('Attachment') }), + [onEditorPopToggle], + ); return ( diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/SuggestedActionsModalityEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/SuggestedActionsModalityEditor.tsx index dd1641ab09..ae07e4f370 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/SuggestedActionsModalityEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/SuggestedActionsModalityEditor.tsx @@ -31,7 +31,7 @@ const SuggestedActionsModalityEditor = React.memo( setItems(newValues); onUpdateResponseTemplate({ SuggestedActions: { kind: 'SuggestedActions', value: newValues } }); }, - [onUpdateResponseTemplate] + [onUpdateResponseTemplate], ); return ( @@ -56,7 +56,7 @@ const SuggestedActionsModalityEditor = React.memo( /> ); - } + }, ); export { SuggestedActionsModalityEditor }; diff --git a/Composer/packages/lib/code-editor/src/lg/modalityEditors/TextModalityEditor.tsx b/Composer/packages/lib/code-editor/src/lg/modalityEditors/TextModalityEditor.tsx index 1c3217f700..e12e0e6474 100644 --- a/Composer/packages/lib/code-editor/src/lg/modalityEditors/TextModalityEditor.tsx +++ b/Composer/packages/lib/code-editor/src/lg/modalityEditors/TextModalityEditor.tsx @@ -34,13 +34,13 @@ const TextModalityEditor = React.memo( onTemplateChange, onUpdateResponseTemplate, }, - { lgOption, lgTemplates, focusOnMount } + { lgOption, lgTemplates, focusOnMount }, ); return ( ); - } + }, ); export { TextModalityEditor }; diff --git a/Composer/packages/lib/code-editor/src/lg/types.ts b/Composer/packages/lib/code-editor/src/lg/types.ts index bf8003fb12..c91494dbe1 100644 --- a/Composer/packages/lib/code-editor/src/lg/types.ts +++ b/Composer/packages/lib/code-editor/src/lg/types.ts @@ -46,7 +46,7 @@ export const acceptedAttachmentLayout = ['carousel', 'list'] as const; export const modalityTypes = ['Text', 'Speak', 'Attachments', 'SuggestedActions'] as const; export const structuredResponseKeys = [...modalityTypes, 'AttachmentLayout', 'InputHint'] as const; -export type ModalityType = typeof modalityTypes[number]; +export type ModalityType = (typeof modalityTypes)[number]; export type TextStructuredResponseItem = { kind: 'Text'; value: string[]; valueType: 'template' | 'direct' }; export type SpeechStructuredResponseItem = { kind: 'Speak'; value: string[]; valueType: 'template' | 'direct' }; @@ -57,9 +57,9 @@ export type AttachmentsStructuredResponseItem = { }; export type AttachmentLayoutStructuredResponseItem = { kind: 'AttachmentLayout'; - value: typeof acceptedAttachmentLayout[number]; + value: (typeof acceptedAttachmentLayout)[number]; }; -export type InputHintStructuredResponseItem = { kind: 'InputHint'; value: typeof acceptedInputHintValues[number] }; +export type InputHintStructuredResponseItem = { kind: 'InputHint'; value: (typeof acceptedInputHintValues)[number] }; export type SuggestedActionsStructuredResponseItem = { kind: 'SuggestedActions'; value: string[] }; export type StructuredResponseItem = diff --git a/Composer/packages/lib/code-editor/src/lu/DefineEntityButton.tsx b/Composer/packages/lib/code-editor/src/lu/DefineEntityButton.tsx index 57d57b6cfa..09e44036ba 100644 --- a/Composer/packages/lib/code-editor/src/lu/DefineEntityButton.tsx +++ b/Composer/packages/lib/code-editor/src/lu/DefineEntityButton.tsx @@ -39,9 +39,10 @@ const fontSizeStyle = { const buttonStyles = { root: { height: 32, - '&:hover .ms-Button-flexContainer i, &:active .ms-Button-flexContainer i, &.is-expanded .ms-Button-flexContainer i': { - color: FluentTheme.palette.black, - }, + '&:hover .ms-Button-flexContainer i, &:active .ms-Button-flexContainer i, &.is-expanded .ms-Button-flexContainer i': + { + color: FluentTheme.palette.black, + }, }, menuIcon: { fontSize: 8, color: FluentTheme.palette.black }, label: { ...fontSizeStyle }, @@ -54,7 +55,7 @@ const getCommandBarButton = (tooltipContent: string) => type Props = { onDefineEntity: ( entityType: ToolbarLuEntityType, - data: Partial<{ entityName: string; entityDefinition: string }> + data: Partial<{ entityName: string; entityDefinition: string }>, ) => void; disabled?: boolean; tooltip?: string; @@ -88,7 +89,7 @@ export const DefineEntityButton = React.memo((props: Props) => { throw `${entityType} is not supported!`; } }, - [onDefineEntity] + [onDefineEntity], ); const filteredPrebuiltEntities = React.useMemo(() => { @@ -115,7 +116,7 @@ export const DefineEntityButton = React.memo((props: Props) => { onRenderMenuList, onMenuDismissed: onReset, }), - [filteredPrebuiltEntities, onReset, onRenderMenuList] + [filteredPrebuiltEntities, onReset, onRenderMenuList], ); const renderMenuItemHeader = React.useCallback( @@ -133,7 +134,7 @@ export const DefineEntityButton = React.memo((props: Props) => { })} /> ), - [] + [], ); const menuItems = React.useMemo(() => { @@ -161,7 +162,7 @@ export const DefineEntityButton = React.memo((props: Props) => { items: menuItems, calloutProps: { preventDismissOnEvent: ( - e: Event | React.FocusEvent | React.KeyboardEvent | React.MouseEvent + e: Event | React.FocusEvent | React.KeyboardEvent | React.MouseEvent, ) => { /** * Due to a bug in Fluent, tooltip in a button menu header dismisses when user clicks a link inside it @@ -181,9 +182,10 @@ export const DefineEntityButton = React.memo((props: Props) => { }; }, [menuItems]); - const CommandBarButton = React.useMemo(() => getCommandBarButton(tooltip || formatMessage('Define new entity')), [ - tooltip, - ]); + const CommandBarButton = React.useMemo( + () => getCommandBarButton(tooltip || formatMessage('Define new entity')), + [tooltip], + ); const dismissListEntityCreationDialog = React.useCallback(() => { setShowListEntityCreationDialog(false); @@ -196,11 +198,11 @@ export const DefineEntityButton = React.memo((props: Props) => { entityName: listEntity.name, entityDefinition: getEntityLuDefinition( listEntity, - entities.map((e) => e.Name) + entities.map((e) => e.Name), ), }); }, - [onDefineEntity, dismissListEntityCreationDialog, entities] + [onDefineEntity, dismissListEntityCreationDialog, entities], ); return ( diff --git a/Composer/packages/lib/code-editor/src/lu/InsertEntityButton.tsx b/Composer/packages/lib/code-editor/src/lu/InsertEntityButton.tsx index 351d1424a4..9145b259d4 100644 --- a/Composer/packages/lib/code-editor/src/lu/InsertEntityButton.tsx +++ b/Composer/packages/lib/code-editor/src/lu/InsertEntityButton.tsx @@ -20,9 +20,10 @@ const fontSizeStyle = { const buttonStyles = { root: { height: 32, - '&:hover .ms-Button-flexContainer i, &:active .ms-Button-flexContainer i, &.is-expanded .ms-Button-flexContainer i': { - color: FluentTheme.palette.black, - }, + '&:hover .ms-Button-flexContainer i, &:active .ms-Button-flexContainer i, &.is-expanded .ms-Button-flexContainer i': + { + color: FluentTheme.palette.black, + }, }, menuIcon: { fontSize: 8, color: FluentTheme.palette.black }, label: { ...fontSizeStyle }, @@ -60,24 +61,22 @@ export const InsertEntityButton = React.memo((props: Props) => { onInsertEntity(entity.Name, entity.Type); } }, - [onInsertEntity] + [onInsertEntity], ); const { menuProps, noEntities } = useLabelingMenuProps(labelingMenuVisible ? 'disable' : 'none', luFile, itemClick); - const isDisabled = React.useMemo(() => disabled || noEntities || insertEntityDisabled || labelingMenuVisible, [ - disabled, - noEntities, - insertEntityDisabled, - tagEntityDisabled, - labelingMenuVisible, - ]); + const isDisabled = React.useMemo( + () => disabled || noEntities || insertEntityDisabled || labelingMenuVisible, + [disabled, noEntities, insertEntityDisabled, tagEntityDisabled, labelingMenuVisible], + ); const { iconName, text } = React.useMemo(() => getLuToolbarItemTextAndIcon('useEntity'), []); - const CommandBarButton = React.useMemo(() => getCommandBarButton(tooltip || formatMessage('Insert defined entity')), [ - tooltip, - ]); + const CommandBarButton = React.useMemo( + () => getCommandBarButton(tooltip || formatMessage('Insert defined entity')), + [tooltip], + ); return ( + data: Partial<{ entityName: string; entityDefinition: string }>, ) => void; onInsertEntity: (entityName: string, entityType: string) => void; options?: Partial<{ @@ -53,7 +53,7 @@ export const LuEditorToolbar = React.memo((props: Props) => { editor.onDidChangeCursorSelection((e) => { setInsertEntityDisabled(!canInsertEntityBySelection(editor, e.selection as MonacoRange)); setTagEntityDisabled(!canTagEntityBySelection(editor, e.selection as MonacoRange)); - }) + }), ); } diff --git a/Composer/packages/lib/code-editor/src/lu/LuLabelingMenu.tsx b/Composer/packages/lib/code-editor/src/lu/LuLabelingMenu.tsx index 9f2293896b..f8b3d5dab8 100644 --- a/Composer/packages/lib/code-editor/src/lu/LuLabelingMenu.tsx +++ b/Composer/packages/lib/code-editor/src/lu/LuLabelingMenu.tsx @@ -36,9 +36,10 @@ export const LuLabelingMenu = ({ onMenuToggled?.(!!menuTargetElm); }, [menuTargetElm]); - const menuCalloutProps = React.useMemo(() => (shouldRenderBelowFabricLayer ? calloutProps : undefined), [ - shouldRenderBelowFabricLayer, - ]); + const menuCalloutProps = React.useMemo( + () => (shouldRenderBelowFabricLayer ? calloutProps : undefined), + [shouldRenderBelowFabricLayer], + ); const callback = React.useCallback( (data?: { selectedDomElement: HTMLElement; selectedText: string; lineContent: string; selection: any }) => { @@ -58,7 +59,7 @@ export const LuLabelingMenu = ({ setMenuTargetElm(null); } }, - [] + [], ); useMonacoSelectedTextDom(editor, callback); @@ -98,7 +99,7 @@ export const LuLabelingMenu = ({ } setMenuTargetElm(null); }, - [onInsertEntity] + [onInsertEntity], ); const { menuProps, noEntities } = useLabelingMenuProps('filter', luFile, itemClick, { diff --git a/Composer/packages/lib/code-editor/src/lu/__tests__/DefineEntityButton.test.tsx b/Composer/packages/lib/code-editor/src/lu/__tests__/DefineEntityButton.test.tsx index bbd931b446..4eba62a376 100644 --- a/Composer/packages/lib/code-editor/src/lu/__tests__/DefineEntityButton.test.tsx +++ b/Composer/packages/lib/code-editor/src/lu/__tests__/DefineEntityButton.test.tsx @@ -64,7 +64,7 @@ describe('', () => { }); expect( - screen.getByLabelText('Learn more about Define new entity', { selector: '.ms-Tooltip' }) + screen.getByLabelText('Learn more about Define new entity', { selector: '.ms-Tooltip' }), ).toBeInTheDocument(); }); }); diff --git a/Composer/packages/lib/code-editor/src/lu/__tests__/InsertEntityButton.test.tsx b/Composer/packages/lib/code-editor/src/lu/__tests__/InsertEntityButton.test.tsx index afc6a6307b..cba048961b 100644 --- a/Composer/packages/lib/code-editor/src/lu/__tests__/InsertEntityButton.test.tsx +++ b/Composer/packages/lib/code-editor/src/lu/__tests__/InsertEntityButton.test.tsx @@ -61,7 +61,7 @@ describe('', () => { luFile={luFile} tagEntityDisabled={false} onInsertEntity={callback} - /> + />, ); fireEvent.click(screen.getByTestId('menuButton')); fireEvent.click(screen.getByText('entity10')); @@ -76,7 +76,7 @@ describe('', () => { luFile={luFile} tagEntityDisabled={false} onInsertEntity={jest.fn()} - /> + />, ); fireEvent.click(screen.getByTestId('menuButton')); diff --git a/Composer/packages/lib/code-editor/src/lu/__tests__/useListEntityValidation.test.ts b/Composer/packages/lib/code-editor/src/lu/__tests__/useListEntityValidation.test.ts index e9c59a4a22..0ca6860926 100644 --- a/Composer/packages/lib/code-editor/src/lu/__tests__/useListEntityValidation.test.ts +++ b/Composer/packages/lib/code-editor/src/lu/__tests__/useListEntityValidation.test.ts @@ -50,7 +50,7 @@ describe('useListEntityValidation hook', () => { it('Should validate list entity name', () => { const { result } = renderHook(() => useListEntityValidation(invalidNameListEntity)); expect(result.current.nameError).toBe( - 'Spaces and special characters are not allowed. Use letters, numbers, -, or _.' + 'Spaces and special characters are not allowed. Use letters, numbers, -, or _.', ); expect(result.current.hasErrors).toBeTruthy(); }); diff --git a/Composer/packages/lib/code-editor/src/lu/dialogs/ListEntityCreationDialog.tsx b/Composer/packages/lib/code-editor/src/lu/dialogs/ListEntityCreationDialog.tsx index f8387feba8..847eabbb8e 100644 --- a/Composer/packages/lib/code-editor/src/lu/dialogs/ListEntityCreationDialog.tsx +++ b/Composer/packages/lib/code-editor/src/lu/dialogs/ListEntityCreationDialog.tsx @@ -81,7 +81,7 @@ export const ListEntityCreationDialog = (props: Props) => { new Selection({ onSelectionChanged: () => setSelectedItems(selection.getSelection() as ListEntityItem[]), selectionMode: SelectionMode.multiple, - }) + }), ).current; const scrollTimeoutRef = React.useRef>(); @@ -97,7 +97,7 @@ export const ListEntityCreationDialog = (props: Props) => { (_: React.FormEvent, newValue?: string) => { setListEntity((currentEntity) => ({ ...currentEntity, name: newValue ?? currentEntity.name })); }, - [] + [], ); const changeNormalizedValue = React.useCallback( @@ -108,14 +108,14 @@ export const ListEntityCreationDialog = (props: Props) => { if (foundIdx !== -1) { const foundItem = clonedEntity.items[foundIdx]; clonedEntity.items = clonedEntity.items.map((item, idx) => - idx === foundIdx ? { ...foundItem, normalizedValue: newValue ?? foundItem.normalizedValue } : item + idx === foundIdx ? { ...foundItem, normalizedValue: newValue ?? foundItem.normalizedValue } : item, ); } return clonedEntity; }); }, - [] + [], ); const changeSynonyms = React.useCallback( @@ -126,14 +126,14 @@ export const ListEntityCreationDialog = (props: Props) => { if (foundIdx !== -1) { const foundItem = clonedEntity.items[foundIdx]; clonedEntity.items = clonedEntity.items.map((item, idx) => - idx === foundIdx ? { ...foundItem, synonyms } : item + idx === foundIdx ? { ...foundItem, synonyms } : item, ); } return clonedEntity; }); }, - [] + [], ); const blur = React.useCallback( @@ -142,7 +142,7 @@ export const ListEntityCreationDialog = (props: Props) => { changeSynonyms(item)(tags); } }, - [changeSynonyms] + [changeSynonyms], ); const deleteSelectedListEntityItems = React.useCallback(() => { @@ -190,7 +190,7 @@ export const ListEntityCreationDialog = (props: Props) => { onClick: deleteSelectedListEntityItems, }, ], - [deleteSelectedListEntityItems, addListEntityItem, selectedItems] + [deleteSelectedListEntityItems, addListEntityItem, selectedItems], ); const columns = React.useMemo(() => { @@ -243,7 +243,7 @@ export const ListEntityCreationDialog = (props: Props) => { const renderRow: IRenderFunction = React.useCallback( (rowProps) => (rowProps ? : null), - [] + [], ); const createDisabled = !listEntity.name || !listEntity.items.length || hasErrors; @@ -268,7 +268,7 @@ export const ListEntityCreationDialog = (props: Props) => { {children} ), - } + }, )} @@ -304,7 +304,7 @@ export const ListEntityCreationDialog = (props: Props) => { =1 {One item is selected} other {# items are selected} }`, - { count: selection.count } + { count: selection.count }, )} /> ) : null} diff --git a/Composer/packages/lib/code-editor/src/lu/dialogs/useListEntityValidation.ts b/Composer/packages/lib/code-editor/src/lu/dialogs/useListEntityValidation.ts index 7a4a024d65..72716432bb 100644 --- a/Composer/packages/lib/code-editor/src/lu/dialogs/useListEntityValidation.ts +++ b/Composer/packages/lib/code-editor/src/lu/dialogs/useListEntityValidation.ts @@ -29,7 +29,7 @@ export const useListEntityValidation = (listEntity: ListEntity) => { missingName: formatMessage('Required'), nameFormat: formatMessage('Spaces and special characters are not allowed. Use letters, numbers, -, or _.'), }), - [] + [], ); // Keeps track of touched inputs @@ -71,9 +71,9 @@ export const useListEntityValidation = (listEntity: ListEntity) => { setNameError(''); }, 300, - { leading: true } + { leading: true }, ), - [] + [], ); // Validates entity name @@ -88,21 +88,24 @@ export const useListEntityValidation = (listEntity: ListEntity) => { debounce( (items: ListEntityItem[]) => { if (items.length) { - const itemErrors = items.reduce((acc, item, idx) => { - const hasMissingError = !item.normalizedValue; - const hasDuplicateError = hasDuplicatesBeforeIndex( - item.normalizedValue, - items.map((i) => i.normalizedValue), - idx - ); - if (hasMissingError) { - acc[item.id] = errorMessages.missingNormalizedValue; - } else if (hasDuplicateError) { - acc[item.id] = errorMessages.duplicateNormalizedValue; - } - - return acc; - }, {} as Record); + const itemErrors = items.reduce( + (acc, item, idx) => { + const hasMissingError = !item.normalizedValue; + const hasDuplicateError = hasDuplicatesBeforeIndex( + item.normalizedValue, + items.map((i) => i.normalizedValue), + idx, + ); + if (hasMissingError) { + acc[item.id] = errorMessages.missingNormalizedValue; + } else if (hasDuplicateError) { + acc[item.id] = errorMessages.duplicateNormalizedValue; + } + + return acc; + }, + {} as Record, + ); setItemErrors(itemErrors); } else { @@ -110,9 +113,9 @@ export const useListEntityValidation = (listEntity: ListEntity) => { } }, 300, - { leading: true } + { leading: true }, ), - [] + [], ); // Validates normalized value of each sub list @@ -120,11 +123,10 @@ export const useListEntityValidation = (listEntity: ListEntity) => { validateEntityItems(listEntity.items); }, [listEntity]); - const hasErrors = React.useMemo(() => !!Object.keys(itemErrors).length || !!nameError, [ - itemErrors, - nameError, - listEntity.items, - ]); + const hasErrors = React.useMemo( + () => !!Object.keys(itemErrors).length || !!nameError, + [itemErrors, nameError, listEntity.items], + ); return { hasErrors, itemErrors, nameError, itemsTouched: touchedRef.current }; }; diff --git a/Composer/packages/lib/code-editor/src/lu/hooks/useLabelingMenuItems.tsx b/Composer/packages/lib/code-editor/src/lu/hooks/useLabelingMenuItems.tsx index 94476f6d04..c98221d7a7 100644 --- a/Composer/packages/lib/code-editor/src/lu/hooks/useLabelingMenuItems.tsx +++ b/Composer/packages/lib/code-editor/src/lu/hooks/useLabelingMenuItems.tsx @@ -53,11 +53,11 @@ export const useLabelingMenuProps = ( nonMlEntityMode: 'disable' | 'filter' | 'none', luFile?: LuFile, onItemClick?: IContextualMenuItem['onClick'], - options: Partial<{ menuHeaderText: string }> = {} + options: Partial<{ menuHeaderText: string }> = {}, ): { menuProps: IContextualMenuProps; noEntities: boolean } => { const filterPredicate = React.useMemo( () => (e) => e.Type === 'ml' || (nonMlEntityMode !== 'filter' && (e.Type === 'prebuilt' || e.Type === 'list')), - [nonMlEntityMode] + [nonMlEntityMode], ); const { menuHeaderText } = options; const entities = useLuEntities(luFile, filterPredicate); @@ -68,12 +68,12 @@ export const useLabelingMenuProps = (
{menuHeaderText || formatMessage('Insert defined entity')}
), - [menuHeaderText] + [menuHeaderText], ); const { onRenderMenuList, query, onReset } = useSearchableMenuListCallback( formatMessage('Search entities'), - searchHeaderRenderer + searchHeaderRenderer, ); const noSearchResultsMenuItem = useNoSearchResultMenuItem(formatMessage('no entities found')); diff --git a/Composer/packages/lib/code-editor/src/lu/hooks/useLuEntities.ts b/Composer/packages/lib/code-editor/src/lu/hooks/useLuEntities.ts index 6bdc6eb358..ab2791fde3 100644 --- a/Composer/packages/lib/code-editor/src/lu/hooks/useLuEntities.ts +++ b/Composer/packages/lib/code-editor/src/lu/hooks/useLuEntities.ts @@ -14,7 +14,7 @@ export const useLuEntities = (luFile?: LuFile, filterPredicate?: (e: LuEntity) = if (luFile) { const luEntities = luFile.intents.reduce((acc, e) => { let items = (e.Entities ?? ([] as LuEntity[])).filter((e) => - toolbarSupportedLuEntityTypes.includes(e.Type as ToolbarLuEntityType) + toolbarSupportedLuEntityTypes.includes(e.Type as ToolbarLuEntityType), ); if (filterPredicate) { diff --git a/Composer/packages/lib/code-editor/src/lu/hooks/useMonacoSelectedTextDom.tsx b/Composer/packages/lib/code-editor/src/lu/hooks/useMonacoSelectedTextDom.tsx index 90765a8785..8f17703007 100644 --- a/Composer/packages/lib/code-editor/src/lu/hooks/useMonacoSelectedTextDom.tsx +++ b/Composer/packages/lib/code-editor/src/lu/hooks/useMonacoSelectedTextDom.tsx @@ -15,7 +15,7 @@ export const useMonacoSelectedTextDom = ( selectedText: string; lineContent: string; selection: any; - }) => void + }) => void, ) => { React.useEffect(() => { let observer: MutationObserver; diff --git a/Composer/packages/lib/code-editor/src/lu/types.ts b/Composer/packages/lib/code-editor/src/lu/types.ts index 95a23879df..986e0cd38d 100644 --- a/Composer/packages/lib/code-editor/src/lu/types.ts +++ b/Composer/packages/lib/code-editor/src/lu/types.ts @@ -2,7 +2,7 @@ // Licensed under the MIT License. export const toolbarSupportedLuEntityTypes = ['prebuilt', 'ml', 'list', 'composite', 'regex'] as const; -export type ToolbarLuEntityType = typeof toolbarSupportedLuEntityTypes[number]; +export type ToolbarLuEntityType = (typeof toolbarSupportedLuEntityTypes)[number]; export type LuToolbarButtonKind = 'useEntity' | 'defineEntity'; type CommonEntity = { diff --git a/Composer/packages/lib/code-editor/src/utils/__tests__/fieldToolbarUtils.test.ts b/Composer/packages/lib/code-editor/src/utils/__tests__/fieldToolbarUtils.test.ts index 413fe45c5f..4276f2dc38 100644 --- a/Composer/packages/lib/code-editor/src/utils/__tests__/fieldToolbarUtils.test.ts +++ b/Composer/packages/lib/code-editor/src/utils/__tests__/fieldToolbarUtils.test.ts @@ -54,7 +54,7 @@ describe('lgUtils', () => { children: expect.arrayContaining([expect.objectContaining({ name: 'value' })]), }), ]), - }) + }), ); }); }); @@ -98,7 +98,7 @@ it('getAllNodes: should return levels', () => { children: expect.arrayContaining([expect.objectContaining({ id: '8', name: 'foo' })]), }), expect.objectContaining({ id: '8', name: 'foo' }), - ]) + ]), ); }); diff --git a/Composer/packages/lib/code-editor/src/utils/__tests__/structuredResponse.test.ts b/Composer/packages/lib/code-editor/src/utils/__tests__/structuredResponse.test.ts index f05c585c2b..5be2a9831f 100644 --- a/Composer/packages/lib/code-editor/src/utils/__tests__/structuredResponse.test.ts +++ b/Composer/packages/lib/code-editor/src/utils/__tests__/structuredResponse.test.ts @@ -53,7 +53,7 @@ describe('structuresResponse', () => { kind: 'SuggestedActions', value: ['option1', 'option2', 'option3'], }, - }) + }), ); }); diff --git a/Composer/packages/lib/code-editor/src/utils/debug.ts b/Composer/packages/lib/code-editor/src/utils/debug.ts index a58564ac6f..46390f697f 100644 --- a/Composer/packages/lib/code-editor/src/utils/debug.ts +++ b/Composer/packages/lib/code-editor/src/utils/debug.ts @@ -6,12 +6,15 @@ import React from 'react'; export const useTraceProps = >(props: T, prefix?: string) => { const prev = React.useRef(props); React.useEffect(() => { - const changedProps = Object.entries(props).reduce((ps, [k, v]) => { - if (prev.current[k] !== v) { - ps[k] = [prev.current[k], v]; - } - return ps; - }, {} as Record); + const changedProps = Object.entries(props).reduce( + (ps, [k, v]) => { + if (prev.current[k] !== v) { + ps[k] = [prev.current[k], v]; + } + return ps; + }, + {} as Record, + ); if (Object.keys(changedProps).length > 0) { // eslint-disable-next-line no-console console.log(`${prefix || ''}: changed props:`, changedProps); diff --git a/Composer/packages/lib/code-editor/src/utils/fieldToolbarUtils.ts b/Composer/packages/lib/code-editor/src/utils/fieldToolbarUtils.ts index 0bfb0ec5d4..993a6e529f 100644 --- a/Composer/packages/lib/code-editor/src/utils/fieldToolbarUtils.ts +++ b/Composer/packages/lib/code-editor/src/utils/fieldToolbarUtils.ts @@ -27,7 +27,7 @@ export const computePropertyItemTree = (properties: readonly string[]): Property n, `${prefix}${prefix ? '.' : ''}${n.name}`, items.filter((i) => i.startsWith(`${prefix}${prefix ? '.' : ''}${n.name}`)), - level + 1 + level + 1, ); } currentNode.children = children; @@ -60,7 +60,7 @@ const getPath = (item: T */ export const getAllNodes = ( root: T, - options?: Partial<{ expanded: Record; skipRoot: boolean }> + options?: Partial<{ expanded: Record; skipRoot: boolean }>, ): { nodes: T[]; levels: Record; diff --git a/Composer/packages/lib/code-editor/src/utils/lspUtil.ts b/Composer/packages/lib/code-editor/src/utils/lspUtil.ts index 80fd0f1e4e..4005045c4a 100644 --- a/Composer/packages/lib/code-editor/src/utils/lspUtil.ts +++ b/Composer/packages/lib/code-editor/src/utils/lspUtil.ts @@ -38,7 +38,7 @@ export function createWebSocket(url: string): WebSocket { export function createLanguageClient( name: string, documentSelector: LanguageClientOptions['documentSelector'], - connection: MessageConnection + connection: MessageConnection, ): MonacoLanguageClient { return new MonacoLanguageClient({ name, @@ -64,7 +64,7 @@ export async function sendRequestWithRetry( languageClient: MonacoLanguageClient, method: string, data: any, - interval = 1000 + interval = 1000, ) { let sendTimer; diff --git a/Composer/packages/lib/code-editor/src/utils/luUtils.ts b/Composer/packages/lib/code-editor/src/utils/luUtils.ts index 78d1f7b71f..b6141e0701 100644 --- a/Composer/packages/lib/code-editor/src/utils/luUtils.ts +++ b/Composer/packages/lib/code-editor/src/utils/luUtils.ts @@ -126,7 +126,7 @@ const removeTrailingEmptyLines = (editor: any): number => { export const computeDefineLuEntityEdits = ( entity: { entityType: ToolbarLuEntityType; entityName: string; entityDefinition?: string }, editor: any, - entities: readonly LuEntity[] + entities: readonly LuEntity[], ): { edits: MonacoEdit[]; selection?: MonacoRange; scrollLine?: number } | undefined => { if (editor) { const { entityDefinition, entityName, entityType } = entity; @@ -139,7 +139,7 @@ export const computeDefineLuEntityEdits = ( getLuText( entityType, entityName, - entities.map((e) => e.Name) + entities.map((e) => e.Name), ); const edits: MonacoEdit[] = []; diff --git a/Composer/packages/lib/code-editor/src/utils/structuredResponse.ts b/Composer/packages/lib/code-editor/src/utils/structuredResponse.ts index b5040f272e..3b1d899944 100644 --- a/Composer/packages/lib/code-editor/src/utils/structuredResponse.ts +++ b/Composer/packages/lib/code-editor/src/utils/structuredResponse.ts @@ -41,7 +41,7 @@ const getStructuredResponseHelper = (value: unknown, kind: 'Text' | 'Speak' | 'A const getStructuredResponseByKind = ( template: LgTemplate, - kind: StructuredResponseItem['kind'] + kind: StructuredResponseItem['kind'], ): StructuredResponseItem | undefined => { const value = template.properties?.[kind]; if (value === undefined) { @@ -60,18 +60,18 @@ const getStructuredResponseByKind = ( return { kind: 'SuggestedActions', value: responseValue } as SuggestedActionsStructuredResponseItem; } case 'AttachmentLayout': - if (acceptedAttachmentLayout.includes(value as typeof acceptedAttachmentLayout[number])) { + if (acceptedAttachmentLayout.includes(value as (typeof acceptedAttachmentLayout)[number])) { return { kind: 'AttachmentLayout', - value: value as typeof acceptedAttachmentLayout[number], + value: value as (typeof acceptedAttachmentLayout)[number], } as AttachmentLayoutStructuredResponseItem; } break; case 'InputHint': - if (acceptedInputHintValues.includes(value as typeof acceptedInputHintValues[number])) { + if (acceptedInputHintValues.includes(value as (typeof acceptedInputHintValues)[number])) { return { kind: 'InputHint', - value: value as typeof acceptedInputHintValues[number], + value: value as (typeof acceptedInputHintValues)[number], } as InputHintStructuredResponseItem; } break; diff --git a/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx b/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx index a0e48afed1..2507b3288c 100644 --- a/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx +++ b/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx @@ -6,10 +6,13 @@ import { ITooltipHostProps, TooltipHost } from '@fluentui/react/lib/Tooltip'; export type WithTooltipProps = ITooltipHostProps; -export const withTooltip =

(tooltipProps: WithTooltipProps, Component: React.FC

| React.ComponentType

) => ( - props: P -) => ( - - - -); +export const withTooltip = +

>( + tooltipProps: WithTooltipProps, + Component: React.FC

| React.ComponentType

, + ) => + (props: P) => ( + + + + ); diff --git a/Composer/packages/lib/indexers/src/botIndexer.ts b/Composer/packages/lib/indexers/src/botIndexer.ts index e7b4730594..25d5e7bc09 100644 --- a/Composer/packages/lib/indexers/src/botIndexer.ts +++ b/Composer/packages/lib/indexers/src/botIndexer.ts @@ -86,7 +86,7 @@ const checkSetting = ( qnaFiles: QnAFile[]; setting: DialogSetting; }, - rootSetting?: DialogSetting + rootSetting?: DialogSetting, ): Diagnostic[] => { const { dialogs, setting, luFiles, qnaFiles } = assets; const diagnostics: Diagnostic[] = []; @@ -104,7 +104,7 @@ const checkSetting = ( if (useLUIS) { if (!get(setting, 'luis.authoringRegion') && !get(rootSetting, 'luis.authoringRegion')) { diagnostics.push( - new Diagnostic('Missing LUIS region', 'appsettings.json', DiagnosticSeverity.Error, '#luisRegion') + new Diagnostic('Missing LUIS region', 'appsettings.json', DiagnosticSeverity.Error, '#luisRegion'), ); } } @@ -113,7 +113,7 @@ const checkSetting = ( if (useQnA) { if (!get(setting, 'qna.subscriptionKey') && !get(rootSetting, 'qna.subscriptionKey')) { diagnostics.push( - new Diagnostic('Missing QnA Maker subscription key', 'appsettings.json', DiagnosticSeverity.Error, '#qnaKey') + new Diagnostic('Missing QnA Maker subscription key', 'appsettings.json', DiagnosticSeverity.Error, '#qnaKey'), ); } } @@ -185,8 +185,8 @@ const checkSkillSetting = (assets: { dialogs: DialogInfo[]; botProjectFile: BotP new Diagnostic( `'${skillName}' does not exist in this project and is currently referenced in '${dialog.displayName}'.`, dialog.id, - DiagnosticSeverity.Error - ) + DiagnosticSeverity.Error, + ), ); } }); @@ -208,7 +208,7 @@ const validate = ( isRemote?: boolean; isRootBot?: boolean; }, - rootSetting?: DialogSetting + rootSetting?: DialogSetting, ): Diagnostic[] => { if (assets.isRemote) return []; const settingDiagnostics = [ @@ -225,7 +225,7 @@ const filterLUISFilesToPublish = (luFiles: LuFile[], dialogFiles: DialogInfo[]): return luFiles.filter((file) => { if ( dialogFiles.some( - (dialog) => dialog.luFile === getBaseName(file.id) && dialog.luProvider === SDKKinds.OrchestratorRecognizer + (dialog) => dialog.luFile === getBaseName(file.id) && dialog.luProvider === SDKKinds.OrchestratorRecognizer, ) ) { return true; diff --git a/Composer/packages/lib/indexers/src/dialogIndexer.ts b/Composer/packages/lib/indexers/src/dialogIndexer.ts index 991fd27157..725f4c7d62 100644 --- a/Composer/packages/lib/indexers/src/dialogIndexer.ts +++ b/Composer/packages/lib/indexers/src/dialogIndexer.ts @@ -62,7 +62,7 @@ function extractLgTemplates(id, dialog): LgTemplateJsonPath[] { templates.push( ...extractLgTemplateRefs(target.value).map((x) => { return { name: x.name, path: target.path }; - }) + }), ); }); } diff --git a/Composer/packages/lib/indexers/src/extractSchemaProperties.ts b/Composer/packages/lib/indexers/src/extractSchemaProperties.ts index 4df749a584..9f1f917411 100644 --- a/Composer/packages/lib/indexers/src/extractSchemaProperties.ts +++ b/Composer/packages/lib/indexers/src/extractSchemaProperties.ts @@ -17,7 +17,7 @@ export const extractSchemaProperties = (dialog: DialogInfo, jsonSchemaFiles: Jso schema = schemaRef; } else { schema = jsonSchemaFiles.find( - (file) => file.id === getBaseName(schemaRef as string) || file.id === dialog.content.schema + (file) => file.id === getBaseName(schemaRef as string) || file.id === dialog.content.schema, )?.content; } diff --git a/Composer/packages/lib/indexers/src/groupTriggers.ts b/Composer/packages/lib/indexers/src/groupTriggers.ts index a24e3913a4..5ad2d8dec6 100644 --- a/Composer/packages/lib/indexers/src/groupTriggers.ts +++ b/Composer/packages/lib/indexers/src/groupTriggers.ts @@ -51,7 +51,7 @@ const getTriggerPropertyReferences = (trigger: ITrigger, isValidProperty: (name: */ export const groupTriggersByPropertyReference = ( dialog: DialogInfo, - options?: { allowMultiParent?: boolean; validProperties?: string[] } + options?: { allowMultiParent?: boolean; validProperties?: string[] }, ): Record => { const result = {} as Record; diff --git a/Composer/packages/lib/indexers/src/index.ts b/Composer/packages/lib/indexers/src/index.ts index f6b9c098c7..d97afcddaf 100644 --- a/Composer/packages/lib/indexers/src/index.ts +++ b/Composer/packages/lib/indexers/src/index.ts @@ -33,7 +33,7 @@ class Indexer { [FileExtensions.Manifest]: [], [FileExtensions.BotProjectSpace]: [], [FileExtensions.CrossTrainConfig]: [], - } + }, ); } @@ -47,7 +47,7 @@ class Indexer { } return result; }, - { dialogs: [], recognizers: [] } + { dialogs: [], recognizers: [] }, ); }; @@ -61,7 +61,7 @@ class Indexer { } return result; }, - { crossTrainConfigs: [], skillManifestFiles: [] } + { crossTrainConfigs: [], skillManifestFiles: [] }, ); }; diff --git a/Composer/packages/lib/indexers/src/luIndexer.ts b/Composer/packages/lib/indexers/src/luIndexer.ts index 8d7af6ad7a..95cf41b8d8 100644 --- a/Composer/packages/lib/indexers/src/luIndexer.ts +++ b/Composer/packages/lib/indexers/src/luIndexer.ts @@ -14,7 +14,7 @@ function parse( content: string, id = '', luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { const appliedConfig = merge(defaultLUFeatures, luFeatures); const result = luParser.parse(content); diff --git a/Composer/packages/lib/indexers/src/skillIndexer.ts b/Composer/packages/lib/indexers/src/skillIndexer.ts index 67e71e81b9..48dc28c8bb 100644 --- a/Composer/packages/lib/indexers/src/skillIndexer.ts +++ b/Composer/packages/lib/indexers/src/skillIndexer.ts @@ -6,20 +6,18 @@ import pickBy from 'lodash/pickBy'; import toPairs from 'lodash/toPairs'; const index = (skillContent: any[], skillSettings: { [name: string]: SkillSetting } = {}): Skill[] => { - return toPairs(skillSettings).map( - ([id, settings]): Skill => { - const { content = {} } = skillContent.find(({ id: key }) => key === id) || {}; - const { description, endpoints = [] } = content; + return toPairs(skillSettings).map(([id, settings]): Skill => { + const { content = {} } = skillContent.find(({ id: key }) => key === id) || {}; + const { description, endpoints = [] } = content; - return pickBy({ - id, - description, - endpoints, - content, - ...settings, - }) as Skill; - } - ); + return pickBy({ + id, + description, + endpoints, + content, + ...settings, + }) as Skill; + }); }; export const skillIndexer = { diff --git a/Composer/packages/lib/indexers/src/utils/diagnosticUtil.ts b/Composer/packages/lib/indexers/src/utils/diagnosticUtil.ts index 384ff85202..f572a826a2 100644 --- a/Composer/packages/lib/indexers/src/utils/diagnosticUtil.ts +++ b/Composer/packages/lib/indexers/src/utils/diagnosticUtil.ts @@ -52,7 +52,7 @@ export function combineSimpleMessage(diagnostics: Diagnostic[]): string { export function offsetRange(range: Range, offset: number): Range { return new Range( new Position(range.start.line - offset, range.start.character), - new Position(range.end.line - offset, range.end.character) + new Position(range.end.line - offset, range.end.character), ); } diff --git a/Composer/packages/lib/indexers/src/utils/lgUtil.ts b/Composer/packages/lib/indexers/src/utils/lgUtil.ts index fdfbdd61bd..6aa71e7d8a 100644 --- a/Composer/packages/lib/indexers/src/utils/lgUtil.ts +++ b/Composer/packages/lib/indexers/src/utils/lgUtil.ts @@ -72,7 +72,7 @@ function getLgResource(lgFile: LgFile, importResolver?: ImportResolverDelegate) export function convertTemplatesToLgFile(id = '', content: string, parseResult: Templates): LgFile { parseResult.diagnostics = parseResult.diagnostics.filter( - (diag) => !diag.message.includes('LG file must have at least one template definition.') + (diag) => !diag.message.includes('LG file must have at least one template definition.'), ); const diagnostics = parseResult.diagnostics.map((d: LGDiagnostic) => { return convertLGDiagnostic(d, id); @@ -118,7 +118,7 @@ export function updateTemplate( lgFile: LgFile, templateName: string, template: { name?: string; parameters?: string[]; body?: string }, - importResolver?: ImportResolverDelegate + importResolver?: ImportResolverDelegate, ): LgFile { const { id } = lgFile; const { name, parameters, body } = template; @@ -142,7 +142,7 @@ export function updateTemplate( templateName, templateToUpdate.name, templateToUpdate.parameters, - templateToUpdate.body + templateToUpdate.body, ); } @@ -153,7 +153,7 @@ export function updateTemplate( export function addTemplate( lgFile: LgFile, { name, parameters = [], body }: LgTemplate, - importResolver?: ImportResolverDelegate + importResolver?: ImportResolverDelegate, ): LgFile { const { id } = lgFile; const resource = getLgResource(lgFile, importResolver); @@ -175,7 +175,7 @@ export function addTemplates(lgFile: LgFile, templates: LgTemplate[], importReso export function addTemplateAnyway( lgFile: LgFile, { name = 'TemplateName', parameters = [], body = '-TemplateBody' }: LgTemplate, - importResolver?: ImportResolverDelegate + importResolver?: ImportResolverDelegate, ): LgFile { const { id } = lgFile; const resource = getLgResource(lgFile, importResolver); @@ -190,7 +190,7 @@ export function copyTemplate( lgFile: LgFile, fromTemplateName: string, toTemplateName: string, - importResolver?: ImportResolverDelegate + importResolver?: ImportResolverDelegate, ): LgFile { const { id } = lgFile; const resource = getLgResource(lgFile, importResolver); @@ -209,7 +209,7 @@ export function copyTemplateAnyway( lgFile: LgFile, fromTemplateName: string, toTemplateName?: string, - importResolver?: ImportResolverDelegate + importResolver?: ImportResolverDelegate, ): LgFile { const { id } = lgFile; const resource = getLgResource(lgFile, importResolver); @@ -238,7 +238,7 @@ export function removeTemplate(lgFile: LgFile, templateName: string, importResol export function removeTemplates( lgFile: LgFile, templateNames: string[], - importResolver?: ImportResolverDelegate + importResolver?: ImportResolverDelegate, ): LgFile { const { id } = lgFile; let resource = getLgResource(lgFile, importResolver); diff --git a/Composer/packages/lib/indexers/src/utils/luUtil.ts b/Composer/packages/lib/indexers/src/utils/luUtil.ts index 0c0945aa0e..fa1961bf41 100644 --- a/Composer/packages/lib/indexers/src/utils/luUtil.ts +++ b/Composer/packages/lib/indexers/src/utils/luUtil.ts @@ -76,7 +76,7 @@ export function convertLuParseResultToLuFile( id: string, resource: LuParseResource, luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { // filter structured-object from LUParser result. const { Sections, Errors, Content } = resource; @@ -86,7 +86,7 @@ export function convertLuParseResultToLuFile( const { Name, Body, SectionType } = section; const range = new Range( new Position(get(section, 'Range.Start.Line', 0), get(section, 'Range.Start.Character', 0)), - new Position(get(section, 'Range.End.Line', 0), get(section, 'Range.End.Character', 0)) + new Position(get(section, 'Range.End.Line', 0), get(section, 'Range.End.Character', 0)), ); if (SectionType === LuSectionTypes.SIMPLEINTENTSECTION) { const Entities = section.Entities.map(({ Name, Type }) => ({ Name, Type })); @@ -96,7 +96,7 @@ export function convertLuParseResultToLuFile( const { Name, Body } = subSection; const range = new Range( new Position(get(section, 'Range.Start.Line', 0), get(subSection, 'Range.Start.Character', 0)), - new Position(get(section, 'Range.End.Line', 0), get(subSection, 'Range.End.Character', 0)) + new Position(get(section, 'Range.End.Line', 0), get(subSection, 'Range.End.Character', 0)), ); const Entities = subSection.Entities.map(({ Name, Type }) => ({ Name, Type })); return { Name, Body, Entities, range, fileId }; @@ -108,7 +108,7 @@ export function convertLuParseResultToLuFile( ...subSection, Name: `${section.Name}/${subSection.Name}`, }; - }) + }), ); } }); @@ -131,7 +131,7 @@ export function convertLuParseResultToLuFile( } const semanticDiagnostics = validateResource(resource, appliedluFeatures).map((e) => - convertLuDiagnostic(e, id) + convertLuDiagnostic(e, id), ) as Diagnostic[]; const imports = Sections.filter(({ SectionType }) => SectionType === SectionTypes.ImportSection).map( @@ -141,7 +141,7 @@ export function convertLuParseResultToLuFile( description: Description, path: Path, }; - } + }, ); // find all reference and parse them. @@ -256,7 +256,7 @@ export function checkIsSingleSection(intent: LuIntentSection, enableSections = t function updateInSections( sections: LuIntentSection[], intentName: string, - updatedIntent: LuIntentSection | null + updatedIntent: LuIntentSection | null, ): LuIntentSection[] { // remove if (!updatedIntent || isEmpty(updatedIntent)) { @@ -287,7 +287,7 @@ export function updateIntent( intentName: string, intent: { Name?: string; Body?: string } | null, luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { let targetSection; let targetSectionContent; @@ -300,7 +300,7 @@ export function updateIntent( if (intentName.includes('/')) { const [parrentName, childName] = intentName.split('/'); const targetChildSection = Sections.find(({ Name }) => Name === parrentName)?.SimpleIntentSections.find( - ({ Name }) => Name === childName + ({ Name }) => Name === childName, ); if (!targetChildSection) { return luFile; @@ -358,7 +358,7 @@ export function addIntent( luFile: LuFile, { Name, Body }: LuIntentSection, luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { const intentName = Name; if (Name.includes('/')) { @@ -373,7 +373,7 @@ export function addIntents( luFile: LuFile, intents: LuIntentSection[], luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { let result = luFile; for (const intent of intents) { @@ -391,7 +391,7 @@ export function removeIntent( luFile: LuFile, intentName: string, luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { return updateIntent(luFile, intentName, null, luFeatures, importResolver); } @@ -399,7 +399,7 @@ export function removeIntents( luFile: LuFile, intentNames: string[], luFeatures: ILUFeaturesConfig, - importResolver?: LUImportResolverDelegate + importResolver?: LUImportResolverDelegate, ): LuFile { let result = luFile; for (const intentName of intentNames) { @@ -416,7 +416,7 @@ export function parse(id: string, content: string, luFeatures: ILUFeaturesConfig export async function semanticValidate( id: string, content: string, - luFeatures: ILUFeaturesConfig + luFeatures: ILUFeaturesConfig, ): Promise { const appliedConfig = merge(defaultLUFeatures, luFeatures || {}); const diagnostics: Diagnostic[] = []; diff --git a/Composer/packages/lib/indexers/src/utils/qnaUtil.ts b/Composer/packages/lib/indexers/src/utils/qnaUtil.ts index e92e9e5acb..c3451d8c39 100644 --- a/Composer/packages/lib/indexers/src/utils/qnaUtil.ts +++ b/Composer/packages/lib/indexers/src/utils/qnaUtil.ts @@ -122,7 +122,7 @@ export function convertQnAParseResultToQnAFile(id = '', resource: LuParseResourc description: Description, path: Path, }; - } + }, ); const optionRegExp = new RegExp(/@source\.(\w+)\s*=\s*(.*)/); @@ -250,7 +250,7 @@ export function updateQnASection(qnaFile: QnAFile, sectionId: string, changes: Q let updatedQuestions = orginSection.Questions; let updatedAnswer = orginSection.Answer; - if (changes.Questions && changes.Questions.length) { + if (changes?.Questions?.length) { const questionsToRemove = changes.Questions.filter(({ id, content }) => id && !content); const questionsToAdd = changes.Questions.filter(({ id, content }) => !id && content) as { id: string; @@ -334,7 +334,7 @@ export function updateQnAAnswer(qnaFile: QnAFile, sectionId: string, answerConte export function addImport(qnaFile: QnAFile, path: string) { const importContent = `[import](${path})`; const firstImportSection = qnaFile.resource.Sections.find( - ({ SectionType }) => SectionType === SectionTypes.ImportSection + ({ SectionType }) => SectionType === SectionTypes.ImportSection, ); const position = firstImportSection ? firstImportSection.Id : 0; return insertSection(qnaFile, position, importContent); @@ -345,7 +345,7 @@ export function removeImport(qnaFile: QnAFile, id: string) { qnaFile.imports.find((item) => item.id === id) || qnaFile.imports.find((item) => item.id === `${id}.qna`); if (!targetImport) return qnaFile; const targetImportSection = qnaFile.resource.Sections.filter( - ({ SectionType }) => SectionType === SectionTypes.ImportSection + ({ SectionType }) => SectionType === SectionTypes.ImportSection, ).find(({ Path }) => Path === targetImport.path); if (!targetImportSection) return qnaFile; diff --git a/Composer/packages/lib/indexers/src/validations/expressionValidation/index.ts b/Composer/packages/lib/indexers/src/validations/expressionValidation/index.ts index f995310e06..ee0ab65b77 100644 --- a/Composer/packages/lib/indexers/src/validations/expressionValidation/index.ts +++ b/Composer/packages/lib/indexers/src/validations/expressionValidation/index.ts @@ -39,7 +39,7 @@ export const validateExpressions: ValidateFunc = ( settings: DialogSetting, lgFiles: LgFile[], luFiles: LuFile[], - cache?: ExpressionParseResult + cache?: ExpressionParseResult, ) => { const expressions = searchExpressions(path, value, type, schema); const customFunctions = searchLgCustomFunction(lgFiles).concat(settings.customFunctions); diff --git a/Composer/packages/lib/indexers/src/validations/expressionValidation/types.ts b/Composer/packages/lib/indexers/src/validations/expressionValidation/types.ts index 10733be371..fdbd2192c6 100644 --- a/Composer/packages/lib/indexers/src/validations/expressionValidation/types.ts +++ b/Composer/packages/lib/indexers/src/validations/expressionValidation/types.ts @@ -26,7 +26,7 @@ export type ValidateFunc = ( setting: DialogSetting, lgFiles: LgFile[], luFiles: LuFile[], - cache?: ExpressionParseResult + cache?: ExpressionParseResult, ) => { diagnostics: Diagnostic[] | null; cache: ExpressionParseResult }; // error msg export type ExpressionProperty = { diff --git a/Composer/packages/lib/indexers/src/validations/expressionValidation/validation.ts b/Composer/packages/lib/indexers/src/validations/expressionValidation/validation.ts index 75598681a3..c9449a975f 100644 --- a/Composer/packages/lib/indexers/src/validations/expressionValidation/validation.ts +++ b/Composer/packages/lib/indexers/src/validations/expressionValidation/validation.ts @@ -57,7 +57,7 @@ export const checkExpression = (exp: any, required: boolean, types: number[]): n case 'string': { returnType = checkStringExpression( exp, - types.some((type) => type & ReturnType.String) + types.some((type) => type & ReturnType.String), ); break; } diff --git a/Composer/packages/lib/indexers/src/validations/index.ts b/Composer/packages/lib/indexers/src/validations/index.ts index cc4b6a7919..8fcac7cc9b 100644 --- a/Composer/packages/lib/indexers/src/validations/index.ts +++ b/Composer/packages/lib/indexers/src/validations/index.ts @@ -18,7 +18,7 @@ export function validateDialog( settings: DialogSetting, lgFiles: LgFile[], luFiles: LuFile[], - cache?: ExpressionParseResult + cache?: ExpressionParseResult, ): { diagnostics: Diagnostic[] | null; cache?: ExpressionParseResult } { const { id, content } = dialog; try { @@ -47,7 +47,7 @@ export function validateDialog( settings, lgFiles, luFiles, - cache + cache, ); if (result.diagnostics) { diagnostics.push(...result.diagnostics); diff --git a/Composer/packages/lib/indexers/src/validations/schemaValidation/index.ts b/Composer/packages/lib/indexers/src/validations/schemaValidation/index.ts index d50bc1363c..03a7018035 100644 --- a/Composer/packages/lib/indexers/src/validations/schemaValidation/index.ts +++ b/Composer/packages/lib/indexers/src/validations/schemaValidation/index.ts @@ -16,12 +16,12 @@ export const validateSchema = (dialogId: string, dialogData: BaseSchema, schema: new Diagnostic( formatMessage( 'Components of $kind "{kind}" are not supported. Replace with a different component or create a custom component.', - { kind: $kind } + { kind: $kind }, ), `${dialogId}.dialog`, DiagnosticSeverity.Error, - path - ) + path, + ), ); } return true; diff --git a/Composer/packages/lib/indexers/src/validations/schemaValidation/walkAdaptiveDialog.ts b/Composer/packages/lib/indexers/src/validations/schemaValidation/walkAdaptiveDialog.ts index 1b7d89e19f..e7bb4d9628 100644 --- a/Composer/packages/lib/indexers/src/validations/schemaValidation/walkAdaptiveDialog.ts +++ b/Composer/packages/lib/indexers/src/validations/schemaValidation/walkAdaptiveDialog.ts @@ -11,13 +11,13 @@ type VisitAdaptiveComponentFn = ( $kind: SDKKinds | string, data: BaseSchema, currentPath: string, - parentPath: string + parentPath: string, ) => boolean; export const walkAdaptiveDialog = ( adaptiveDialog: BaseSchema, sdkSchema: SchemaDefinitions, - fn: VisitAdaptiveComponentFn + fn: VisitAdaptiveComponentFn, ): boolean => { return walkWithPath(adaptiveDialog, sdkSchema, '', '', fn); }; @@ -39,7 +39,7 @@ const walkWithPath = ( sdkSchema: SchemaDefinitions, currentPath: string, parentPath: string, - fn: VisitAdaptiveComponentFn + fn: VisitAdaptiveComponentFn, ): boolean => { const { $kind } = adaptiveData; // Visit current data before schema validation to make sure all $kind blocks are visited. @@ -74,7 +74,7 @@ const walkWithPath = ( sdkSchema, joinPath(currentPath, `${path}[${i}]`), currentPath, - fn + fn, ); if (!shouldContinue) return false; } diff --git a/Composer/packages/lib/shared/__tests__/dialogUtils/validateDialogName.test.ts b/Composer/packages/lib/shared/__tests__/dialogUtils/validateDialogName.test.ts index 0666c0dbc1..d9affb953f 100644 --- a/Composer/packages/lib/shared/__tests__/dialogUtils/validateDialogName.test.ts +++ b/Composer/packages/lib/shared/__tests__/dialogUtils/validateDialogName.test.ts @@ -4,7 +4,7 @@ import { validateDialogName } from '../../src/dialogUtils/validateDialogName'; const error = new Error( - 'Spaces and special characters are not allowed. Use letters, numbers, -, or _, and begin the name with a letter.' + 'Spaces and special characters are not allowed. Use letters, numbers, -, or _, and begin the name with a letter.', ); const emptyError = new Error('The file name can not be empty'); diff --git a/Composer/packages/lib/shared/src/axios.ts b/Composer/packages/lib/shared/src/axios.ts index e9748ccf0e..f50f501f89 100644 --- a/Composer/packages/lib/shared/src/axios.ts +++ b/Composer/packages/lib/shared/src/axios.ts @@ -8,7 +8,7 @@ export * from 'axios'; const csrfInterceptor = (config: AxiosRequestConfig) => { if (config?.baseURL?.startsWith('/api') || config?.url?.startsWith('/api')) { // eslint-disable-next-line no-underscore-dangle - config.headers['X-CSRF-Token'] = ((window as unknown) as { __csrf__: string }).__csrf__; + config.headers['X-CSRF-Token'] = (window as unknown as { __csrf__: string }).__csrf__; } return config; }; diff --git a/Composer/packages/lib/shared/src/copyUtils/ExternalApi.ts b/Composer/packages/lib/shared/src/copyUtils/ExternalApi.ts index ce78825b83..ddf1e01623 100644 --- a/Composer/packages/lib/shared/src/copyUtils/ExternalApi.ts +++ b/Composer/packages/lib/shared/src/copyUtils/ExternalApi.ts @@ -8,7 +8,7 @@ export type FieldProcessor = ( fromAction: BaseSchema, toActionId: string, toAction: BaseSchema, - fieldName: string + fieldName: string, ) => T; export type FieldProcessorAsync = ( @@ -16,7 +16,7 @@ export type FieldProcessorAsync = ( fromAction: BaseSchema, toActionId: string, toAction: BaseSchema, - fieldName: string + fieldName: string, ) => Promise; export interface ExternalApi { diff --git a/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveAction.ts b/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveAction.ts index f9fb196485..be7d20e15d 100644 --- a/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveAction.ts +++ b/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveAction.ts @@ -11,7 +11,7 @@ export async function copyAdaptiveAction(data: MicrosoftIDialog, externalApi: Ex return data; } - if (!data || !data.$kind) return {} as MicrosoftIDialog; + if (!data?.$kind) return {} as MicrosoftIDialog; const copier = CopyConstructorMap[data.$kind] || CopyConstructorMap.default; diff --git a/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveActionList.ts b/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveActionList.ts index 992768de2c..9a4969a448 100644 --- a/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveActionList.ts +++ b/Composer/packages/lib/shared/src/copyUtils/copyAdaptiveActionList.ts @@ -8,7 +8,7 @@ import { ExternalApi } from './ExternalApi'; export async function copyAdaptiveActionList( actions: MicrosoftIDialog[], - externalApi: ExternalApi + externalApi: ExternalApi, ): Promise { if (!Array.isArray(actions)) return []; diff --git a/Composer/packages/lib/shared/src/copyUtils/copySwitchCondition.ts b/Composer/packages/lib/shared/src/copyUtils/copySwitchCondition.ts index a5af21ac19..0609d8b695 100644 --- a/Composer/packages/lib/shared/src/copyUtils/copySwitchCondition.ts +++ b/Composer/packages/lib/shared/src/copyUtils/copySwitchCondition.ts @@ -9,7 +9,7 @@ import { shallowCopyAdaptiveAction } from './shallowCopyAdaptiveAction'; export const copySwitchCondition = async ( input: SwitchCondition, - externalApi: ExternalApi + externalApi: ExternalApi, ): Promise => { const copy = shallowCopyAdaptiveAction(input, externalApi); diff --git a/Composer/packages/lib/shared/src/deleteUtils/index.ts b/Composer/packages/lib/shared/src/deleteUtils/index.ts index dbc2828b74..6afceabb93 100644 --- a/Composer/packages/lib/shared/src/deleteUtils/index.ts +++ b/Composer/packages/lib/shared/src/deleteUtils/index.ts @@ -10,7 +10,7 @@ import { walkAdaptiveActionList } from '../walkerUtils/walkAdaptiveActionList'; // TODO: (ze) considering refactoring it with the `walkLgResources` util const collectLgTemplates = (action: any, outputTemplates: string[]) => { if (typeof action === 'string') return; - if (!action || !action.$kind) return; + if (!action?.$kind) return; switch (action.$kind) { case SDKKinds.SendActivity: @@ -31,7 +31,7 @@ const collectLgTemplates = (action: any, outputTemplates: string[]) => { // TODO: (ze) considering refactoring it by implementing a new `walkLuResources` util const collectLuIntents = (action: any, outputTemplates: string[]) => { if (typeof action === 'string') return; - if (!action || !action.$kind) return; + if (!action?.$kind) return; switch (action.$kind) { case SDKKinds.AttachmentInput: @@ -51,7 +51,7 @@ const collectLuIntents = (action: any, outputTemplates: string[]) => { export const deleteAdaptiveAction = async ( data: MicrosoftIDialog, deleteLgTemplates: (lgTemplates: string[]) => Promise, - deleteLuIntents: (luIntents: string[]) => Promise + deleteLuIntents: (luIntents: string[]) => Promise, ) => { const lgTemplates: string[] = []; const luIntents: string[] = []; @@ -66,7 +66,7 @@ export const deleteAdaptiveAction = async ( export const deleteAdaptiveActionList = async ( data: MicrosoftIDialog[], deleteLgTemplates: (lgTemplates: string[]) => Promise, - deleteLuIntents: (luIntents: string[]) => Promise + deleteLuIntents: (luIntents: string[]) => Promise, ) => { const lgTemplates: string[] = []; const luIntents: string[] = []; diff --git a/Composer/packages/lib/shared/src/dialogFactory.ts b/Composer/packages/lib/shared/src/dialogFactory.ts index 95e001f329..1db9a0bac9 100644 --- a/Composer/packages/lib/shared/src/dialogFactory.ts +++ b/Composer/packages/lib/shared/src/dialogFactory.ts @@ -336,7 +336,7 @@ export const getDesignerId = (data?: DesignerData) => { export const deepCopyAction = async ( data: MicrosoftIDialog, copyLgTemplate: FieldProcessorAsync, - copyLuIntent: FieldProcessorAsync + copyLuIntent: FieldProcessorAsync, ) => { return await copyAdaptiveAction(data, { getDesignerId, @@ -348,7 +348,7 @@ export const deepCopyAction = async ( export const deepCopyActions = async ( actions: MicrosoftIDialog[], copyLgTemplate: FieldProcessorAsync, - copyLuIntent: FieldProcessorAsync + copyLuIntent: FieldProcessorAsync, ) => { // NOTES: underlying lg api for writing new lg template to file is not concurrency-safe, // so we have to call them sequentially @@ -365,7 +365,7 @@ export const deepCopyActions = async ( export const deleteAction = ( data: MicrosoftIDialog, deleteLgTemplates: (templates: string[]) => Promise, - deleteLuIntents: (luIntents: string[]) => Promise + deleteLuIntents: (luIntents: string[]) => Promise, ) => { return deleteAdaptiveAction(data, deleteLgTemplates, deleteLuIntents); }; @@ -373,12 +373,12 @@ export const deleteAction = ( export const deleteActions = ( inputs: MicrosoftIDialog[], deleteLgTemplates: (templates: string[]) => Promise, - deleteLuIntents: (luIntents: string[]) => Promise + deleteLuIntents: (luIntents: string[]) => Promise, ) => { return deleteAdaptiveActionList(inputs, deleteLgTemplates, deleteLuIntents); }; -const assignDefaults = (data: {}, currentSeed = {}) => { +const assignDefaults = (data: Record, currentSeed = {}) => { for (const field in data) { if (field !== '$designer' && data[field].type === 'object') { // recurse on subtree's properties @@ -406,7 +406,7 @@ class DialogFactory { overrides: { $designer?: Partial; [key: string]: any; - } = {} + } = {}, ) { if (!this.schema) { throw new Error(formatMessage('DialogFactory missing schema.')); @@ -418,7 +418,7 @@ class DialogFactory { { $kind, $designer: merge({ id: generateDesignerId() }, $designer) }, this.seedDefaults($kind), defaultProperties, - propertyOverrides + propertyOverrides, ); } diff --git a/Composer/packages/lib/shared/src/dialogUtils/jsonTracker.ts b/Composer/packages/lib/shared/src/dialogUtils/jsonTracker.ts index 572fdde036..653d9e134a 100644 --- a/Composer/packages/lib/shared/src/dialogUtils/jsonTracker.ts +++ b/Composer/packages/lib/shared/src/dialogUtils/jsonTracker.ts @@ -126,7 +126,7 @@ export async function deleteNode(inputDialog, path, callbackOnRemovedData?: (rem export async function deleteNodes( inputDialog, nodeIds: string[], - callbackOnRemovedNodes?: (nodes: any[]) => Promise + callbackOnRemovedNodes?: (nodes: any[]) => Promise, ) { const dialog = cloneDeep(inputDialog); diff --git a/Composer/packages/lib/shared/src/dialogUtils/validateDialogName.ts b/Composer/packages/lib/shared/src/dialogUtils/validateDialogName.ts index 6450599600..57b989a8e1 100644 --- a/Composer/packages/lib/shared/src/dialogUtils/validateDialogName.ts +++ b/Composer/packages/lib/shared/src/dialogUtils/validateDialogName.ts @@ -13,8 +13,8 @@ export const validateDialogName = (name: string) => { if (!nameRegex.test(name)) { throw new Error( formatMessage( - 'Spaces and special characters are not allowed. Use letters, numbers, -, or _, and begin the name with a letter.' - ) + 'Spaces and special characters are not allowed. Use letters, numbers, -, or _, and begin the name with a letter.', + ), ); } }; diff --git a/Composer/packages/lib/shared/src/featureFlagUtils/index.ts b/Composer/packages/lib/shared/src/featureFlagUtils/index.ts index 320faa2814..286eb9fac2 100644 --- a/Composer/packages/lib/shared/src/featureFlagUtils/index.ts +++ b/Composer/packages/lib/shared/src/featureFlagUtils/index.ts @@ -8,7 +8,7 @@ export const getDefaultFeatureFlags = (): FeatureFlagMap => ({ FORM_DIALOG: { displayName: formatMessage('Form dialogs'), description: formatMessage( - 'Automatically generate dialogs that collect information from a user to manage conversations.' + 'Automatically generate dialogs that collect information from a user to manage conversations.', ), documentationLink: 'https://aka.ms/AAailpe', isHidden: false, @@ -17,7 +17,7 @@ export const getDefaultFeatureFlags = (): FeatureFlagMap => ({ ADVANCED_TEMPLATE_OPTIONS: { displayName: formatMessage('Advanced template options'), description: formatMessage( - 'Enables creating bots from local templates as well as creating bots from older versions of published templates' + 'Enables creating bots from local templates as well as creating bots from older versions of published templates', ), documentationLink: '', isHidden: true, diff --git a/Composer/packages/lib/shared/src/labelMap.ts b/Composer/packages/lib/shared/src/labelMap.ts index e7113662bd..36fc6808c9 100644 --- a/Composer/packages/lib/shared/src/labelMap.ts +++ b/Composer/packages/lib/shared/src/labelMap.ts @@ -19,7 +19,7 @@ type ConceptLabelKey = SDKKinds | 'Activity'; export const conceptLabels: () => { [key in ConceptLabelKey]?: LabelOverride } = () => ({ Activity: { description: formatMessage( - 'What your Bot says to the user. Visit the documentation a reference of capabilities.' + 'What your Bot says to the user. Visit the documentation a reference of capabilities.', ), title: formatMessage('Language Generation'), }, @@ -100,7 +100,7 @@ export const conceptLabels: () => { [key in ConceptLabelKey]?: LabelOverride } = }, [SDKKinds.LuisRecognizer]: { description: formatMessage( - "To understand what the user says, your dialog needs an 'IRecognizer' that includes example words and sentences that users may use." + "To understand what the user says, your dialog needs an 'IRecognizer' that includes example words and sentences that users may use.", ), title: formatMessage('Language Understanding'), }, @@ -109,7 +109,7 @@ export const conceptLabels: () => { [key in ConceptLabelKey]?: LabelOverride } = }, [SDKKinds.MultiLanguageRecognizer]: { description: formatMessage( - "To understand what the user says, your dialog needs an 'IRecognizer' that includes example words and sentences that users may use." + "To understand what the user says, your dialog needs an 'IRecognizer' that includes example words and sentences that users may use.", ), title: formatMessage('Language Understanding'), }, diff --git a/Composer/packages/lib/shared/src/luBuildResolver.ts b/Composer/packages/lib/shared/src/luBuildResolver.ts index b940cd5ecf..b18c5b96be 100644 --- a/Composer/packages/lib/shared/src/luBuildResolver.ts +++ b/Composer/packages/lib/shared/src/luBuildResolver.ts @@ -6,9 +6,7 @@ import multimatch from 'multimatch'; import { Path } from './path'; -// eslint-disable-next-line @typescript-eslint/no-var-requires const luObject = require('@microsoft/bf-lu/lib/parser/lu/lu.js'); -// eslint-disable-next-line @typescript-eslint/no-var-requires const luOptions = require('@microsoft/bf-lu/lib/parser/lu/luOptions.js'); function isWildcardPattern(str: string): boolean { @@ -101,7 +99,7 @@ export function luImportResolverGenerator(files: FileInfo[]) { const targetFullPath = Path.resolve(sourceFileDir, targetPath.replace(fragmentReg, '')); const targetFullPath2 = Path.resolve( sourceFileDir, - targetPath.replace(fragmentReg, '').replace(extReg, `.${locale}${ext}`) + targetPath.replace(fragmentReg, '').replace(extReg, `.${locale}${ext}`), ); targetFile = files.find(({ path }) => path === targetFullPath) || files.find(({ path }) => path === targetFullPath2); diff --git a/Composer/packages/lib/shared/src/resolverFactory.ts b/Composer/packages/lib/shared/src/resolverFactory.ts index 941dc7e859..41bbe694f6 100644 --- a/Composer/packages/lib/shared/src/resolverFactory.ts +++ b/Composer/packages/lib/shared/src/resolverFactory.ts @@ -20,7 +20,7 @@ function getFileName(path: string): string { export function luImportResolverGenerator( resources: ResolverResource[], ext = '', - defaultLocale = 'en-us' + defaultLocale = 'en-us', ): LUImportResolverDelegate { /** * @param source current file id @@ -62,7 +62,7 @@ export function luImportResolverGenerator( export function lgImportResolverGenerator( resources: ResolverResource[], ext = '', - defaultLocale = 'en-us' + defaultLocale = 'en-us', ): ImportResolverDelegate { /** * @param source current file id diff --git a/Composer/packages/lib/shared/src/schemaUtils/dereference.ts b/Composer/packages/lib/shared/src/schemaUtils/dereference.ts index 3ca87b9361..3b8b7e28f1 100644 --- a/Composer/packages/lib/shared/src/schemaUtils/dereference.ts +++ b/Composer/packages/lib/shared/src/schemaUtils/dereference.ts @@ -9,7 +9,7 @@ import { CIRCULAR_REFS, isCircular } from './circular'; export function dereference( schema: S, definitions: SchemaDefinitions, - cache: DefinitionCache + cache: DefinitionCache, ): S extends JSONSchema7[] ? JSONSchema7[] : JSONSchema7 { if (Array.isArray(schema)) { const arraySchema: JSONSchema7[] = []; diff --git a/Composer/packages/lib/shared/src/skillsUtils/index.ts b/Composer/packages/lib/shared/src/skillsUtils/index.ts index 260ba97a80..ed6254050a 100644 --- a/Composer/packages/lib/shared/src/skillsUtils/index.ts +++ b/Composer/packages/lib/shared/src/skillsUtils/index.ts @@ -84,7 +84,7 @@ export const migrateSkillsForExistingBots = (botProjectFile: BotProjectSpace, ro export const fetchEndpointNameForSkill = ( rootBotSettings: DialogSetting, skillNameIdentifier: string, - manifestData + manifestData, ) => { const endpointUrl = get(rootBotSettings, `skill[${skillNameIdentifier}].endpointUrl`); if (endpointUrl) { @@ -125,7 +125,7 @@ export const isUsingAdaptiveRuntime = (runtime?: DialogSetting['runtime']): bool * @default { isUsingAdaptiveRuntime: false, runtimeLanguage: 'dotnet', runtimeType: 'webapp'} */ export const parseRuntimeKey = ( - runtimeKey?: string + runtimeKey?: string, ): { isUsingAdaptiveRuntime: boolean; runtimeLanguage?: string; runtimeType?: string } => { const isAdaptive = isUsingAdaptiveRuntimeKey(runtimeKey); diff --git a/Composer/packages/lib/shared/src/walkerUtils/walkAdaptiveAction.ts b/Composer/packages/lib/shared/src/walkerUtils/walkAdaptiveAction.ts index 011b4e61e5..152c56ff7f 100644 --- a/Composer/packages/lib/shared/src/walkerUtils/walkAdaptiveAction.ts +++ b/Composer/packages/lib/shared/src/walkerUtils/walkAdaptiveAction.ts @@ -22,7 +22,7 @@ export const walkAdaptiveAction = (input, visit: AdaptiveActionVisitor): void => return; } - if (!input || !input.$kind) { + if (!input?.$kind) { return; } diff --git a/Composer/packages/lib/shared/src/walkerUtils/walkLgResources.ts b/Composer/packages/lib/shared/src/walkerUtils/walkLgResources.ts index 9ecb937ab8..a7d427f0b0 100644 --- a/Composer/packages/lib/shared/src/walkerUtils/walkLgResources.ts +++ b/Composer/packages/lib/shared/src/walkerUtils/walkLgResources.ts @@ -10,7 +10,7 @@ type LgFieldHandler = (actionId: string, lgFieldName: string, lgFieldValue: stri const findLgFields = (action: any, handleLgField: LgFieldHandler) => { if (typeof action === 'string') return; - if (!action || !action.$kind) return; + if (!action?.$kind) return; const onFound = (fieldName: string) => { action[fieldName] && handleLgField(get(action, '$designer.id', ''), fieldName, action[fieldName]); diff --git a/Composer/packages/lib/ui-shared/src/components/ConfirmDialog.tsx b/Composer/packages/lib/ui-shared/src/components/ConfirmDialog.tsx index 9c764935a2..41404949c2 100644 --- a/Composer/packages/lib/ui-shared/src/components/ConfirmDialog.tsx +++ b/Composer/packages/lib/ui-shared/src/components/ConfirmDialog.tsx @@ -101,7 +101,7 @@ const ConfirmDialog: React.FC = (props) => { } = setting; const [additionalCheckboxValue, setAdditionalCheckboxValue] = React.useState( - getDefaultAdditionalCheckboxValue(checkboxProps) + getDefaultAdditionalCheckboxValue(checkboxProps), ); const [disabled, setDisabled] = React.useState(setting.disabled); @@ -176,7 +176,7 @@ const ConfirmDialog: React.FC = (props) => { export const OpenConfirmModal = ( title, subTitle, - setting: Record & { checkboxProps?: DoubleConfirmCheckboxProps } = {} + setting: Record & { checkboxProps?: DoubleConfirmCheckboxProps } = {}, ): Promise => { return new Promise((resolve) => { const node = document.createElement('div'); @@ -203,7 +203,7 @@ export const OpenConfirmModal = ( export const OpenConfirmModalWithCheckbox = ( title, subTitle, - setting: Record & { checkboxProps?: CheckboxProps } = {} + setting: Record & { checkboxProps?: CheckboxProps } = {}, ): Promise<{ additionalConfirm?: boolean } | null> => { return new Promise((resolve) => { const node = document.createElement('div'); diff --git a/Composer/packages/lib/ui-shared/src/components/Field.tsx b/Composer/packages/lib/ui-shared/src/components/Field.tsx index 2af2f12466..fd11f9c6c4 100644 --- a/Composer/packages/lib/ui-shared/src/components/Field.tsx +++ b/Composer/packages/lib/ui-shared/src/components/Field.tsx @@ -31,8 +31,8 @@ type LabelWithTooltipProps = Omit & { const getClassNames = ( theme: ITheme, props: { - styles?: IStyleFunctionOrObject; - } + styles?: IStyleFunctionOrObject; + }, ) => mergeStyleSets( { @@ -49,10 +49,10 @@ const getClassNames = ( }, }, }, - props.styles + props.styles, ); -const useClassNames = | undefined,>(styles: Styles) => +const useClassNames = | undefined>(styles: Styles) => useMemo(() => getClassNames(getTheme(), { styles }), [styles]); const useOnRenderLabelWithHelpTooltip = (props: LabelWithTooltipProps) => { @@ -72,7 +72,7 @@ const useOnRenderLabelWithHelpTooltip = (props: LabelWithTooltipP )} ), - [classNames, props.tooltip, props.tooltipIconProps] + [classNames, props.tooltip, props.tooltipIconProps], ); }; diff --git a/Composer/packages/lib/ui-shared/src/components/HelpTooltip.tsx b/Composer/packages/lib/ui-shared/src/components/HelpTooltip.tsx index c911126920..b75fa673e0 100644 --- a/Composer/packages/lib/ui-shared/src/components/HelpTooltip.tsx +++ b/Composer/packages/lib/ui-shared/src/components/HelpTooltip.tsx @@ -35,7 +35,7 @@ const getClassNames = (theme: ITheme, props: Partial) => }), ], }, - props.styles + props.styles, ); export type HelpTooltipStyles = IStyleFunctionOrObject< @@ -51,7 +51,7 @@ export type HelpTooltipProps = Omit & { styles?: HelpTooltipStyles; }; -const useClassNames = (styles: Styles) => +const useClassNames = (styles: Styles) => useMemo(() => getClassNames(getTheme(), { styles }), [styles]); export const HelpTooltip: React.FC = ({ iconProps, ...props }) => { diff --git a/Composer/packages/lib/ui-shared/src/components/IconMenu.tsx b/Composer/packages/lib/ui-shared/src/components/IconMenu.tsx index be86f8480d..dc7fe1a4f8 100644 --- a/Composer/packages/lib/ui-shared/src/components/IconMenu.tsx +++ b/Composer/packages/lib/ui-shared/src/components/IconMenu.tsx @@ -60,7 +60,7 @@ export const IconMenu: React.FC = ({ useEffect(() => { if (autoFocus) { - buttonRef.current && buttonRef.current.focus(); + buttonRef.current?.focus?.(); } }, [autoFocus]); diff --git a/Composer/packages/lib/ui-shared/src/components/SectionTitle.tsx b/Composer/packages/lib/ui-shared/src/components/SectionTitle.tsx index 3e31847a8d..a2a8d45148 100644 --- a/Composer/packages/lib/ui-shared/src/components/SectionTitle.tsx +++ b/Composer/packages/lib/ui-shared/src/components/SectionTitle.tsx @@ -9,7 +9,7 @@ import { type PropsWithChildren } from 'react'; type SectionTitleProps = PropsWithChildren<{ level: 1 | 2 | 3 | 4 | 5 | 6; -}> +}>; export const SectionTitle: React.FC = ({ level, ...props }) => ( = ({ root: props.styles?.splitButtonMenuButton, icon: props.styles?.splitButtonMenuIcon, }), - [props.styles] + [props.styles], ); const dividerStyles = props.styles?.splitButtonDivider as IRawStyle; return ( diff --git a/Composer/packages/lib/ui-shared/src/components/__tests__/Field.test.tsx b/Composer/packages/lib/ui-shared/src/components/__tests__/Field.test.tsx index 2079b88280..4580d16d09 100644 --- a/Composer/packages/lib/ui-shared/src/components/__tests__/Field.test.tsx +++ b/Composer/packages/lib/ui-shared/src/components/__tests__/Field.test.tsx @@ -28,7 +28,7 @@ describe.each([ tooltipIconProps={{ 'data-testid': tooltipIconTestId, }} - /> + />, ); const icon = await findByTestId(tooltipIconTestId); expect(icon.getAttribute('aria-label')).toEqual(tooltipText); @@ -43,7 +43,7 @@ describe.each([ tooltipIconProps={{ 'data-testid': tooltipIconTestId, }} - /> + />, ); const icon = queryByTestId(tooltipIconTestId); expect(icon).toBeNull(); diff --git a/Composer/packages/lib/ui-shared/src/components/tags/ContentEditable.tsx b/Composer/packages/lib/ui-shared/src/components/tags/ContentEditable.tsx index 399bee5eba..33f8278631 100644 --- a/Composer/packages/lib/ui-shared/src/components/tags/ContentEditable.tsx +++ b/Composer/packages/lib/ui-shared/src/components/tags/ContentEditable.tsx @@ -102,7 +102,7 @@ export const ContentEditable = (props: ContentEditableProps) => { return; } }, - [removeOnBackspace, onRemove, focusInputRef] + [removeOnBackspace, onRemove, focusInputRef], ); return ( diff --git a/Composer/packages/lib/ui-shared/src/components/tags/TagInput.tsx b/Composer/packages/lib/ui-shared/src/components/tags/TagInput.tsx index ffb4c26990..14258334a8 100644 --- a/Composer/packages/lib/ui-shared/src/components/tags/TagInput.tsx +++ b/Composer/packages/lib/ui-shared/src/components/tags/TagInput.tsx @@ -164,7 +164,7 @@ export const TagInput = (props: TagInputProps) => { const clonedTags = [...tags]; const numOccurrencesOfValue = tags.reduce( (prev, currentValue, index) => prev + (currentValue === value && index !== i ? 1 : 0), - 0 + 0, ); if (numOccurrencesOfValue > 0) { clonedTags.splice(i, 1); diff --git a/Composer/packages/lib/ui-shared/src/components/tags/utils.ts b/Composer/packages/lib/ui-shared/src/components/tags/utils.ts index 99faeba388..1aa03cdf7e 100644 --- a/Composer/packages/lib/ui-shared/src/components/tags/utils.ts +++ b/Composer/packages/lib/ui-shared/src/components/tags/utils.ts @@ -32,9 +32,11 @@ export const safeHtmlString = (value: string) => { */ export const csvToArray = (str: string) => { // eslint-disable-next-line security/detect-unsafe-regex - const reValid = /^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/; + const reValid = + /^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/; // eslint-disable-next-line security/detect-unsafe-regex - const reValue = /(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g; + const reValue = + /(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g; // If it's invalid csv return empty. if (!reValid.test(str)) { diff --git a/Composer/packages/lib/ui-shared/src/styled/styledComponents.tsx b/Composer/packages/lib/ui-shared/src/styled/styledComponents.tsx index 0843fc3a02..f9f13303cb 100644 --- a/Composer/packages/lib/ui-shared/src/styled/styledComponents.tsx +++ b/Composer/packages/lib/ui-shared/src/styled/styledComponents.tsx @@ -10,10 +10,9 @@ import { VisualEditorColors as Colors } from '../constants/VisualEditorColors'; import { DivProps } from './styledComponents.types'; import { StandardFontCSS, TruncatedCSS, MultilineCSS } from './sharedCSS'; -const dynamicStyle = (props) => - css` - color: ${props.color || Colors.Black}; - `; +const dynamicStyle = (props) => css` + color: ${props.color || Colors.Black}; +`; export const LinkBtn = styled(Link)((props) => ({ color: props.color || Colors.AzureBlue, @@ -35,7 +34,7 @@ export const BorderedDiv = styled.div( color: props.color || Colors.Black, width: props.width, height: props.height, - }) + }), ); export const SingleLineDiv = styled.div` @@ -56,10 +55,9 @@ export const Text = styled.span( css` ${StandardFontCSS}; `, - ({ color }) => - css` - color: ${color}; - ` + ({ color }) => css` + color: ${color}; + `, ); export const MultilineTextWithEllipsis = styled.div` ${StandardFontCSS}; @@ -79,7 +77,7 @@ export const TruncatedText = styled.div<{ lines?: number }>( -webkit-line-clamp: ${lines || 3}; -webkit-box-orient: vertical; white-space: pre-line; - ` + `, ); export const FixedInfo = styled.span` diff --git a/Composer/packages/server-workers/src/server-worker.ts b/Composer/packages/server-workers/src/server-worker.ts index b7feb3acf3..dd05acee25 100644 --- a/Composer/packages/server-workers/src/server-worker.ts +++ b/Composer/packages/server-workers/src/server-worker.ts @@ -18,20 +18,20 @@ export class ServerWorker { public static async execute( workerName: 'dialogMerge', args: DialogMergeArgs, - updateProcess?: (status: number, message: string) => void + updateProcess?: (status: number, message: string) => void, ); public static async execute( workerName: 'templateInstallation', args: TemplateInstallationArgs, - updateProcess?: (status: number, message: string) => void + updateProcess?: (status: number, message: string) => void, ); - public static async execute = {}>( + public static async execute>( workerName: WorkerName, args: T, /** * Callback to update BackgroundProcessManager */ - updateProcess?: (status: number, message: string) => void + updateProcess?: (status: number, message: string) => void, ): Promise { return new Promise((resolve, reject) => { // used to reject in case of an unhandled error @@ -73,7 +73,7 @@ export class ServerWorker { return path.join( // eslint-disable-next-line @typescript-eslint/no-explicit-any (process as any).resourcesPath, - `app.asar.unpacked/node_modules/@bfc/server-workers/lib/workers/${workerName}.worker.js` + `app.asar.unpacked/node_modules/@bfc/server-workers/lib/workers/${workerName}.worker.js`, ); } else { return path.resolve(__dirname, `./workers/${workerName}.worker.js`); diff --git a/Composer/packages/server-workers/src/workers/dialogMerge.worker.ts b/Composer/packages/server-workers/src/workers/dialogMerge.worker.ts index 55cf710201..0b7781e545 100644 --- a/Composer/packages/server-workers/src/workers/dialogMerge.worker.ts +++ b/Composer/packages/server-workers/src/workers/dialogMerge.worker.ts @@ -19,7 +19,7 @@ if (!isMainThread) { false, log.extend('info'), log.extend('warn'), - log.extend('error') + log.extend('error'), ); realMerge diff --git a/Composer/packages/server-workers/src/workers/templateInstallation.worker.ts b/Composer/packages/server-workers/src/workers/templateInstallation.worker.ts index 2df3c3023e..042a4ae8ef 100644 --- a/Composer/packages/server-workers/src/workers/templateInstallation.worker.ts +++ b/Composer/packages/server-workers/src/workers/templateInstallation.worker.ts @@ -13,7 +13,7 @@ const installRemoteTemplate = async ( yeomanEnv: yeoman, templateGeneratorPath: string, npmPackageName: string, - templateVersion: string + templateVersion: string, ) => { yeomanEnv.cwd = templateGeneratorPath; try { @@ -33,13 +33,11 @@ const instantiateRemoteTemplate = async ( projectName: string, runtimeType: string, runtimeLanguage: string, - yeomanOptions: any + yeomanOptions: any, ): Promise => { log('About to instantiate a template!', dstDir, generatorName, projectName); yeomanEnv.cwd = dstDir; try { - // eslint-disable-next-line @typescript-eslint/ban-ts-ignore - // @ts-ignore @types/yeoman-environment is outdated await yeomanEnv.run([generatorName, projectName, '-p', runtimeLanguage, '-i', runtimeType], yeomanOptions); log('Template successfully instantiated', dstDir, generatorName, projectName); } catch (err) { @@ -57,7 +55,7 @@ const yeomanWork = async ( runtimeType: string, runtimeLanguage: string, yeomanOptions: any, - isLocalGenerator: boolean + isLocalGenerator: boolean, ) => { // create yeoman environment log('Getting Yeoman environment'); @@ -67,7 +65,7 @@ const yeomanWork = async ( const yeomanEnv = yeoman.createEnv( '', { yeomanRepository: templateGeneratorPath }, - new TerminalAdapter({ console: console }) + new TerminalAdapter({ console: console }), ); if (!isLocalGenerator) { log('Looking up local packages'); @@ -89,7 +87,7 @@ const yeomanWork = async ( projectName, runtimeType, runtimeLanguage, - yeomanOptions + yeomanOptions, ); }; @@ -115,7 +113,7 @@ if (!isMainThread) { workerData.runtimeType, workerData.runtimeLanguage, workerData.yeomanOptions, - workerData.isLocalGenerator + workerData.isLocalGenerator, ) .then(() => { process.exit(0); diff --git a/Composer/packages/server/src/controllers/__tests__/auth.test.ts b/Composer/packages/server/src/controllers/__tests__/auth.test.ts index c81b1dae80..ca09294f35 100644 --- a/Composer/packages/server/src/controllers/__tests__/auth.test.ts +++ b/Composer/packages/server/src/controllers/__tests__/auth.test.ts @@ -43,7 +43,7 @@ describe('auth controller', () => { expect(mockRes.status).toHaveBeenCalledWith(400); expect(chainedRes.send).toHaveBeenCalledWith( - 'Must pass a "targetResource" parameter to perform authentication in Electron environment.' + 'Must pass a "targetResource" parameter to perform authentication in Electron environment.', ); }); @@ -58,7 +58,7 @@ describe('auth controller', () => { expect(mockRes.status).toHaveBeenCalledWith(400); expect(chainedRes.send).toHaveBeenCalledWith( - 'Must pass a "clientId" parameter to perform authentication in a Web environment.' + 'Must pass a "clientId" parameter to perform authentication in a Web environment.', ); }); diff --git a/Composer/packages/server/src/controllers/__tests__/extensions.test.ts b/Composer/packages/server/src/controllers/__tests__/extensions.test.ts index 8d06f0f7bc..c299e3a95d 100644 --- a/Composer/packages/server/src/controllers/__tests__/extensions.test.ts +++ b/Composer/packages/server/src/controllers/__tests__/extensions.test.ts @@ -25,11 +25,11 @@ const req: Request = {} as Request; let res: Response = {} as Response; beforeEach(() => { - res = ({ + res = { json: jest.fn(), status: jest.fn().mockReturnThis(), sendFile: jest.fn().mockReturnThis(), - } as unknown) as Response; + } as unknown as Response; }); const mockExtension1 = { @@ -318,7 +318,7 @@ describe('getting a view bundle', () => { (ExtensionManager.find as jest.Mock).mockReturnValue(null); await ExtensionsController.getBundleForView( { params: { id: 'does-not-exist', bundleId: 'some-id' } } as Request, - res + res, ); expect(res.status).toHaveBeenCalledWith(404); diff --git a/Composer/packages/server/src/controllers/asset.ts b/Composer/packages/server/src/controllers/asset.ts index 3f6432530d..ca1eff5719 100644 --- a/Composer/packages/server/src/controllers/asset.ts +++ b/Composer/packages/server/src/controllers/asset.ts @@ -128,7 +128,7 @@ export async function getTemplateReadMe(req: any, res: any) { 'microsoft', 'botframework-components', 'main', - 'generators/generator-bot-core-qna/README.md' + 'generators/generator-bot-core-qna/README.md', ); res.status(200).json(qnaReadMe); } else { @@ -156,7 +156,7 @@ export async function getTemplateReadMe(req: any, res: any) { // iterate, starting on most recently published version, and query versionDict for a readMe for the version in question for (let i = items.length - 1; i > -1; i--) { - if (versionsDict[items[i][0]] && versionsDict[items[i][0]]?.readme) { + if (versionsDict?.[items[i][0]]?.readme) { // if a readMe exists, set it as our result and break out of the loop readMe = versionsDict[items[i][0]]?.readme; break; diff --git a/Composer/packages/server/src/controllers/extensions.ts b/Composer/packages/server/src/controllers/extensions.ts index 5184c4bb2c..e669a45db2 100644 --- a/Composer/packages/server/src/controllers/extensions.ts +++ b/Composer/packages/server/src/controllers/extensions.ts @@ -139,7 +139,7 @@ export async function getBundleForView(req: ExtensionViewBundleRequest, res: Res return; } } catch (err) { - if (err.message && err.message.includes('not found')) { + if (err.message?.includes('not found')) { res.status(404).json({ error: 'bundle not found' }); return; } @@ -161,7 +161,7 @@ export async function performExtensionFetch(req: ExtensionFetchRequest, res: Res if (!response.ok) { throw response; } - if (!contentType || !contentType.includes('application/json')) { + if (!contentType?.includes('application/json')) { const text = await response.text(); return res.send(text); } diff --git a/Composer/packages/server/src/controllers/orchestrator.ts b/Composer/packages/server/src/controllers/orchestrator.ts index 6f2ad47652..dbb9937bf2 100644 --- a/Composer/packages/server/src/controllers/orchestrator.ts +++ b/Composer/packages/server/src/controllers/orchestrator.ts @@ -15,7 +15,7 @@ class OrchestratorController { private getModelBasePath = async () => { let appDataPath = ''; - if (process?.versions?.hasOwnProperty('electron')) { + if (process?.versions && 'electron' in process.versions) { const { app } = await import('electron'); appDataPath = app.getPath('appData'); } else { diff --git a/Composer/packages/server/src/controllers/project.ts b/Composer/packages/server/src/controllers/project.ts index 265bb6ecd1..dcbfa60d38 100644 --- a/Composer/packages/server/src/controllers/project.ts +++ b/Composer/packages/server/src/controllers/project.ts @@ -563,7 +563,7 @@ async function copyTemplateToExistingProject(req: Request, res: Response) { templateDir, locationRef, user, - undefined // TODO: re-enable once we figure out path issue project.settings?.defaultLanguage || 'en-us' + undefined, // TODO: re-enable once we figure out path issue project.settings?.defaultLanguage || 'en-us' ); log('Copied template content successfully.'); // clean up the temporary template directory -- fire and forget diff --git a/Composer/packages/server/src/controllers/provision.ts b/Composer/packages/server/src/controllers/provision.ts index 3e9cbd777b..c367cd3894 100644 --- a/Composer/packages/server/src/controllers/provision.ts +++ b/Composer/packages/server/src/controllers/provision.ts @@ -49,7 +49,7 @@ export const ProvisionController = { { ...req.body }, currentProject, user, - authService.getAccessToken.bind(authService) + authService.getAccessToken.bind(authService), ); // set status and return value as json res.status(result.status).json(result); diff --git a/Composer/packages/server/src/controllers/publisher.ts b/Composer/packages/server/src/controllers/publisher.ts index cc04744212..a7531cc254 100644 --- a/Composer/packages/server/src/controllers/publisher.ts +++ b/Composer/packages/server/src/controllers/publisher.ts @@ -49,7 +49,7 @@ export const PublishController = { getProvisionStatus: typeof methods.getProvisionStatus === 'function', }, }; - }) + }), ); }, publish: async (req, res) => { @@ -115,7 +115,7 @@ export const PublishController = { currentProject, metadata, user, - authService.getAccessToken.bind(authService) + authService.getAccessToken.bind(authService), ); // copy status into payload for ease of access in client @@ -174,7 +174,7 @@ export const PublishController = { configuration, currentProject, user, - authService.getAccessToken.bind(authService) + authService.getAccessToken.bind(authService), ); // update the eTag if the publish was completed and an eTag is provided if (results.status === 200) { @@ -228,7 +228,7 @@ export const PublishController = { configuration, currentProject, user, - authService.getAccessToken.bind(authService) + authService.getAccessToken.bind(authService), ); // set status and return value as json @@ -363,7 +363,7 @@ export const PublishController = { configuration, currentProject, user, - authService.getAccessToken.bind(authService) + authService.getAccessToken.bind(authService), ); if (results.status === 500) { // something went wrong @@ -400,7 +400,7 @@ export const PublishController = { templateDir, locationRef, user, - undefined // TODO: re-enable once we figure out path issue currentProject.settings?.defaultLanguage || 'en-us' + undefined, // TODO: re-enable once we figure out path issue currentProject.settings?.defaultLanguage || 'en-us' ); log('Copied template content successfully.'); // clean up the temporary template & zip directories -- fire and forget diff --git a/Composer/packages/server/src/directline/middleware/__tests__/conversationHandler.test.ts b/Composer/packages/server/src/directline/middleware/__tests__/conversationHandler.test.ts index c52a509222..05efce9218 100644 --- a/Composer/packages/server/src/directline/middleware/__tests__/conversationHandler.test.ts +++ b/Composer/packages/server/src/directline/middleware/__tests__/conversationHandler.test.ts @@ -223,7 +223,7 @@ describe('updateConversation handler', () => { id: 'user-old', }, 'livechat', - 'en-us' + 'en-us', ); const state: any = { diff --git a/Composer/packages/server/src/directline/middleware/conversationHandler.ts b/Composer/packages/server/src/directline/middleware/conversationHandler.ts index 67c812681c..e3c0b16add 100644 --- a/Composer/packages/server/src/directline/middleware/conversationHandler.ts +++ b/Composer/packages/server/src/directline/middleware/conversationHandler.ts @@ -30,7 +30,7 @@ export const createReplyToActivityHandler = (req: express.Request, res: express. ) { const oAuthException: DirectLineError = { message: formatMessage( - 'OAuth activities are not available for testing in Composer yet. Please continue using Bot Framework Emulator for testing OAuth actions.' + 'OAuth activities are not available for testing in Composer yet. Please continue using Bot Framework Emulator for testing OAuth actions.', ), status: StatusCodes.NOT_IMPLEMENTED, }; diff --git a/Composer/packages/server/src/directline/mountConversationRoutes.ts b/Composer/packages/server/src/directline/mountConversationRoutes.ts index 1872518740..0482601d91 100644 --- a/Composer/packages/server/src/directline/mountConversationRoutes.ts +++ b/Composer/packages/server/src/directline/mountConversationRoutes.ts @@ -31,7 +31,7 @@ export const mountConversationsRoutes = (dlServerState: DLServerContext): expres logNetworkTraffic, verifyBotFramework, createCreateBotEndpointHandler(state), - createNewConversationHandler(state) + createNewConversationHandler(state), ); router.post( @@ -39,14 +39,14 @@ export const mountConversationsRoutes = (dlServerState: DLServerContext): expres logNetworkTraffic, verifyBotFramework, fetchConversation, - createReplyToActivityHandler + createReplyToActivityHandler, ); router.post( '/v3/conversations/:conversationId/attachments', logNetworkTraffic, verifyBotFramework, - createUploadAttachmentHandler(state) + createUploadAttachmentHandler(state), ); router.get('/conversations/ws/port', getWebSocketPort); @@ -56,7 +56,7 @@ export const mountConversationsRoutes = (dlServerState: DLServerContext): expres '/conversations/:conversationId/updateConversation', verifyBotFramework, fetchConversation, - createUpdateConversationHandler(state) + createUpdateConversationHandler(state), ); router.post('/conversations/:conversationId/saveTranscript', fetchConversation, saveTranscriptHandler(state)); diff --git a/Composer/packages/server/src/directline/mountDirectlineRoutes.ts b/Composer/packages/server/src/directline/mountDirectlineRoutes.ts index ff19654be7..33b8b05d83 100644 --- a/Composer/packages/server/src/directline/mountDirectlineRoutes.ts +++ b/Composer/packages/server/src/directline/mountDirectlineRoutes.ts @@ -29,7 +29,7 @@ export const mountDirectLineRoutes = (dLServerContext: DLServerContext): express logNetworkTraffic, getBotEndpoint, getConversation, - createPostActivityHandler(state) + createPostActivityHandler(state), ); router.post( @@ -37,7 +37,7 @@ export const mountDirectLineRoutes = (dLServerContext: DLServerContext): express logNetworkTraffic, getBotEndpoint, getConversation, - createUploadHandler(state) + createUploadHandler(state), ); return router; diff --git a/Composer/packages/server/src/directline/store/entities/__tests__/conversation.test.ts b/Composer/packages/server/src/directline/store/entities/__tests__/conversation.test.ts index 307be1617c..4cde9d9b5b 100644 --- a/Composer/packages/server/src/directline/store/entities/__tests__/conversation.test.ts +++ b/Composer/packages/server/src/directline/store/entities/__tests__/conversation.test.ts @@ -195,7 +195,7 @@ describe('Conversation class', () => { conversation.prepActivityToBeSentToUser('user-1', mockUserActivity); const transcripts = await conversation.getTranscript(); const matchedActivity = transcripts.find( - (activity) => activity.conversation.id === mockUserActivity.conversation.id + (activity) => activity.conversation.id === mockUserActivity.conversation.id, ); expect(matchedActivity).toBeDefined(); }); diff --git a/Composer/packages/server/src/directline/store/entities/__tests__/endpointSet.test.ts b/Composer/packages/server/src/directline/store/entities/__tests__/endpointSet.test.ts index 224d2078be..88977c0007 100644 --- a/Composer/packages/server/src/directline/store/entities/__tests__/endpointSet.test.ts +++ b/Composer/packages/server/src/directline/store/entities/__tests__/endpointSet.test.ts @@ -16,7 +16,7 @@ describe('EndpointSet', () => { 'bot-1', 'http://localhost:3978/api/messages', '123-MSD-324', - 'asdas3234' + 'asdas3234', ); const endpoint2: BotEndpoint = new BotEndpoint( @@ -24,7 +24,7 @@ describe('EndpointSet', () => { 'bot-2', 'http://localhost:3978/api/messages', '123-MSD-324', - 'asdas3234' + 'asdas3234', ); endpoints.set('id-1', endpoint); diff --git a/Composer/packages/server/src/directline/store/entities/attachments.ts b/Composer/packages/server/src/directline/store/entities/attachments.ts index 5750aec92f..29fbd9ed54 100644 --- a/Composer/packages/server/src/directline/store/entities/attachments.ts +++ b/Composer/packages/server/src/directline/store/entities/attachments.ts @@ -33,7 +33,7 @@ export class Attachments { const err: DirectLineError = { status: StatusCodes.BAD_REQUEST, message: formatMessage( - `You must specify originalBase64 byte[] for the attachment'. ${BotErrorCodes.MissingProperty}` + `You must specify originalBase64 byte[] for the attachment'. ${BotErrorCodes.MissingProperty}`, ), }; throw err; diff --git a/Composer/packages/server/src/directline/store/entities/botEndpoint.ts b/Composer/packages/server/src/directline/store/entities/botEndpoint.ts index 42e1019274..9520dabf11 100644 --- a/Composer/packages/server/src/directline/store/entities/botEndpoint.ts +++ b/Composer/packages/server/src/directline/store/entities/botEndpoint.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/camelcase */ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. @@ -20,7 +19,7 @@ export class BotEndpoint { public botId: string, public botUrl: string, public msaAppId?: string, - public msaPassword?: string + public msaPassword?: string, ) {} private async getAccessToken(forceRefresh = false): Promise { diff --git a/Composer/packages/server/src/directline/store/entities/conversation.ts b/Composer/packages/server/src/directline/store/entities/conversation.ts index d8e5ce9b9c..d0dc7977b8 100644 --- a/Composer/packages/server/src/directline/store/entities/conversation.ts +++ b/Composer/packages/server/src/directline/store/entities/conversation.ts @@ -41,7 +41,7 @@ export class Conversation { conversationId: string, user: User, webChatMode: WebChatMode, - activeLocale = 'en-us' + activeLocale = 'en-us', ) { this.botEndpoint = botEndpoint; this.conversationId = conversationId; @@ -72,7 +72,7 @@ export class Conversation { } private addActivityToQueue(activity: Activity) { - if (!(activity.channelData || {}).postback) { + if (!activity?.channelData?.postback) { this.activities = [...this.activities, { activity, watermark: this.nextWatermark++ }]; } } @@ -134,7 +134,7 @@ export class Conversation { */ public async postActivityToBot( state: DLServerState, - activity: Activity + activity: Activity, ): Promise<{ sendActivity: Activity; response: any | undefined; diff --git a/Composer/packages/server/src/directline/store/entities/conversationSet.ts b/Composer/packages/server/src/directline/store/entities/conversationSet.ts index 7399f891c0..e6287d4dc4 100644 --- a/Composer/packages/server/src/directline/store/entities/conversationSet.ts +++ b/Composer/packages/server/src/directline/store/entities/conversationSet.ts @@ -16,7 +16,7 @@ export class ConversationSet { user: User, mode: WebChatMode = 'livechat', locale = 'en-us', - conversationId = generateUniqueId() + conversationId = generateUniqueId(), ): Conversation { const conversation = new Conversation(botEndpoint, conversationId, user, mode, locale); if (!/(\|livechat|\|transcript)/.test(conversation.conversationId)) { diff --git a/Composer/packages/server/src/directline/utils/__tests__/mountAttachmentRoutes.test.ts b/Composer/packages/server/src/directline/utils/__tests__/mountAttachmentRoutes.test.ts index 23fa1940aa..ee4a36f041 100644 --- a/Composer/packages/server/src/directline/utils/__tests__/mountAttachmentRoutes.test.ts +++ b/Composer/packages/server/src/directline/utils/__tests__/mountAttachmentRoutes.test.ts @@ -21,13 +21,13 @@ describe('mountAttachmentRoutes', () => { 1, '/v3/attachments/:attachmentId', expect.any(Function), - expect.any(Function) + expect.any(Function), ); expect(router.get).toHaveBeenNthCalledWith( 2, '/v3/attachments/:attachmentId/views/:viewId', expect.any(Function), - expect.any(Function) + expect.any(Function), ); }); }); diff --git a/Composer/packages/server/src/directline/utils/__tests__/openIdMetadata.test.ts b/Composer/packages/server/src/directline/utils/__tests__/openIdMetadata.test.ts index 98e22b47f1..03c60d1054 100644 --- a/Composer/packages/server/src/directline/utils/__tests__/openIdMetadata.test.ts +++ b/Composer/packages/server/src/directline/utils/__tests__/openIdMetadata.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/camelcase */ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. diff --git a/Composer/packages/server/src/directline/utils/__tests__/webSocketServer.test.ts b/Composer/packages/server/src/directline/utils/__tests__/webSocketServer.test.ts index fe306f1cf5..33a0b01d15 100644 --- a/Composer/packages/server/src/directline/utils/__tests__/webSocketServer.test.ts +++ b/Composer/packages/server/src/directline/utils/__tests__/webSocketServer.test.ts @@ -190,7 +190,7 @@ describe('WebSocketServer', () => { id: 'a', }, ], - }) + }), ); expect(mocksSend).toHaveBeenNthCalledWith( 3, @@ -200,7 +200,7 @@ describe('WebSocketServer', () => { id: 'c', }, ], - }) + }), ); }); }); diff --git a/Composer/packages/server/src/directline/utils/webSocketServer.ts b/Composer/packages/server/src/directline/utils/webSocketServer.ts index edf12bf65d..f22455ea39 100644 --- a/Composer/packages/server/src/directline/utils/webSocketServer.ts +++ b/Composer/packages/server/src/directline/utils/webSocketServer.ts @@ -157,7 +157,7 @@ export class WebSocketServer { } public static sendTrafficToSubscribers( - data: Partial | ConversationNetworkTrafficItem | ConversationNetworkErrorItem + data: Partial | ConversationNetworkTrafficItem | ConversationNetworkErrorItem, ): void { this.sockets[socketTrafficChannelKey]?.send(JSON.stringify(data)); } diff --git a/Composer/packages/server/src/externalContentProvider/__tests__/powerVirtualAgentsProvider.test.ts b/Composer/packages/server/src/externalContentProvider/__tests__/powerVirtualAgentsProvider.test.ts index a470e2836c..fa74a79850 100644 --- a/Composer/packages/server/src/externalContentProvider/__tests__/powerVirtualAgentsProvider.test.ts +++ b/Composer/packages/server/src/externalContentProvider/__tests__/powerVirtualAgentsProvider.test.ts @@ -35,7 +35,12 @@ jest.mock('../../services/auth/auth', () => ({ })); const mockFetch = jest.fn(); -jest.mock('../../utility/fetch', () => async (...args) => await mockFetch(...args)); +jest.mock( + '../../utility/fetch', + () => + async (...args) => + await mockFetch(...args), +); describe('Power Virtual Agents provider', () => { const envBackup = { ...process.env }; @@ -106,8 +111,8 @@ describe('Power Virtual Agents provider', () => { mockFetch.mockResolvedValueOnce(mockResult); expect(async () => await provider.downloadBotContent()).rejects.toThrowError( new Error( - 'Error while trying to download the bot content: Did not receive zip back from PVA: No .zip found for bot' - ) + 'Error while trying to download the bot content: Did not receive zip back from PVA: No .zip found for bot', + ), ); }); @@ -127,7 +132,7 @@ describe('Power Virtual Agents provider', () => { }; mockFetch.mockResolvedValueOnce(mockResult); expect(async () => await provider.downloadBotContent()).rejects.toThrowError( - new Error('Error while trying to download the bot content: Response containing zip does not have a body') + new Error('Error while trying to download the bot content: Response containing zip does not have a body'), ); }); @@ -136,7 +141,7 @@ describe('Power Virtual Agents provider', () => { mockFetch.mockRejectedValueOnce(error); expect(async () => await provider.downloadBotContent()).rejects.toThrowError( - new Error(`Error while trying to download the bot content: ${error.message}`) + new Error(`Error while trying to download the bot content: ${error.message}`), ); }); diff --git a/Composer/packages/server/src/externalContentProvider/azureBotServiceProvider.ts b/Composer/packages/server/src/externalContentProvider/azureBotServiceProvider.ts index 624d88db76..ffc13558f9 100644 --- a/Composer/packages/server/src/externalContentProvider/azureBotServiceProvider.ts +++ b/Composer/packages/server/src/externalContentProvider/azureBotServiceProvider.ts @@ -90,7 +90,7 @@ export class AzureBotServiceProvider extends ExternalContentProvider { const mockLocRef = { path: '/path/to/bot', storageId: 'default' }; expect( - async () => await assetManager.copyRemoteProjectTemplateTo('tempDir', mockLocRef, undefined, undefined) + async () => await assetManager.copyRemoteProjectTemplateTo('tempDir', mockLocRef, undefined, undefined), ).rejects.toThrowError(new Error('already have this folder, please give another name')); }); }); @@ -213,7 +213,7 @@ describe('assetManager', () => { mockLocRef, '0', 'webapp', - 'dotnet' + 'dotnet', ); expect(newBotLocationRef).toStrictEqual({ path: '/path/to/npmbot', diff --git a/Composer/packages/server/src/models/asset/assetManager.ts b/Composer/packages/server/src/models/asset/assetManager.ts index 093ef89afd..7a28b915e0 100644 --- a/Composer/packages/server/src/models/asset/assetManager.ts +++ b/Composer/packages/server/src/models/asset/assetManager.ts @@ -56,7 +56,7 @@ export class AssetManager { templateDir: string, ref: LocationRef, user?: UserIdentity, - locale?: string + locale?: string, ): Promise { // user storage maybe diff from template storage const dstStorage = StorageService.getStorageClient(ref.storageId, user); @@ -88,7 +88,7 @@ export class AssetManager { templateId: string, ref: LocationRef, user?: UserIdentity, - locale?: string + locale?: string, ): Promise { // user storage maybe diff from template storage const dstStorage = StorageService.getStorageClient(ref.storageId, user); @@ -111,7 +111,7 @@ export class AssetManager { runtimeLanguage: FeedName, yeomanOptions?: any, user?: UserIdentity, - isLocalGenerator?: boolean + isLocalGenerator?: boolean, ): Promise { try { // user storage maybe diff from template storage @@ -142,13 +142,13 @@ export class AssetManager { }, (status, msg) => { BackgroundProcessManager.updateProcess(jobId, status, msg); - } + }, ); return ref; } catch (err) { if (err?.message.match(/npm/)) { throw new Error( - `Error calling npm to fetch template. Please ensure that node and npm are installed and available on your system. Full error message: ${err?.message}` + `Error calling npm to fetch template. Please ensure that node and npm are installed and available on your system. Full error message: ${err?.message}`, ); } else { throw new Error(`Error hit when instantiating remote template: ${err?.message}`); @@ -276,41 +276,39 @@ export class AssetManager { const data = await res.json(); const result: BotTemplate[] = await Promise.all( - data.objects.map( - async (result): Promise => { - const { name, version, keywords, description = '' } = result.package; - const shouldFetchVersions = FeatureFlagService.getFeatureFlagValue('ADVANCED_TEMPLATE_OPTIONS'); - const versions = shouldFetchVersions ? await this.getNpmPackageVersions(name) : []; - const displayName = this.getPackageDisplayName(name); - const templateToReturn = { - id: name, - name: displayName, - description: description, - package: { - packageName: name, - packageSource: 'npm', - packageVersion: version, - availableVersions: versions, - }, - } as BotTemplate; - if (isArray(keywords)) { - if (keywords.includes('bf-dotnet-functions') || keywords.includes('bf-dotnet-webapp')) { - templateToReturn.dotnetSupport = { - functionsSupported: keywords.includes('bf-dotnet-functions'), - webAppSupported: keywords.includes('bf-dotnet-webapp'), - }; - } - if (keywords.includes('bf-js-functions') || keywords.includes('bf-js-webapp')) { - templateToReturn.nodeSupport = { - functionsSupported: keywords.includes('bf-js-functions'), - webAppSupported: keywords.includes('bf-js-webapp'), - }; - } - templateToReturn.isMultiBotTemplate = keywords.includes('msbot-multibot-project'); + data.objects.map(async (result): Promise => { + const { name, version, keywords, description = '' } = result.package; + const shouldFetchVersions = FeatureFlagService.getFeatureFlagValue('ADVANCED_TEMPLATE_OPTIONS'); + const versions = shouldFetchVersions ? await this.getNpmPackageVersions(name) : []; + const displayName = this.getPackageDisplayName(name); + const templateToReturn = { + id: name, + name: displayName, + description: description, + package: { + packageName: name, + packageSource: 'npm', + packageVersion: version, + availableVersions: versions, + }, + } as BotTemplate; + if (isArray(keywords)) { + if (keywords.includes('bf-dotnet-functions') || keywords.includes('bf-dotnet-webapp')) { + templateToReturn.dotnetSupport = { + functionsSupported: keywords.includes('bf-dotnet-functions'), + webAppSupported: keywords.includes('bf-dotnet-webapp'), + }; + } + if (keywords.includes('bf-js-functions') || keywords.includes('bf-js-webapp')) { + templateToReturn.nodeSupport = { + functionsSupported: keywords.includes('bf-js-functions'), + webAppSupported: keywords.includes('bf-js-webapp'), + }; } - return templateToReturn; + templateToReturn.isMultiBotTemplate = keywords.includes('msbot-multibot-project'); } - ) + return templateToReturn; + }), ); if (feedUrl === firstPartyTemplateFeed && result.length < 1) { return FallbackTemplateFeedObj; diff --git a/Composer/packages/server/src/models/bot/__tests__/botProject.test.ts b/Composer/packages/server/src/models/bot/__tests__/botProject.test.ts index 4ee7fa924c..2332dc0a67 100644 --- a/Composer/packages/server/src/models/bot/__tests__/botProject.test.ts +++ b/Composer/packages/server/src/models/bot/__tests__/botProject.test.ts @@ -399,7 +399,7 @@ describe('dialog schema operations', () => { describe('should validate the file name when create a new one', () => { const error = new Error( - 'Spaces and special characters are not allowed. Use letters, numbers, -, or _, and begin the name with a letter.' + 'Spaces and special characters are not allowed. Use letters, numbers, -, or _, and begin the name with a letter.', ); const emptyError = new Error('The file name can not be empty'); diff --git a/Composer/packages/server/src/models/bot/__tests__/orchestratorWorker.test.ts b/Composer/packages/server/src/models/bot/__tests__/orchestratorWorker.test.ts index 40c7cf1037..6e2510a438 100644 --- a/Composer/packages/server/src/models/bot/__tests__/orchestratorWorker.test.ts +++ b/Composer/packages/server/src/models/bot/__tests__/orchestratorWorker.test.ts @@ -42,7 +42,7 @@ describe('Orchestrator Warmup Cache', () => { (Orchestrator.getLabelResolversAsync as jest.Mock).mockImplementation( async (intentModelPath: string, _: string, snapshots: Map) => { return new Map(); - } + }, ); (readdir as jest.Mock).mockClear(); @@ -75,7 +75,7 @@ describe('Orchestrator Warmup Cache', () => { (Orchestrator.getLabelResolversAsync as jest.Mock).mockImplementation( async (intentModelPath: string, _: string, snapshots: Map) => { return new Map(); - } + }, ); (readJson as jest.Mock).mockImplementationOnce(async (file) => 'corrupted settings'); @@ -108,14 +108,14 @@ describe('Orchestrator Warmup Cache', () => { './model/en.onnx', '', new Map([['test.en.lu', new Uint8Array(Buffer.from('test blu file'))]]), - false + false, ); expect(Orchestrator.getLabelResolversAsync).toHaveBeenNthCalledWith( 2, './model/multilang.onnx', '', new Map([['test.zh-cn.lu', new Uint8Array(Buffer.from('test blu file'))]]), - false + false, ); }); @@ -135,7 +135,7 @@ describe('Orchestrator Warmup Cache', () => { ['test.en-us.lu', new Uint8Array(Buffer.from('test blu file'))], ['test.en.lu', new Uint8Array(Buffer.from('test blu file'))], ]), - false + false, ); }); @@ -155,7 +155,7 @@ describe('Orchestrator Warmup Cache', () => { ['test.zh-cn.lu', new Uint8Array(Buffer.from('test blu file'))], ['test.ja-jp.lu', new Uint8Array(Buffer.from('test blu file'))], ]), - false + false, ); }); diff --git a/Composer/packages/server/src/models/bot/botProject.ts b/Composer/packages/server/src/models/bot/botProject.ts index d23457d810..3275c74c12 100644 --- a/Composer/packages/server/src/models/bot/botProject.ts +++ b/Composer/packages/server/src/models/bot/botProject.ts @@ -599,14 +599,14 @@ export class BotProject implements IBotProject { ...orchestratorConfig, }, this.settings.downsampling, - this.settings.crossTrain + this.settings.crossTrain, ); await this.builder.build( luFiles, qnaFiles, Array.from(this.files.values()) as FileInfo[], emptyFiles, - !!this.settings.luis.directVersionPublish + !!this.settings.luis.directVersionPublish, ); } }; @@ -741,7 +741,7 @@ export class BotProject implements IBotProject { luUrls.push(lu.url); lu.url = defaultSkillFilePath(skillName, Path.basename(lu.url, '.lu'), 'lu'); return lu; - }) + }), ); await this.createSkillLuFiles(luUrls, skillName); return await this.createManifestJsonFile(manifestName, manifestContent, skillName); @@ -759,7 +759,7 @@ export class BotProject implements IBotProject { } return await this._createFile( `skills/${convertFolderNameToSkillName(manifestKey, skillName)}`, - zipContent[manifestKey] + zipContent[manifestKey], ); } @@ -936,7 +936,7 @@ export class BotProject implements IBotProject { '!(settings/appsettings.json)', '!(**/luconfig.json)', ], - root + root, ); for (const filePath of paths.sort()) { diff --git a/Composer/packages/server/src/models/bot/botStructure.ts b/Composer/packages/server/src/models/bot/botStructure.ts index 5dff525be6..6ae3e50e86 100644 --- a/Composer/packages/server/src/models/bot/botStructure.ts +++ b/Composer/packages/server/src/models/bot/botStructure.ts @@ -150,7 +150,7 @@ export const defaultFilePath = ( options: { endpoint?: string; // / rootDialogId?: string; - } + }, ): string => { const BOTNAME = botName.toLowerCase(); const CommonFileId = 'common'; diff --git a/Composer/packages/server/src/models/bot/builder.ts b/Composer/packages/server/src/models/bot/builder.ts index c3a48b2b9c..35a83fbf0f 100644 --- a/Composer/packages/server/src/models/bot/builder.ts +++ b/Composer/packages/server/src/models/bot/builder.ts @@ -97,7 +97,7 @@ export class Builder { qnaFiles: FileInfo[], allFiles: FileInfo[], emptyFiles: { [key: string]: boolean }, - directVersionPublish: boolean + directVersionPublish: boolean, ) => { const userAgent = getUserAgent(); setEnvDefault('LUIS_USER_AGENT', userAgent); @@ -130,7 +130,7 @@ export class Builder { // (A free search is limited to 3 indexes, which can be used up quickly) if (error.text === 'Qnamaker build failed: Runtime error.') { throw new Error( - 'QnA Maker build failed: This error may indicate that your Search service requires an upgrade. For information about the Search service limits, see here: https://docs.microsoft.com/en-us/azure/search/search-limits-quotas-capacity' + 'QnA Maker build failed: This error may indicate that your Search service requires an upgrade. For information about the Search service limits, see here: https://docs.microsoft.com/en-us/azure/search/search-limits-quotas-capacity', ); } else { throw new Error(error.message ?? error.text ?? 'Error publishing to LUIS or QNA.'); @@ -144,7 +144,7 @@ export class Builder { file.content = file.content.replace('DeferToRecognizer_LUIS', 'DeferToRecognizer_ORCHESTRATOR'); this.storage.writeFile(file.path, file.content); return file; - }) + }), ); }; @@ -161,7 +161,7 @@ export class Builder { public setBuildConfig( config: IConfig, downSamplingConfig?: DownSamplingConfig, - crossTrainingSetting?: { inter?: boolean; intra?: boolean } + crossTrainingSetting?: { inter?: boolean; intra?: boolean }, ) { this.config = config; if (downSamplingConfig) this.downSamplingConfig = downSamplingConfig; @@ -180,7 +180,7 @@ export class Builder { public getModelPathAsync = async () => { let appDataPath = ''; - if (process?.versions?.hasOwnProperty('electron')) { + if (process?.versions && 'electron' in process.versions) { const { app } = await import('electron'); appDataPath = app.getPath('appData'); } else { @@ -202,7 +202,7 @@ export class Builder { if (!luFiles.filter((file) => !emptyFiles[file.name]).length) return; const [enLuFiles, multiLangLuFiles] = partition(luFiles, (f) => - f.name.split('.')?.[1]?.toLowerCase()?.startsWith('en') + f.name.split('.')?.[1]?.toLowerCase()?.startsWith('en'), ); const nlrList = await this.runOrchestratorNlrList(); @@ -259,7 +259,7 @@ export class Builder { public buildOrchestratorSnapshots = async ( modelPath: string, luFiles: FileInfo[], - emptyFiles: { [key: string]: boolean } + emptyFiles: { [key: string]: boolean }, ) => { if (!luFiles.filter((file) => !emptyFiles[file.name]).length) return {}; // build snapshots from LU files @@ -291,7 +291,7 @@ export class Builder { }, onFinish: IOrchestratorProgress = (status) => { log(status); - } + }, ): Promise { if (!(await pathExists(modelPath))) { await Orchestrator.baseModelGetAsync(modelPath, nlrId, onProgress, onFinish); @@ -444,7 +444,7 @@ export class Builder { //downsize the interruption utterances to ratio*the minimum length of normal intent utterances const reservoirSampler = new ComposerReservoirSampler( interruptionItems, - this.downSamplingConfig.maxImbalanceRatio * minNum + this.downSamplingConfig.maxImbalanceRatio * minNum, ); const finalItems = [...normalItems, ...reservoirSampler.getSampledUtterances()]; luObject.utterances = finalItems.filter((item) => !has(item, 'pattern')); @@ -463,7 +463,7 @@ export class Builder { } return luContent; - }) + }), ); } @@ -476,7 +476,7 @@ export class Builder { const fileName = `${key}.${fileExtension}`; const newFileId = Path.join(this.interruptionFolderPath, fileName); await this.storage.writeFile(newFileId, crossTrainResult.get(key).Content); - }) + }), ); } @@ -494,7 +494,7 @@ export class Builder { await Promise.all( luContents.map(async ({ path, content }) => { return await this.storage.writeFile(path, content); - }) + }), ); } @@ -547,7 +547,7 @@ export class Builder { } private writeLuisSettings = async (contents, out: string, directVersionPublish: boolean) => { - const settingsContents = contents.filter((c) => c.id && c.id.endsWith('.json')); + const settingsContents = contents.filter((c) => c.id?.endsWith('.json')); if (settingsContents && settingsContents.length > 0) { const outPath = Path.join(Path.resolve(out), settingsContents[0].id); diff --git a/Composer/packages/server/src/models/bot/process/orchestratorBuilder.ts b/Composer/packages/server/src/models/bot/process/orchestratorBuilder.ts index 5dc7f5ff77..5328c61abe 100644 --- a/Composer/packages/server/src/models/bot/process/orchestratorBuilder.ts +++ b/Composer/packages/server/src/models/bot/process/orchestratorBuilder.ts @@ -22,7 +22,7 @@ class OrchestratorBuilder { projectId: string, files: FileInfo[], modelPath: string, - generatedFolderPath: string + generatedFolderPath: string, ): Promise> { const msgId = uniqueId(); const msg = { id: msgId, payload: { projectId, files, type: 'build', modelPath, generatedFolderPath } }; diff --git a/Composer/packages/server/src/models/bot/process/orchestratorWorker.ts b/Composer/packages/server/src/models/bot/process/orchestratorWorker.ts index ad8aac2960..2f196ffec3 100644 --- a/Composer/packages/server/src/models/bot/process/orchestratorWorker.ts +++ b/Composer/packages/server/src/models/bot/process/orchestratorWorker.ts @@ -97,9 +97,9 @@ export async function warmUpCache(generatedFolderPath: string, projectId: string async (f) => [f.replace('.blu', '.lu'), new Uint8Array(await readFile(Path.join(generatedFolderPath, f)))] as [ string, - Uint8Array - ] - ) + Uint8Array, + ], + ), ); if (modelData.model && snapshotData.length) { @@ -109,7 +109,7 @@ export async function warmUpCache(generatedFolderPath: string, projectId: string modelData.model, '', new Map(snapshotData), - false + false, ); if (labelResolverMap) { for (const [key, labelResolver] of labelResolverMap.entries()) { @@ -138,7 +138,7 @@ export async function orchestratorBuilder( files: FileInfo[], modelPath: string, isDialog = true, - fullEmbedding = false + fullEmbedding = false, ): Promise { const orchestratorLabelResolvers = cache.get(projectId); @@ -172,7 +172,7 @@ export async function orchestratorBuilder( isDialog, '', null, - fullEmbedding + fullEmbedding, ); cache.set(projectId, orchestratorLabelResolvers); return result; diff --git a/Composer/packages/server/src/models/storage/storageFactory.ts b/Composer/packages/server/src/models/storage/storageFactory.ts index cb33fb715d..228b30e032 100644 --- a/Composer/packages/server/src/models/storage/storageFactory.ts +++ b/Composer/packages/server/src/models/storage/storageFactory.ts @@ -10,7 +10,7 @@ import { StorageConnection, IFileStorage } from './interface'; export class StorageFactory { public static createStorageClient(conn: StorageConnection, user?: UserIdentity): IFileStorage { - if (ExtensionContext.extensions.storage && ExtensionContext.extensions.storage.customStorageClass) { + if (ExtensionContext.extensions.storage?.customStorageClass) { const customStorageClass = ExtensionContext.extensions.storage.customStorageClass; if (customStorageClass) { return new customStorageClass(conn, user) as IFileStorage; diff --git a/Composer/packages/server/src/models/utilities/parser.ts b/Composer/packages/server/src/models/utilities/parser.ts index 766c130f92..85573171dc 100644 --- a/Composer/packages/server/src/models/utilities/parser.ts +++ b/Composer/packages/server/src/models/utilities/parser.ts @@ -10,13 +10,9 @@ import { Path } from '../../utility/path'; import log from './../../logger'; import { DOC_EXTENSIONS, QNA_SUBSCRIPTION_KEY, COGNITIVE_SERVICES_ENDPOINTS } from './../../constants'; -// eslint-disable-next-line @typescript-eslint/no-var-requires const qnaBuild = require('@microsoft/bf-lu/lib/parser/qnabuild/builder.js'); -// eslint-disable-next-line @typescript-eslint/no-var-requires const KB = require('@microsoft/bf-lu/lib/parser/qna/qnamaker/kb.js'); -// eslint-disable-next-line @typescript-eslint/no-var-requires const { CognitiveServicesCredentials } = require('@azure/ms-rest-azure-js'); -// eslint-disable-next-line @typescript-eslint/no-var-requires const { QnAMakerClient } = require('@azure/cognitiveservices-qnamaker'); const debug = log.extend('helper-parser'); @@ -43,7 +39,7 @@ async function importQnAFromUrl(builder: any, url: string, subscriptionKey: stri subscriptionKey, COGNITIVE_SERVICES_ENDPOINTS, uuid(), - multiTurn + multiTurn, ); } else { onlineQnAContent = await builder.importUrlReference( @@ -51,7 +47,7 @@ async function importQnAFromUrl(builder: any, url: string, subscriptionKey: stri subscriptionKey, COGNITIVE_SERVICES_ENDPOINTS, uuid(), - multiTurn + multiTurn, ); } return onlineQnAContent; diff --git a/Composer/packages/server/src/router/absh.ts b/Composer/packages/server/src/router/absh.ts index e45d3cb419..2237bc9e5b 100644 --- a/Composer/packages/server/src/router/absh.ts +++ b/Composer/packages/server/src/router/absh.ts @@ -132,7 +132,6 @@ const absh: AuthProviderInit = { }; const login: RequestHandler = (req, res) => { - /* eslint-disable @typescript-eslint/camelcase */ const query = querystring.stringify({ response_type: 'token', response_mode: 'form_post', @@ -144,7 +143,6 @@ const absh: AuthProviderInit = { resource: req.query.resource || `${BASEURL}/home`, }), }); - /* eslint-enable @typescript-eslint/camelcase */ res.redirect(`${LOGIN_URL}?${query}`); }; diff --git a/Composer/packages/server/src/server.ts b/Composer/packages/server/src/server.ts index e9cb49b964..8e20933a4a 100644 --- a/Composer/packages/server/src/server.ts +++ b/Composer/packages/server/src/server.ts @@ -38,7 +38,6 @@ import { cleanHostedBots } from './utility/cleanHostedBots'; import { getVersion } from './utility/getVersion'; import { serverListenHost, serverHostname } from './settings/env'; -// eslint-disable-next-line @typescript-eslint/no-var-requires const session = require('express-session'); export async function start(electronContext?: ElectronContext): Promise { @@ -102,7 +101,7 @@ export async function start(electronContext?: ElectronContext): Promise { it('should generate a CSRF token in the production environment', () => { Object.assign(process.env, { ...process.env, NODE_ENV: 'production' }); - // eslint-disable-next-line @typescript-eslint/no-var-requires const { authService } = require('../auth/auth'); // eslint-disable-next-line no-underscore-dangle @@ -23,7 +22,6 @@ describe('auth service', () => { it('should use template as a CSRF token in the development environment', () => { Object.assign(process.env, { ...process.env, NODE_ENV: 'development' }); - // eslint-disable-next-line @typescript-eslint/no-var-requires const { authService } = require('../auth/auth'); // eslint-disable-next-line no-underscore-dangle @@ -34,7 +32,6 @@ describe('auth service', () => { const mockProvider = { getAccessToken: jest.fn().mockResolvedValue('accessToken'), }; - // eslint-disable-next-line @typescript-eslint/no-var-requires const { authService } = require('../auth/auth'); (authService as any).provider = mockProvider; const token = await authService.getAccessToken({}); diff --git a/Composer/packages/server/src/services/__tests__/extensionManager.test.ts b/Composer/packages/server/src/services/__tests__/extensionManager.test.ts index 597c428a02..912cdce9c3 100644 --- a/Composer/packages/server/src/services/__tests__/extensionManager.test.ts +++ b/Composer/packages/server/src/services/__tests__/extensionManager.test.ts @@ -10,7 +10,7 @@ import { search, downloadPackage } from '../../utility/npm'; import { ExtensionManagerImp, ExtensionManifest } from '../extensionManager'; import { JsonStore } from '../../store/store'; -const mockManifest = ({ +const mockManifest = { extension1: { id: 'extension1', builtIn: true, @@ -31,7 +31,7 @@ const mockManifest = ({ id: 'extension3', enabled: false, }, -} as unknown) as ExtensionManifest; +} as unknown as ExtensionManifest; jest.mock('globby', () => jest.fn()); @@ -50,7 +50,7 @@ let updateManifestSpy: jest.SpyInstance; beforeEach(() => { manager = new ExtensionManagerImp( - new JsonStore(process.env.COMPOSER_EXTENSION_MANIFEST as string, { ...mockManifest }) + new JsonStore(process.env.COMPOSER_EXTENSION_MANIFEST as string, { ...mockManifest }), ); loadSpy = jest.spyOn(manager, 'load'); updateManifestSpy = jest.spyOn(manager, 'updateManifest'); @@ -131,14 +131,14 @@ describe('#loadAll', () => { describe('#loadFromDir', () => { it('finds all package.json files in dir', async () => { - ((glob as unknown) as jest.Mock).mockReturnValue([]); + (glob as unknown as jest.Mock).mockReturnValue([]); await manager.loadFromDir('/some/dir'); expect(glob).toHaveBeenCalledWith('*/package.json', { cwd: '/some/dir' }); }); it('updates the extension manifest and loads each extension found', async () => { - ((glob as unknown) as jest.Mock).mockReturnValue(['extension1/package.json', 'extension2/package.json']); + (glob as unknown as jest.Mock).mockReturnValue(['extension1/package.json', 'extension2/package.json']); (readJson as jest.Mock).mockImplementation((path) => { if (path.includes('extension1')) { return { @@ -168,7 +168,7 @@ describe('#loadFromDir', () => { }); it('removes the extension from the manifest if not enabled', async () => { - ((glob as unknown) as jest.Mock).mockReturnValue(['extension1/package.json']); + (glob as unknown as jest.Mock).mockReturnValue(['extension1/package.json']); (readJson as jest.Mock).mockResolvedValue({ name: 'extension1', composer: { @@ -208,7 +208,7 @@ describe('#installRemote', () => { expect(downloadPackage).toHaveBeenCalledWith( 'extension1', 'latest', - path.join(process.env.COMPOSER_REMOTE_EXTENSIONS_DIR as string, 'extension1') + path.join(process.env.COMPOSER_REMOTE_EXTENSIONS_DIR as string, 'extension1'), ); expect(updateManifestSpy).toHaveBeenCalledWith('extension1', expect.objectContaining({ id: 'extension1' })); diff --git a/Composer/packages/server/src/services/__tests__/project.test.ts b/Composer/packages/server/src/services/__tests__/project.test.ts index fa1bfedce0..7691a28aa9 100644 --- a/Composer/packages/server/src/services/__tests__/project.test.ts +++ b/Composer/packages/server/src/services/__tests__/project.test.ts @@ -69,7 +69,7 @@ describe('test BotProjectService', () => { const projectId = await BotProjectService.openProject(location1); const otherId = '12345.678'; await expect(BotProjectService.getProjectById(otherId)).rejects.toThrowError( - `project ${otherId} not found in cache` + `project ${otherId} not found in cache`, ); expect((await BotProjectService.getProjectById(projectId)).dir).toBe(projPath); }); @@ -107,7 +107,7 @@ describe('test BotProjectService', () => { const error = new Error('There was a project cloning the files.'); mockProject.cloneFiles.mockRejectedValueOnce(error); expect(async () => await BotProjectService.backupProject(mockProject)).rejects.toThrowError( - new Error(`Failed to backup project ${mockProject.id}: ${error}`) + new Error(`Failed to backup project ${mockProject.id}: ${error}`), ); }); }); diff --git a/Composer/packages/server/src/services/auth/authProvider.ts b/Composer/packages/server/src/services/auth/authProvider.ts index 84a9ac1952..0c66da3a8a 100644 --- a/Composer/packages/server/src/services/auth/authProvider.ts +++ b/Composer/packages/server/src/services/auth/authProvider.ts @@ -3,14 +3,14 @@ import { AuthParameters } from '@botframework-composer/types'; -export type AuthConfig = {}; +export type AuthConfig = Record; export abstract class AuthProvider { constructor(protected config: AuthConfig) {} - abstract async getAccessToken(params: AuthParameters): Promise; + abstract getAccessToken(params: AuthParameters): Promise; - abstract async getArmAccessToken(tenantId: string): Promise; + abstract getArmAccessToken(tenantId: string): Promise; abstract logOut(): void; } diff --git a/Composer/packages/server/src/services/auth/electronAuthProvider.ts b/Composer/packages/server/src/services/auth/electronAuthProvider.ts index b137853b40..e5ee78f09e 100644 --- a/Composer/packages/server/src/services/auth/electronAuthProvider.ts +++ b/Composer/packages/server/src/services/auth/electronAuthProvider.ts @@ -102,7 +102,7 @@ export class ElectronAuthProvider extends AuthProvider { private cacheTokens( tokenInfo: { accessToken: string; acquiredAt: number; expiryTime: number }, - params: AuthParameters + params: AuthParameters, ): void { const { accessToken, acquiredAt, expiryTime } = tokenInfo; if (!accessToken) { diff --git a/Composer/packages/server/src/services/auth/webAuthProvider.ts b/Composer/packages/server/src/services/auth/webAuthProvider.ts index d947a19768..555de8add6 100644 --- a/Composer/packages/server/src/services/auth/webAuthProvider.ts +++ b/Composer/packages/server/src/services/auth/webAuthProvider.ts @@ -13,13 +13,13 @@ export class WebAuthProvider extends AuthProvider { // TODO (toanzian / ccastro): implement async getAccessToken(params: AuthParameters): Promise { throw new Error( - 'WebAuthProvider has not been implemented yet. Implicit auth flow currently only works in Electron.' + 'WebAuthProvider has not been implemented yet. Implicit auth flow currently only works in Electron.', ); } async getArmAccessToken(tenantId: string): Promise { throw new Error( - 'WebAuthProvider has not been implemented yet. Implicit auth flow currently only works in Electron.' + 'WebAuthProvider has not been implemented yet. Implicit auth flow currently only works in Electron.', ); } diff --git a/Composer/packages/server/src/services/extensionManager.ts b/Composer/packages/server/src/services/extensionManager.ts index 8bd1fdb295..cacefdbfb1 100644 --- a/Composer/packages/server/src/services/extensionManager.ts +++ b/Composer/packages/server/src/services/extensionManager.ts @@ -51,7 +51,7 @@ export type ExtensionManifest = Record; export class ExtensionManagerImp { public constructor( private _manifest?: JsonStore, - private _settings?: JsonStore + private _settings?: JsonStore, ) {} /** @@ -160,7 +160,7 @@ export class ExtensionManagerImp { if (typeof extension.default === 'function') { // the module exported just an init function await extension.default.call(null, registration); - } else if (extension.default && extension.default.initialize) { + } else if (extension.default?.initialize) { // the module exported an object with an initialize method await extension.default.initialize.call(null, registration); } else if (extension.initialize && typeof extension.initialize === 'function') { diff --git a/Composer/packages/server/src/services/featureFlags.ts b/Composer/packages/server/src/services/featureFlags.ts index 3c7131b926..3655849a3b 100644 --- a/Composer/packages/server/src/services/featureFlags.ts +++ b/Composer/packages/server/src/services/featureFlags.ts @@ -105,7 +105,7 @@ export class FeatureFlagService { } public static getFeatureFlagValue(featureFlagKey: FeatureFlagKey): boolean { - if (FeatureFlagService.currentFeatureFlagMap && FeatureFlagService.currentFeatureFlagMap[featureFlagKey]) { + if (FeatureFlagService.currentFeatureFlagMap?.[featureFlagKey]) { return FeatureFlagService.currentFeatureFlagMap[featureFlagKey].enabled; } return false; diff --git a/Composer/packages/server/src/services/project.ts b/Composer/packages/server/src/services/project.ts index 5012d09262..5651a11224 100644 --- a/Composer/packages/server/src/services/project.ts +++ b/Composer/packages/server/src/services/project.ts @@ -43,7 +43,7 @@ export type BotProjectLocationMap = Record; /** Converts old bot project location maps to the new shape */ function fixOldBotProjectMapEntries( - projectMap: BotProjectLocationMap | { [key: string]: string } + projectMap: BotProjectLocationMap | { [key: string]: string }, ): BotProjectLocationMap { const map: BotProjectLocationMap = {}; for (const botId in projectMap) { @@ -174,7 +174,7 @@ export class BotProjectService { public static getProjectsDateModifiedDict = async ( projects: LocationRef[], - user?: UserIdentity + user?: UserIdentity, ): Promise<{ dateModified: string; path: string }[]> => { const dateModifiedDict: { dateModified: string; path: string }[] = []; const promises = projects.map(async (project) => { @@ -194,7 +194,7 @@ export class BotProjectService { BotProjectService.initialize(); const dateModifiedDict = await BotProjectService.getProjectsDateModifiedDict( BotProjectService.recentBotProjects, - user + user, ); const allRecentBots = BotProjectService.recentBotProjects; @@ -233,7 +233,7 @@ export class BotProjectService { locationRef: LocationRef, user?: UserIdentity, isRootBot?: boolean, - options?: { allowPartialBots: boolean } + options?: { allowPartialBots: boolean }, ): Promise => { BotProjectService.initialize(); @@ -417,7 +417,7 @@ export class BotProjectService { public static deleteRecentProject = (path: string): void => { const recentBotProjects = BotProjectService.recentBotProjects.filter( - (ref) => Path.resolve(path) !== Path.resolve(ref.path) + (ref) => Path.resolve(path) !== Path.resolve(ref.path), ); BotProjectService.recentBotProjects = recentBotProjects; Store.set('recentBotProjects', recentBotProjects); @@ -426,7 +426,7 @@ export class BotProjectService { public static saveProjectAs = async ( sourceProject: BotProject, locationRef: LocationRef, - user?: UserIdentity + user?: UserIdentity, ): Promise => { BotProjectService.initialize(); if (typeof sourceProject !== 'undefined') { @@ -494,7 +494,7 @@ export class BotProjectService { { applicationSettingsDirectory: 'settings', }, - user + user, ); // update project ref to point at newly created folder @@ -521,7 +521,7 @@ export class BotProjectService { await currentProject.migrateFile( originalFiles[f].name, originalFiles[f].content, - originalProject.rootDialogId + originalProject.rootDialogId, ); } } @@ -685,7 +685,7 @@ export class BotProjectService { runtimeLanguage, null, user, - isLocalGenerator + isLocalGenerator, ); BackgroundProcessManager.updateProcess(jobId, 202, formatMessage('Bot files created')); @@ -747,7 +747,7 @@ export class BotProjectService { return reject(err); } }); - }) + }), ); const rootBot = botsToProcess.find((b) => b.name === name); @@ -755,7 +755,7 @@ export class BotProjectService { const id = await BotProjectService.openProject( { storageId: rootBot?.storageId, path: rootBot.path }, user, - creatingRootBot + creatingRootBot, ); const currentProject = await BotProjectService.getProjectById(id, user); const project = currentProject.getProject(); diff --git a/Composer/packages/server/src/services/storage.ts b/Composer/packages/server/src/services/storage.ts index 927f462fc7..8814025d02 100644 --- a/Composer/packages/server/src/services/storage.ts +++ b/Composer/packages/server/src/services/storage.ts @@ -173,7 +173,9 @@ class StorageService { private getChildren = async (storage: IFileStorage, dirPath: string) => { // TODO: filter files, folder which have no read and write const children = ( - await (await storage.readDir(dirPath)).filter((childName) => { + await ( + await storage.readDir(dirPath) + ).filter((childName) => { const regex = /^[.$]/; return !regex.test(childName); }) diff --git a/Composer/packages/server/src/services/telemetry.ts b/Composer/packages/server/src/services/telemetry.ts index 40ad07a218..ce3783f0c5 100644 --- a/Composer/packages/server/src/services/telemetry.ts +++ b/Composer/packages/server/src/services/telemetry.ts @@ -149,7 +149,7 @@ const timedEvents = {}; const startEvent = ( name: TN, id: string, - properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN] + properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN], ) => { timedEvents[id] = { name, diff --git a/Composer/packages/server/src/utility/__tests__/npm.test.ts b/Composer/packages/server/src/utility/__tests__/npm.test.ts index cb799395f0..b242208de3 100644 --- a/Composer/packages/server/src/utility/__tests__/npm.test.ts +++ b/Composer/packages/server/src/utility/__tests__/npm.test.ts @@ -51,7 +51,7 @@ describe('search', () => { const mockRes = { json: jest.fn(), }; - ((fetch as unknown) as jest.Mock).mockImplementation(() => mockRes); + (fetch as unknown as jest.Mock).mockImplementation(() => mockRes); mockRes.json.mockResolvedValue({ objects: data.map((d) => ({ package: d })) }); }); @@ -59,7 +59,7 @@ describe('search', () => { const results = await search('my query'); expect(fetch).toHaveBeenCalledWith( - expect.stringContaining('registry.npmjs.org/-/v1/search?text=my+query+keywords:botframework-composer') + expect.stringContaining('registry.npmjs.org/-/v1/search?text=my+query+keywords:botframework-composer'), ); expect(results).toEqual([ @@ -107,7 +107,7 @@ describe('downloadPackage', () => { json: jest.fn(), body: new MockBody(), }; - ((fetch as unknown) as jest.Mock).mockImplementation(() => mockRes); + (fetch as unknown as jest.Mock).mockImplementation(() => mockRes); mockRes.json.mockResolvedValue(packageMetadata); const extractor = new MockExtractor(); diff --git a/Composer/packages/server/src/utility/creation.ts b/Composer/packages/server/src/utility/creation.ts index 7b7e0f3689..595559d6dc 100644 --- a/Composer/packages/server/src/utility/creation.ts +++ b/Composer/packages/server/src/utility/creation.ts @@ -27,7 +27,7 @@ export const sortTemplates = async (templates: BotTemplate[]): Promise 0 ? templateSortOrderObj : defaultSortOrder; diff --git a/Composer/packages/server/src/utility/electronContext.ts b/Composer/packages/server/src/utility/electronContext.ts index f9064cb4f9..58fc4e88a3 100644 --- a/Composer/packages/server/src/utility/electronContext.ts +++ b/Composer/packages/server/src/utility/electronContext.ts @@ -6,7 +6,7 @@ import { OneAuth } from '@bfc/electron-server/src/auth/oneauth'; export type ElectronContext = { getAccessToken: ( - params: ElectronAuthParameters + params: ElectronAuthParameters, ) => Promise<{ accessToken: string; acquiredAt: number; expiryTime: number }>; getARMTokenForTenant: (tenantId: string) => Promise; getTenants: () => Promise; diff --git a/Composer/packages/server/src/utility/npm.ts b/Composer/packages/server/src/utility/npm.ts index f48ef382bf..af322a28bb 100644 --- a/Composer/packages/server/src/utility/npm.ts +++ b/Composer/packages/server/src/utility/npm.ts @@ -2,6 +2,7 @@ // Licensed under the MIT License. import { promisify } from 'util'; +import stream from 'stream'; import { mkdir, remove } from 'fs-extra'; import tar from 'tar'; @@ -10,7 +11,7 @@ import { ExtensionSearchResult } from '@botframework-composer/types'; import fetch from '../utility/fetch'; import logger from '../logger'; -const streamPipeline = promisify(require('stream').pipeline); +const streamPipeline = promisify(stream.pipeline); const log = logger.extend('extension-manager:npm'); @@ -21,7 +22,7 @@ export async function search(query = '', keywords = ['botframework-composer']): const queryString = query.replace(' ', '+'); const keyWordString = keywords.join('+'); const res = await fetch( - `https://registry.npmjs.org/-/v1/search?text=${queryString}+keywords:${keyWordString}&size=100&from=0&quality=0.65&popularity=0.98&maintenance=0.5` + `https://registry.npmjs.org/-/v1/search?text=${queryString}+keywords:${keyWordString}&size=100&from=0&quality=0.65&popularity=0.98&maintenance=0.5`, ); const data = await res.json(); diff --git a/Composer/packages/server/src/utility/project.ts b/Composer/packages/server/src/utility/project.ts index 0828330c3f..358d369d56 100644 --- a/Composer/packages/server/src/utility/project.ts +++ b/Composer/packages/server/src/utility/project.ts @@ -43,7 +43,7 @@ export async function getNewProjRef( templateId: string, locationRef: LocationRef, user?: UserIdentity, - locale?: string + locale?: string, ) { const createFromRemoteTemplate = !!templateDir; let newProjRef; diff --git a/Composer/packages/tools/language-servers/language-generation/__tests__/LGServer.test.ts b/Composer/packages/tools/language-servers/language-generation/__tests__/LGServer.test.ts index 2929f1848d..08ce77938d 100644 --- a/Composer/packages/tools/language-servers/language-generation/__tests__/LGServer.test.ts +++ b/Composer/packages/tools/language-servers/language-generation/__tests__/LGServer.test.ts @@ -90,7 +90,7 @@ describe('LG LSP server test', () => { await send(`{"jsonrpc":"2.0","method":"initialized","params":{}}`, []); await send( `{"jsonrpc":"2.0","method":"textDocument/didOpen","params": {"textDocument":{"uri":"inmemory://model/1","languageId":"botbuilderlg","version":2,"text": "${content}" }}}`, - [] + [], ); }); @@ -116,7 +116,7 @@ describe('LG LSP server test', () => { expect(response.id).toEqual(2); expect(response.result.contents.value).toContain('-Good evening'); }, - ] + ], ); }); @@ -143,7 +143,7 @@ describe('LG LSP server test', () => { response.result.items .slice(0, 3) .map((item) => item.label) - .join(',') + .join(','), ).toEqual(['Greeting1', 'Greeting2', 'Greeting3'].join(',')); }, ]); diff --git a/Composer/packages/tools/language-servers/language-generation/__tests__/LGUtil.test.ts b/Composer/packages/tools/language-servers/language-generation/__tests__/LGUtil.test.ts index 164d6d62fc..05891e82cb 100644 --- a/Composer/packages/tools/language-servers/language-generation/__tests__/LGUtil.test.ts +++ b/Composer/packages/tools/language-servers/language-generation/__tests__/LGUtil.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/camelcase */ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. diff --git a/Composer/packages/tools/language-servers/language-generation/src/LGServer.ts b/Composer/packages/tools/language-servers/language-generation/src/LGServer.ts index 3fd1671580..e0c0fb699e 100644 --- a/Composer/packages/tools/language-servers/language-generation/src/LGServer.ts +++ b/Composer/packages/tools/language-servers/language-generation/src/LGServer.ts @@ -72,7 +72,7 @@ export class LGServer { protected readonly connection: IConnection, protected readonly getLgResources: (projectId?: string) => ResolverResource[], protected readonly memoryResolver?: MemoryResolver, - protected readonly entitiesResolver?: MemoryResolver + protected readonly entitiesResolver?: MemoryResolver, ) { this.documents.listen(this.connection); this.documents.onDidChangeContent((change) => { @@ -114,7 +114,7 @@ export class LGServer { this.connection.onHover(async (params) => await this.hover(params)); this.connection.onDocumentOnTypeFormatting((docTypingParams) => this.docTypeFormat(docTypingParams)); this.connection.onFoldingRanges((foldingRangeParams: FoldingRangeParams) => - this.foldingRangeHandler(foldingRangeParams) + this.foldingRangeHandler(foldingRangeParams), ); this.connection.onRequest((method, params) => { @@ -172,7 +172,7 @@ export class LGServer { if (curFileResult?.range) { return Location.create( params.textDocument.uri, - Range.create(curFileResult.range.start.line - 1, 0, curFileResult.range.end.line, 0) + Range.create(curFileResult.range.start.line - 1, 0, curFileResult.range.end.line, 0), ); } @@ -243,7 +243,7 @@ export class LGServer { this.connection.console.log(diagnostics.join('\n')); this.sendDiagnostics( document, - diagnostics.map((errorMsg) => generateDiagnostic(errorMsg, DiagnosticSeverity.Error, document)) + diagnostics.map((errorMsg) => generateDiagnostic(errorMsg, DiagnosticSeverity.Error, document)), ); } @@ -366,7 +366,7 @@ export class LGServer { `Parameters: ${get(functionEntity, 'Params', []).join(', ')}`, `Documentation: ${get(functionEntity, 'Introduction', '')}`, `ReturnType: ${this.getExplicitReturnType(get(functionEntity, 'Returntype', '').valueOf() as number).join( - ' | ' + ' | ', )}`, ], }; @@ -415,7 +415,7 @@ export class LGServer { private matchStructuredLG( params: TextDocumentPositionParams, - templateId: string | undefined + templateId: string | undefined, ): LGCursorState | undefined { const state: LGCursorState[] = []; const document = this.documents.get(params.textDocument.uri); @@ -441,7 +441,7 @@ export class LGServer { private matchCurLineState( params: TextDocumentPositionParams, - templateId: string | undefined + templateId: string | undefined, ): LGCursorState | undefined { const state: LGCursorState[] = []; const document = this.documents.get(params.textDocument.uri); @@ -500,7 +500,7 @@ export class LGServer { private findLastStructureLGProps( params: TextDocumentPositionParams, - templateId: string | undefined + templateId: string | undefined, ): string[] | undefined { const state: LGCursorState[] = []; const document = this.documents.get(params.textDocument.uri); @@ -535,7 +535,7 @@ export class LGServer { private matchState( params: TextDocumentPositionParams, - curLineState: LGCursorState | undefined + curLineState: LGCursorState | undefined, ): LGCursorState | undefined { const state: LGCursorState[] = []; const document = this.documents.get(params.textDocument.uri); @@ -936,7 +936,7 @@ export class LGServer { {}, this.memoryVariables, this._curDefinedVariblesInLG, - this._otherDefinedVariblesInLG + this._otherDefinedVariblesInLG, ); } @@ -947,7 +947,7 @@ export class LGServer { setTimeout(async () => { this.pendingValidationRequests.delete(document.uri); await this.doValidate(document); - }) + }), ); } diff --git a/Composer/packages/tools/language-servers/language-generation/src/lgParser.ts b/Composer/packages/tools/language-servers/language-generation/src/lgParser.ts index 06ee5c5f8e..db72870378 100644 --- a/Composer/packages/tools/language-servers/language-generation/src/lgParser.ts +++ b/Composer/packages/tools/language-servers/language-generation/src/lgParser.ts @@ -27,7 +27,7 @@ class LgParserWithoutWorker { lgFile: LgFile, templateName: string, template: { name?: string; parameters?: string[]; body?: string }, - lgFiles: ResolverResource[] + lgFiles: ResolverResource[], ): Promise { const lgImportResolver = lgImportResolverGenerator(lgFiles, '.lg'); return lgUtil.updateTemplate(lgFile, templateName, template, lgImportResolver); @@ -80,7 +80,7 @@ class LgParserWithWorker { lgFile: LgFile, templateName: string, template: { name?: string; parameters?: string[]; body?: string }, - lgFiles: ResolverResource[] + lgFiles: ResolverResource[], ): Promise { const msgId = uniqueId(); const msg = { id: msgId, type: 'updateTemplate', payload: { lgFile, templateName, template, lgFiles } }; @@ -103,7 +103,7 @@ class LgParserWithWorker { public async extractLGVariables( curCbangedFile: string | undefined, - lgFiles: string[] + lgFiles: string[], ): Promise<{ lgVariables: string[] }> { const msgId = uniqueId(); const msg = { id: msgId, type: 'extractLGVariables', payload: { curCbangedFile, lgFiles } }; diff --git a/Composer/packages/tools/language-servers/language-generation/src/lgWorker.ts b/Composer/packages/tools/language-servers/language-generation/src/lgWorker.ts index 85e518e72c..210c02dc98 100644 --- a/Composer/packages/tools/language-servers/language-generation/src/lgWorker.ts +++ b/Composer/packages/tools/language-servers/language-generation/src/lgWorker.ts @@ -39,7 +39,7 @@ process.on('message', async (msg: WorkerMsg) => { lgFile, templateName, template, - lgImportResolver + lgImportResolver, ); process.send?.({ id: msg.id, payload: { id, content, templates, allTemplates, diagnostics } }); break; diff --git a/Composer/packages/tools/language-servers/language-generation/src/utils.ts b/Composer/packages/tools/language-servers/language-generation/src/utils.ts index 2044402857..8547c6b0b8 100644 --- a/Composer/packages/tools/language-servers/language-generation/src/utils.ts +++ b/Composer/packages/tools/language-servers/language-generation/src/utils.ts @@ -52,7 +52,7 @@ export type LGFileResolver = (id: string) => LgFile | undefined; export function getRangeAtPosition( document: TextDocument, position: Position, - includesDotAndAt?: boolean + includesDotAndAt?: boolean, ): Range | undefined { const text = document.getText(); const line = position.line; diff --git a/Composer/packages/tools/language-servers/language-understanding/__tests__/LUServer.test.ts b/Composer/packages/tools/language-servers/language-understanding/__tests__/LUServer.test.ts index f291c7b947..7b74df7ea6 100644 --- a/Composer/packages/tools/language-servers/language-understanding/__tests__/LUServer.test.ts +++ b/Composer/packages/tools/language-servers/language-understanding/__tests__/LUServer.test.ts @@ -85,7 +85,7 @@ describe('lu lsp server', () => { await send(`{"jsonrpc":"2.0","method":"initialized","params":{}}`, []); await send( `{"jsonrpc":"2.0","method":"textDocument/didOpen","params": {"textDocument":{"uri":"inmemory://model/1","languageId":"lu","version":2,"text": "${content}" }}}`, - [] + [], ); }); }); diff --git a/Composer/packages/tools/language-servers/language-understanding/__tests__/unitTest/serverUtil.test.ts b/Composer/packages/tools/language-servers/language-understanding/__tests__/unitTest/serverUtil.test.ts index 9c550a7cfd..6a3a710ca4 100644 --- a/Composer/packages/tools/language-servers/language-understanding/__tests__/unitTest/serverUtil.test.ts +++ b/Composer/packages/tools/language-servers/language-understanding/__tests__/unitTest/serverUtil.test.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable @typescript-eslint/camelcase */ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. diff --git a/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts b/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts index 0a03ee227d..aed0e20d46 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/LUServer.ts @@ -51,11 +51,11 @@ export class LUServer { protected readonly importResolver?: ( source: string, resourceId: string, - projectId: string + projectId: string, ) => { content: string; id: string; - } + }, ) { this.documents.listen(this.connection); this.documents.onDidChangeContent((change) => this.validate(change.document)); @@ -91,7 +91,7 @@ export class LUServer { this.connection.onDocumentOnTypeFormatting((docTypingParams) => this.docTypeFormat(docTypingParams)); this.connection.onDefinition((params: TextDocumentPositionParams) => this.definitionHandler(params)); this.connection.onFoldingRanges((foldingRangeParams: FoldingRangeParams) => - this.foldingRangeHandler(foldingRangeParams) + this.foldingRangeHandler(foldingRangeParams), ); this.connection.onRequest((method, params) => { if (method === LABELEXPERIENCEREQUEST) { @@ -174,7 +174,7 @@ export class LUServer { this.connection.console.log(diagnostics.join('\n')); this.sendDiagnostics( document, - diagnostics.map((errorMsg) => generateDiagnostic(errorMsg, DiagnosticSeverity.Error, document)) + diagnostics.map((errorMsg) => generateDiagnostic(errorMsg, DiagnosticSeverity.Error, document)), ); } @@ -252,7 +252,7 @@ export class LUServer { protected async findAllImportedEntities( imports: { id: string; path: string; description: string }[], importResolver: (source: string, id: string) => Promise<{ id: string; content: any }>, - luFeatures: any + luFeatures: any, ): Promise { let content = ''; let result: string[] = []; @@ -332,7 +332,7 @@ export class LUServer { const edits: TextEdit[] = []; const curLineNumber = params.position.line; const luDoc = this.getLUDocument(document); - const text = (await (luDoc?.index()).content) || document.getText(); + const text = (await luDoc?.index?.()?.content) || document.getText(); const lines = text.split('\n'); const position = params.position; const textBeforeCurLine = lines.slice(0, curLineNumber).join('\n'); @@ -487,7 +487,7 @@ export class LUServer { const range = Range.create(position.line, 0, position.line, position.character); const curLineContent = document.getText(range); const luDoc = this.getLUDocument(document); - const text = (await luDoc?.index()).content || document.getText(); + const text = (await luDoc?.index?.())?.content || document.getText(); const lines = text.split('\n'); const curLineNumber = params.position.line; //const textBeforeCurLine = lines.slice(0, curLineNumber).join('\n'); @@ -577,7 +577,7 @@ export class LUServer { } const suggestionEntityList = uniq( - util.getSuggestionEntities(luisJson, util.suggestionAllEntityTypes).concat(this._importedEntities) + util.getSuggestionEntities(luisJson, util.suggestionAllEntityTypes).concat(this._importedEntities), ); const regexEntityList = util.getRegexEntities(luisJson); @@ -759,7 +759,7 @@ export class LUServer { Name: sectionId, Body: text, }, - true + true, ); // error in section. if (isValid(sectionDiags) === false) { diff --git a/Composer/packages/tools/language-servers/language-understanding/src/luParser.ts b/Composer/packages/tools/language-servers/language-understanding/src/luParser.ts index 5eb1216de9..c86f6d19e7 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/luParser.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/luParser.ts @@ -26,7 +26,7 @@ export class LuParserWithoutWorker { luFile: LuFile, intentName: string, intent: { Name?: string; Body?: string } | null, - luFeatures: ILUFeaturesConfig + luFeatures: ILUFeaturesConfig, ): Promise { return updateIntent(luFile, intentName, intent, luFeatures); } @@ -60,7 +60,7 @@ class LuParserWithWorker { luFile: LuFile, intentName: string, intent: { Name?: string; Body?: string } | null, - luFeatures: ILUFeaturesConfig + luFeatures: ILUFeaturesConfig, ): Promise { const msgId = uniqueId(); const msg = { id: msgId, type: 'updateIntent', payload: { luFile, intentName, intent, luFeatures } }; diff --git a/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts b/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts index 1c99cd9723..34d30243db 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/matchingPattern.ts @@ -84,7 +84,8 @@ export function isSeperatedEntityDef(content: string): boolean { } export function isEntityName(content: string): boolean { - const hasNameEntifyDef = /^\s*@\s*(ml|list|regex|prebuilt|composite|Pattern\.any|phraseList)\s*([\w._]+|"[\w._\s]+")\s*$/; + const hasNameEntifyDef = + /^\s*@\s*(ml|list|regex|prebuilt|composite|Pattern\.any|phraseList)\s*([\w._]+|"[\w._\s]+")\s*$/; const hasTypeEntityDef = /^\s*@\s*(ml|list|regex|prebuilt|composite|Pattern\.any|phraseList|intent)\s*$/; const hasNameEntifyDef2 = /^\s*@\s*([\w._]+|"[\w._\s]+")\s*$/; return hasNameEntifyDef.test(content) || (!hasTypeEntityDef.test(content) && hasNameEntifyDef2.test(content)); diff --git a/Composer/packages/tools/language-servers/language-understanding/src/utils.ts b/Composer/packages/tools/language-servers/language-understanding/src/utils.ts index d9be289998..b4786adb14 100644 --- a/Composer/packages/tools/language-servers/language-understanding/src/utils.ts +++ b/Composer/packages/tools/language-servers/language-understanding/src/utils.ts @@ -31,7 +31,7 @@ export interface LUDocument { export declare type LUImportResolverDelegate = ( source: string, - resourceId: string + resourceId: string, ) => { content: string; id: string; diff --git a/Composer/packages/types/src/creation.ts b/Composer/packages/types/src/creation.ts index c24caaf5a4..e60f561667 100644 --- a/Composer/packages/types/src/creation.ts +++ b/Composer/packages/types/src/creation.ts @@ -4,7 +4,7 @@ export const csharpFeedKey = 'dotnet'; export const nodeFeedKey = 'js'; export const defaultFeeds = [nodeFeedKey, csharpFeedKey] as const; -export type FeedName = typeof defaultFeeds[number]; +export type FeedName = (typeof defaultFeeds)[number]; export type FeedType = 'npm' | 'nuget'; type WebApplicationInfo = { @@ -68,4 +68,4 @@ export type TeamsManifest = { export const webAppRuntimeKey = 'webapp'; export const functionsRuntimeKey = 'functions'; export const availableRunTimes = [webAppRuntimeKey, functionsRuntimeKey] as const; -export type RuntimeType = typeof availableRunTimes[number]; +export type RuntimeType = (typeof availableRunTimes)[number]; diff --git a/Composer/packages/types/src/publish.ts b/Composer/packages/types/src/publish.ts index a75a7b873f..e13c5bc145 100644 --- a/Composer/packages/types/src/publish.ts +++ b/Composer/packages/types/src/publish.ts @@ -71,47 +71,47 @@ export type PublishPlugin = { project: IBotProject, metadata: any, user?: UserIdentity, - getAccessToken?: GetAccessToken + getAccessToken?: GetAccessToken, ) => Promise; getStatus?: ( config: Config, project: IBotProject, user?: UserIdentity, - getAccessToken?: GetAccessToken + getAccessToken?: GetAccessToken, ) => Promise; getHistory?: ( config: Config, project: IBotProject, user?: UserIdentity, - getAccessToken?: GetAccessToken + getAccessToken?: GetAccessToken, ) => Promise; rollback?: ( config: Config, project: IBotProject, rollbackToVersion: string, - user?: UserIdentity + user?: UserIdentity, ) => Promise; pull?: ( config: Config, project: IBotProject, user?: UserIdentity, - getAccessToken?: GetAccessToken + getAccessToken?: GetAccessToken, ) => Promise; provision?: ( config: Config, project: IBotProject, user?: UserIdentity, - getAccessToken?: GetAccessToken + getAccessToken?: GetAccessToken, ) => Promise; getProvisionStatus?: ( target: string, project: IBotProject, user?: UserIdentity, - jobId?: string + jobId?: string, ) => Promise; getResources?: ( project: IBotProject, - user?: UserIdentity + user?: UserIdentity, ) => Promise< { description: string; diff --git a/Composer/packages/types/src/runtime.ts b/Composer/packages/types/src/runtime.ts index 73b90154b0..ec0bdbee4c 100644 --- a/Composer/packages/types/src/runtime.ts +++ b/Composer/packages/types/src/runtime.ts @@ -72,7 +72,7 @@ export type RuntimeTemplate = { componentName: string, version: string, source: string, - project: IBotProject + project: IBotProject, ) => Promise; uninstallComponent: (runtimePath: string, componentName: string, project: IBotProject) => Promise; @@ -84,7 +84,7 @@ export type RuntimeTemplate = { runtimePath: string, project: IBotProject, settings: DialogSetting, - profileName: string + profileName: string, ) => Promise; /** set skill manifest, different folder for different runtime */ @@ -93,7 +93,7 @@ export type RuntimeTemplate = { dstStorage: IFileStorage, srcManifestDir: string, srcStorage: IFileStorage, - mode: string + mode: string, ) => Promise; /** path to code template */ diff --git a/Composer/packages/types/src/sdk.ts b/Composer/packages/types/src/sdk.ts index 1922d28860..9b0aafd1a4 100644 --- a/Composer/packages/types/src/sdk.ts +++ b/Composer/packages/types/src/sdk.ts @@ -233,7 +233,7 @@ export type OnIntent = RuleBase & { }; /** Defines a sequence of steps to take if there is no other trigger or plan operating */ -export type OnUnknownIntent = RuleBase & {}; +export type OnUnknownIntent = RuleBase & Record; export type ITriggerCondition = OnIntent | OnUnknownIntent; diff --git a/Composer/packages/types/src/telemetry.ts b/Composer/packages/types/src/telemetry.ts index 1d694088fb..e2afe81344 100644 --- a/Composer/packages/types/src/telemetry.ts +++ b/Composer/packages/types/src/telemetry.ts @@ -229,8 +229,7 @@ type OrchestratorEvents = { type PropertyEditorEvents = { RecognizerChanged: { recognizer: string }; }; - -type OtherEvents = {}; +type OtherEvents = Record; type PageView = { [PageNames.Design]: undefined; @@ -282,13 +281,13 @@ export type TelemetryEventName = keyof TelemetryEvents; export type TelemetryClient = { track: ( eventName: TN, - properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN] + properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN], ) => void; pageView: ( eventName: TN, url: string, - properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN] + properties?: TelemetryEvents[TN] extends undefined ? never : TelemetryEvents[TN], ) => void; }; diff --git a/Composer/packages/ui-plugins/composer/src/defaultRecognizerSchema.ts b/Composer/packages/ui-plugins/composer/src/defaultRecognizerSchema.ts index d20bf7003b..1e07d92e28 100644 --- a/Composer/packages/ui-plugins/composer/src/defaultRecognizerSchema.ts +++ b/Composer/packages/ui-plugins/composer/src/defaultRecognizerSchema.ts @@ -18,7 +18,7 @@ export const DefaultRecognizerSchema: RecognizerUISchema = { displayName: () => formatMessage('Regular expression'), description: () => formatMessage( - 'Gives your bot the ability to extract intent and entity data from an utterance based on regular expression patterns.' + 'Gives your bot the ability to extract intent and entity data from an utterance based on regular expression patterns.', ), intentEditor: RegexIntentField, renameIntent: (intentName, newIntentName, shellData, shellApi) => { diff --git a/Composer/packages/ui-plugins/composer/src/index.ts b/Composer/packages/ui-plugins/composer/src/index.ts index c9fe8fab16..27ebbf3d86 100644 --- a/Composer/packages/ui-plugins/composer/src/index.ts +++ b/Composer/packages/ui-plugins/composer/src/index.ts @@ -32,7 +32,7 @@ const DefaultFormSchema: FormUISchema = { label: () => formatMessage('Language Understanding'), description: () => formatMessage( - 'To understand what the user says, your dialog needs a "Recognizer"; that includes example words and sentences that users may use.' + 'To understand what the user says, your dialog needs a "Recognizer"; that includes example words and sentences that users may use.', ), }, }, @@ -176,7 +176,7 @@ const synthesizeUISchema = ( menuSchema: MenuUISchema, flowSchema: FlowUISchema, triggerSchema: TriggerUISchema, - recognizerSchema: RecognizerUISchema + recognizerSchema: RecognizerUISchema, ): UISchema => { let uischema: UISchema = {}; uischema = mergeWith(uischema, formSchema, (origin, formOption) => ({ ...origin, form: formOption })); @@ -193,7 +193,7 @@ const config: PluginConfig = { DefaultMenuSchema, DefaultFlowSchema, DefaultTriggerSchema, - DefaultRecognizerSchema + DefaultRecognizerSchema, ), }; diff --git a/Composer/packages/ui-plugins/cross-trained/src/index.ts b/Composer/packages/ui-plugins/cross-trained/src/index.ts index a6f1e8fe24..5897ab1794 100644 --- a/Composer/packages/ui-plugins/cross-trained/src/index.ts +++ b/Composer/packages/ui-plugins/cross-trained/src/index.ts @@ -12,7 +12,7 @@ const config: PluginConfig = { displayName: () => formatMessage('Default'), description: () => formatMessage( - 'Gives your bot the ability to extract intent and entity data from an utterance based on a cross trained recognizer set.' + 'Gives your bot the ability to extract intent and entity data from an utterance based on a cross trained recognizer set.', ), isSelected: (data, dialog: DialogInfo) => { if (dialog.luProvider === SDKKinds.OrchestratorRecognizer) return false; diff --git a/Composer/packages/ui-plugins/lg/src/LgField.tsx b/Composer/packages/ui-plugins/lg/src/LgField.tsx index 397ce7d9b2..dc4604e3b3 100644 --- a/Composer/packages/ui-plugins/lg/src/LgField.tsx +++ b/Composer/packages/ui-plugins/lg/src/LgField.tsx @@ -104,7 +104,7 @@ const LgField: React.FC> = (props) => { (lgFiles.find((lgFile) => lgFile.id === lgFileId)?.allTemplates || []) .filter((t) => t.name !== lgTemplateRef?.name) .sort(), - [lgFileId, lgFiles] + [lgFileId, lgFiles], ); const template = lgFile?.templates?.find((template) => { @@ -117,17 +117,18 @@ const LgField: React.FC> = (props) => { const diagnostics = lgFile ? filterTemplateDiagnostics(lgFile, template.name) : []; - const responseEditorLinkDisabled = useMemo(() => diagnostics.some((d) => d.severity === DiagnosticSeverity.Error), [ - diagnostics, - ]); + const responseEditorLinkDisabled = useMemo( + () => diagnostics.some((d) => d.severity === DiagnosticSeverity.Error), + [diagnostics], + ); - const allowResponseEditor = useMemo(() => !responseEditorLinkDisabled && validateStructuredResponse(template), [ - template, - responseEditorLinkDisabled, - ]); + const allowResponseEditor = useMemo( + () => !responseEditorLinkDisabled && validateStructuredResponse(template), + [template, responseEditorLinkDisabled], + ); const [editorMode, setEditorMode] = React.useState( - allowResponseEditor ? 'responseEditor' : 'codeEditor' + allowResponseEditor ? 'responseEditor' : 'codeEditor', ); const lgOption = { @@ -154,7 +155,7 @@ const LgField: React.FC> = (props) => { } } }, - [designerId, shellApi, lgFileId, lgName, lgTemplateRef, props.onChange] + [designerId, shellApi, lgFileId, lgName, lgTemplateRef, props.onChange], ); const handleSettingsChange = (settings: CodeEditorSettings) => { @@ -167,7 +168,7 @@ const LgField: React.FC> = (props) => { {text} ), - [] + [], ); const modeChange = useCallback(async () => { @@ -184,16 +185,16 @@ const LgField: React.FC> = (props) => { ), text: ({ children }) => {children}, - } + }, )} {formatMessage.rich( 'If you proceed to switch to Response editor, you will lose your current template content, and start with a blank response. Do you want to continue?', { text: ({ children }) => {children}, - } + }, )} , - { confirmText: formatMessage('Confirm'), onRenderContent: renderConfirmDialogContent } + { confirmText: formatMessage('Confirm'), onRenderContent: renderConfirmDialogContent }, ); if (confirm) { @@ -207,7 +208,7 @@ const LgField: React.FC> = (props) => { } shellApi.telemetryClient.track( - editorMode === 'codeEditor' ? 'LGEditorSwitchToCodeEditor' : 'LGEditorSwitchToResponseEditor' + editorMode === 'codeEditor' ? 'LGEditorSwitchToCodeEditor' : 'LGEditorSwitchToResponseEditor', ); setEditorMode(editorMode === 'codeEditor' ? 'responseEditor' : 'codeEditor'); }, [editorMode, allowResponseEditor, props.onChange, shellApi.telemetryClient]); @@ -229,7 +230,7 @@ const LgField: React.FC> = (props) => { shellApi.navigateTo(url); }, - [shellApi, projectId, locale] + [shellApi, projectId, locale], ); const onTemplateChange = useCallback( @@ -246,14 +247,14 @@ const LgField: React.FC> = (props) => { } } }, - [lgOption, shellApi, props.onChange] + [lgOption, shellApi, props.onChange], ); const onRemoveTemplate = useCallback( (template: string) => { onTemplateChange(template); }, - [onTemplateChange] + [onTemplateChange], ); const popExpandOptions = React.useMemo(() => ({ popExpandTitle: label || formatMessage('Bot response') }), [label]); diff --git a/Composer/packages/ui-plugins/lg/src/LgWidget/LgWidget.tsx b/Composer/packages/ui-plugins/lg/src/LgWidget/LgWidget.tsx index 118b1816fc..06ebda974c 100644 --- a/Composer/packages/ui-plugins/lg/src/LgWidget/LgWidget.tsx +++ b/Composer/packages/ui-plugins/lg/src/LgWidget/LgWidget.tsx @@ -61,7 +61,7 @@ const StructuredResponseRow = React.memo( ); - } + }, ); export interface LgWidgetProps extends WidgetContainerProps { diff --git a/Composer/packages/ui-plugins/lg/src/LgWidget/useLgTemplate.ts b/Composer/packages/ui-plugins/lg/src/LgWidget/useLgTemplate.ts index fab82af0ef..6f4a093101 100644 --- a/Composer/packages/ui-plugins/lg/src/LgWidget/useLgTemplate.ts +++ b/Composer/packages/ui-plugins/lg/src/LgWidget/useLgTemplate.ts @@ -20,58 +20,66 @@ const getAttachmentDisplayText = (template: LgTemplate) => { */ const getLgTemplateTextData = ( template: LgTemplate, - templates: readonly LgTemplate[] + templates: readonly LgTemplate[], ): string | Record => { // If template has structured response if (template.properties?.$type === 'Activity') { - const response = ['Text', 'Speak', 'Attachments', 'SuggestedActions'].reduce((acc, responseType) => { - if (template.properties?.[responseType]) { - if (responseType === 'Text' || responseType === 'Speak') { - const subTemplateItem = template.properties[responseType]; - if (subTemplateItem && typeof subTemplateItem === 'string') { - const subTemplateId = extractTemplateNameFromExpression(subTemplateItem.trim()); - //If it's a template - if (subTemplateId) { - const subTemplate = templates.find((x) => x.name === subTemplateId); - // If found template and it matches auto-generated names - if (subTemplate) { - const variations = parseTemplateBody(subTemplate.body) - // Remove LG template multiline block symbol - .map((s) => ({ ...s, value: s.value.replace(/```/g, '') })) - .filter((s) => s.kind === 'variation') - .map((s) => s.value); - if (variations.length) { - acc[responseType] = { value: variations[0].replace(/\r?\n/g, '↵'), moreCount: variations.length - 1 }; + const response = ['Text', 'Speak', 'Attachments', 'SuggestedActions'].reduce( + (acc, responseType) => { + if (template.properties?.[responseType]) { + if (responseType === 'Text' || responseType === 'Speak') { + const subTemplateItem = template.properties[responseType]; + if (subTemplateItem && typeof subTemplateItem === 'string') { + const subTemplateId = extractTemplateNameFromExpression(subTemplateItem.trim()); + //If it's a template + if (subTemplateId) { + const subTemplate = templates.find((x) => x.name === subTemplateId); + // If found template and it matches auto-generated names + if (subTemplate) { + const variations = parseTemplateBody(subTemplate.body) + // Remove LG template multiline block symbol + .map((s) => ({ ...s, value: s.value.replace(/```/g, '') })) + .filter((s) => s.kind === 'variation') + .map((s) => s.value); + if (variations.length) { + acc[responseType] = { + value: variations[0].replace(/\r?\n/g, '↵'), + moreCount: variations.length - 1, + }; + } } + } else { + acc[responseType] = { value: subTemplateItem, moreCount: 0 }; } - } else { - acc[responseType] = { value: subTemplateItem, moreCount: 0 }; } - } - } else if (responseType === 'Attachments' || responseType === 'SuggestedActions') { - const subTemplateItems = (Array.isArray(template.properties[responseType]) - ? template.properties[responseType] - : [template.properties[responseType]]) as string[]; - const subTemplateItem = subTemplateItems[0]; - if (subTemplateItem && typeof subTemplateItem === 'string') { - const subTemplateId = extractTemplateNameFromExpression(subTemplateItem.trim()); - // If it's a template - if (subTemplateId) { - const subTemplate = templates.find((x) => x.name === subTemplateId); - if (subTemplate) { - acc[responseType] = { - value: getAttachmentDisplayText(subTemplate), - moreCount: subTemplateItems.length - 1, - }; + } else if (responseType === 'Attachments' || responseType === 'SuggestedActions') { + const subTemplateItems = ( + Array.isArray(template.properties[responseType]) + ? template.properties[responseType] + : [template.properties[responseType]] + ) as string[]; + const subTemplateItem = subTemplateItems[0]; + if (subTemplateItem && typeof subTemplateItem === 'string') { + const subTemplateId = extractTemplateNameFromExpression(subTemplateItem.trim()); + // If it's a template + if (subTemplateId) { + const subTemplate = templates.find((x) => x.name === subTemplateId); + if (subTemplate) { + acc[responseType] = { + value: getAttachmentDisplayText(subTemplate), + moreCount: subTemplateItems.length - 1, + }; + } + } else { + acc[responseType] = { value: subTemplateItem, moreCount: subTemplateItems.length - 1 }; } - } else { - acc[responseType] = { value: subTemplateItem, moreCount: subTemplateItems.length - 1 }; } } } - } - return acc; - }, {} as Record); + return acc; + }, + {} as Record, + ); if (Object.keys(response).length === 0) { return template.body; diff --git a/Composer/packages/ui-plugins/lg/src/index.ts b/Composer/packages/ui-plugins/lg/src/index.ts index d4177b33ad..122f028f60 100644 --- a/Composer/packages/ui-plugins/lg/src/index.ts +++ b/Composer/packages/ui-plugins/lg/src/index.ts @@ -17,7 +17,7 @@ const config: PluginConfig = { activity: { label: formatMessage('Bot responses'), description: formatMessage( - 'What your bot says to the user. This is a template used to create the outgoing message. It can include language generation rules, properties from memory, and other features.\n\nFor example, to define variations that will be chosen at random, write:\n- hello\n- hi' + 'What your bot says to the user. This is a template used to create the outgoing message. It can include language generation rules, properties from memory, and other features.\n\nFor example, to define variations that will be chosen at random, write:\n- hello\n- hi', ), helpLink: 'https://aka.ms/lg-file-format', }, diff --git a/Composer/packages/ui-plugins/lg/src/locateLgTemplatePosition.ts b/Composer/packages/ui-plugins/lg/src/locateLgTemplatePosition.ts index 6875d8bd90..2dc9ad40c5 100644 --- a/Composer/packages/ui-plugins/lg/src/locateLgTemplatePosition.ts +++ b/Composer/packages/ui-plugins/lg/src/locateLgTemplatePosition.ts @@ -6,11 +6,11 @@ import { LgFile } from '@bfc/shared'; export const locateLgTemplatePosition = ( lgFiles: LgFile[], lgTemplateName: string, - locale: string + locale: string, ): LgFile | undefined => { const currentLocaleLgFiles = lgFiles.filter((f) => f.id.endsWith(locale)); const relatedLgFile = currentLocaleLgFiles.find((file) => - file.templates.some((template) => template.name === lgTemplateName) + file.templates.some((template) => template.name === lgTemplateName), ); return relatedLgFile; }; diff --git a/Composer/packages/ui-plugins/luis/src/LuisIntentEditor.tsx b/Composer/packages/ui-plugins/luis/src/LuisIntentEditor.tsx index 90c171d92f..590b4e76fe 100644 --- a/Composer/packages/ui-plugins/luis/src/LuisIntentEditor.tsx +++ b/Composer/packages/ui-plugins/luis/src/LuisIntentEditor.tsx @@ -36,7 +36,7 @@ const LuisIntentEditor: React.FC> = (props) => { const popExpandOptions = useMemo( () => ({ popExpandTitle: typeof label === 'string' ? label : formatMessage('Trigger phrases') }), - [label] + [label], ); const luIntent = useMemo(() => { @@ -71,7 +71,7 @@ const LuisIntentEditor: React.FC> = (props) => { : `/bot/${projectId}/language-understanding/${fileId}${sectionId ? `/edit?t=${sectionId}` : ''}`; shellApi.navigateTo(url); }, - [shellApi, projectId, locale, currentDialog] + [shellApi, projectId, locale, currentDialog], ); if (!luFile || !intentName) { diff --git a/Composer/packages/ui-plugins/luis/src/index.ts b/Composer/packages/ui-plugins/luis/src/index.ts index c27a1b396d..e7cb4e309a 100644 --- a/Composer/packages/ui-plugins/luis/src/index.ts +++ b/Composer/packages/ui-plugins/luis/src/index.ts @@ -20,7 +20,7 @@ const config: PluginConfig = { displayName: () => formatMessage('LUIS'), description: () => formatMessage( - 'Gives your bot the ability to extract intent and entity data from an utterance based on luis modal' + 'Gives your bot the ability to extract intent and entity data from an utterance based on luis modal', ), intentEditor: 'LuIntentEditor', isSelected: (data) => { diff --git a/Composer/packages/ui-plugins/orchestrator/src/index.ts b/Composer/packages/ui-plugins/orchestrator/src/index.ts index 723a47e484..0078b8a9a9 100644 --- a/Composer/packages/ui-plugins/orchestrator/src/index.ts +++ b/Composer/packages/ui-plugins/orchestrator/src/index.ts @@ -19,7 +19,7 @@ const config: PluginConfig = { displayName: () => formatMessage('Orchestrator (Intents only)'), description: () => formatMessage( - 'Gives your bot the ability to detect and route user input to an appropriate skill or to a subsequent language understanding models.' + 'Gives your bot the ability to detect and route user input to an appropriate skill or to a subsequent language understanding models.', ), isSelected: (_, dialog: DialogInfo) => { return dialog.luProvider === SDKKinds.OrchestratorRecognizer; diff --git a/Composer/packages/ui-plugins/schema-editor/src/Fields/SchemaEditorField.tsx b/Composer/packages/ui-plugins/schema-editor/src/Fields/SchemaEditorField.tsx index 845df3db54..1788062a9d 100644 --- a/Composer/packages/ui-plugins/schema-editor/src/Fields/SchemaEditorField.tsx +++ b/Composer/packages/ui-plugins/schema-editor/src/Fields/SchemaEditorField.tsx @@ -28,7 +28,7 @@ export const SchemaEditorField: React.FC = () => { const value = useMemo( () => (typeof content === 'object' ? content : getDefaultDialogSchema(SCHEMA_URI, displayName || dialogId)), - [content] + [content], ); const formValue = useMemo( @@ -36,7 +36,7 @@ export const SchemaEditorField: React.FC = () => { dialogValue: value?.properties || {}, resultValue: value?.$result?.properties || {}, }), - [value?.properties, value?.$result?.properties] + [value?.properties, value?.$result?.properties], ); const handleChange = ({ dialogValue = {}, resultValue = {} }) => { diff --git a/Composer/packages/ui-plugins/schema-editor/src/__tests__/SchemaEditorField.test.tsx b/Composer/packages/ui-plugins/schema-editor/src/__tests__/SchemaEditorField.test.tsx index 44ae327519..16d59f4ce8 100644 --- a/Composer/packages/ui-plugins/schema-editor/src/__tests__/SchemaEditorField.test.tsx +++ b/Composer/packages/ui-plugins/schema-editor/src/__tests__/SchemaEditorField.test.tsx @@ -27,7 +27,7 @@ const renderSchemaEditor = ({ updateDialogSchema = jest.fn() } = {}) => { return render( - + , ); }; @@ -64,7 +64,7 @@ describe('Schema Editor', () => { }, }), }), - }) + }), ); }); @@ -102,7 +102,7 @@ describe('Schema Editor', () => { }), }), }), - }) + }), ); }); }); diff --git a/Composer/packages/ui-plugins/schema-editor/src/__tests__/getDefinitions.test.ts b/Composer/packages/ui-plugins/schema-editor/src/__tests__/getDefinitions.test.ts index f2c16f1c86..ce5443c3a8 100644 --- a/Composer/packages/ui-plugins/schema-editor/src/__tests__/getDefinitions.test.ts +++ b/Composer/packages/ui-plugins/schema-editor/src/__tests__/getDefinitions.test.ts @@ -13,13 +13,13 @@ describe('getDefinitions', () => { it('returns definitions', () => { const definitions = getDefinitions( [{ type: 'integer' }, { $ref: '#/definitions/booleanExpression' }], - valueTypeDefinitions + valueTypeDefinitions, ); expect(definitions).toEqual( expect.objectContaining({ booleanExpression: expect.any(Object), - }) + }), ); }); @@ -30,7 +30,7 @@ describe('getDefinitions', () => { expect.objectContaining({ equalsExpression: expect.any(Object), valueExpression: expect.any(Object), - }) + }), ); }); }); diff --git a/Composer/packages/ui-plugins/select-dialog/src/DialogOptionsField.tsx b/Composer/packages/ui-plugins/select-dialog/src/DialogOptionsField.tsx index 58d7389218..d5ca591ab6 100644 --- a/Composer/packages/ui-plugins/select-dialog/src/DialogOptionsField.tsx +++ b/Composer/packages/ui-plugins/select-dialog/src/DialogOptionsField.tsx @@ -30,15 +30,16 @@ const BorderedStack = styled(Stack)(({ border }: { border: boolean }) => ? { borderBottom: `1px solid ${NeutralColors.gray30}`, } - : {} + : {}, ); const styles = { dropdown: { root: { - ':hover .ms-Dropdown-title, :active .ms-Dropdown-title, :hover .ms-Dropdown-caretDown, :active .ms-Dropdown-caretDown': { - color: FluentTheme.palette.themeDarker, - }, + ':hover .ms-Dropdown-title, :active .ms-Dropdown-title, :hover .ms-Dropdown-caretDown, :active .ms-Dropdown-caretDown': + { + color: FluentTheme.palette.themeDarker, + }, ':focus-within .ms-Dropdown-title, :focus-within .ms-Dropdown-caretDown': { color: FluentTheme.palette.accent, }, @@ -58,7 +59,7 @@ const dropdownCalloutProps = { styles: { root: { minWidth: 140 } } }; const getSelectedKey = ( value?: string | Record, schema?: JSONSchema7, - validSchema = false + validSchema = false, ): string => { if (typeof value !== 'string' && schema && validSchema) { return 'form'; @@ -84,18 +85,21 @@ const DialogOptionsField: React.FC = ({ const { dialogSchemas, topics } = useShellApi(); const topicIdMap = React.useMemo(() => { - return topics.reduce((all, t) => { - if (t.content?.id) { - all[t.content.id] = t.id; - } - return all; - }, {} as Record); + return topics.reduce( + (all, t) => { + if (t.content?.id) { + all[t.content.id] = t.id; + } + return all; + }, + {} as Record, + ); }, [topics]); const dialogId = (dialog && topicIdMap[dialog]) ?? dialog; const { content: rawSchema }: { content?: JSONSchema7 } = React.useMemo( () => dialogSchemas.find(({ id }) => id === dialogId) || {}, - [dialog, dialogSchemas] + [dialog, dialogSchemas], ); const [schema, setSchema] = React.useState(undefined); @@ -151,7 +155,7 @@ const DialogOptionsField: React.FC = ({ (newOptions?: string | Record) => { onChange({ ...value, options: newOptions }); }, - [value, onChange] + [value, onChange], ); const onDropdownChange = React.useCallback( @@ -168,7 +172,7 @@ const DialogOptionsField: React.FC = ({ setSelectedKey(option.key as string); } }, - [change, selectedKey] + [change, selectedKey], ); const typeOptions = React.useMemo(() => { diff --git a/Composer/packages/ui-plugins/select-dialog/src/SelectDialog.tsx b/Composer/packages/ui-plugins/select-dialog/src/SelectDialog.tsx index d26a44d461..66b69d511e 100644 --- a/Composer/packages/ui-plugins/select-dialog/src/SelectDialog.tsx +++ b/Composer/packages/ui-plugins/select-dialog/src/SelectDialog.tsx @@ -58,7 +58,7 @@ export const SelectDialog: React.FC = (props) => { setShowIntellisenseField(false); } }, - [value, onBlur] + [value, onBlur], ); return showIntellisenseField ? ( diff --git a/Composer/packages/ui-plugins/select-dialog/src/SelectDialogMenu.tsx b/Composer/packages/ui-plugins/select-dialog/src/SelectDialogMenu.tsx index 2e27112cc6..cf65c5f5c4 100644 --- a/Composer/packages/ui-plugins/select-dialog/src/SelectDialogMenu.tsx +++ b/Composer/packages/ui-plugins/select-dialog/src/SelectDialogMenu.tsx @@ -170,7 +170,7 @@ export const SelectDialogMenu: React.FC = (props) => { }, }, ], - [dialogItems, shouldShowFilter] + [dialogItems, shouldShowFilter], ); const filterDialogs = useCallback( @@ -181,7 +181,7 @@ export const SelectDialogMenu: React.FC = (props) => { setDialogItems(allItems.filter((item) => item.text?.toLowerCase().includes(newVal?.toLowerCase() ?? ''))); }, - [allItems] + [allItems], ); const selectedLabel = useMemo(() => { @@ -234,7 +234,7 @@ export const SelectDialogMenu: React.FC = (props) => { ); }, - [allItems, filterDialogs, resetFilter] + [allItems, filterDialogs, resetFilter], ); const handleItemClick = useCallback( @@ -242,7 +242,7 @@ export const SelectDialogMenu: React.FC = (props) => { setDialogItems(allItems); onChange(item); }, - [allItems] + [allItems], ); return ( diff --git a/Composer/packages/ui-plugins/select-dialog/src/__tests__/DialogOptions.test.tsx b/Composer/packages/ui-plugins/select-dialog/src/__tests__/DialogOptions.test.tsx index 8bfa906cd2..4fb4107406 100644 --- a/Composer/packages/ui-plugins/select-dialog/src/__tests__/DialogOptions.test.tsx +++ b/Composer/packages/ui-plugins/select-dialog/src/__tests__/DialogOptions.test.tsx @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-nocheck import React from 'react'; @@ -91,7 +92,7 @@ const renderDialogOptionsField = ({ value } = {}) => { return render( - + , ); }; diff --git a/Composer/packages/ui-plugins/select-dialog/src/__tests__/selectDialog.test.tsx b/Composer/packages/ui-plugins/select-dialog/src/__tests__/selectDialog.test.tsx index 1d16685874..75f51b29ae 100644 --- a/Composer/packages/ui-plugins/select-dialog/src/__tests__/selectDialog.test.tsx +++ b/Composer/packages/ui-plugins/select-dialog/src/__tests__/selectDialog.test.tsx @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-nocheck import React from 'react'; @@ -36,7 +37,7 @@ const renderSelectDialog = ({ createDialog, navTo, onChange } = {}) => { return render( - + , ); }; diff --git a/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SelectSkillDialog.test.tsx b/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SelectSkillDialog.test.tsx index 5c5c1d4347..6fbd1a262c 100644 --- a/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SelectSkillDialog.test.tsx +++ b/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SelectSkillDialog.test.tsx @@ -26,7 +26,7 @@ const renderSelectSkillDialog = ({ onChange = jest.fn() } = {}) => { return render( - + , ); }; diff --git a/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SkillEndpointField.test.tsx b/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SkillEndpointField.test.tsx index 1cd94bf048..c9b1520d0d 100644 --- a/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SkillEndpointField.test.tsx +++ b/Composer/packages/ui-plugins/select-skill-dialog/src/__tests__/SkillEndpointField.test.tsx @@ -30,7 +30,7 @@ const renderSkillEndpointField = ({ value = {}, updateSkill = jest.fn() } = {}) return render( - + , ); }; @@ -61,7 +61,7 @@ describe('Begin Skill Dialog', () => { expect.objectContaining({ selectedEndpointIndex: 1, skill: selectedSkill, - }) + }), ); }); @@ -91,7 +91,7 @@ describe('Begin Skill Dialog', () => { expect.objectContaining({ selectedEndpointIndex: selectedKeyIndex, skill: selectedSkill, - }) + }), ); }); diff --git a/Composer/yarn-berry.lock b/Composer/yarn-berry.lock index b67e042e3b..7add161647 100644 --- a/Composer/yarn-berry.lock +++ b/Composer/yarn-berry.lock @@ -20,30 +20,29 @@ __metadata: linkType: hard "@actions/core@npm:^1.2.0": - version: 1.6.0 - resolution: "@actions/core@npm:1.6.0" + version: 1.10.1 + resolution: "@actions/core@npm:1.10.1" dependencies: - "@actions/http-client": ^1.0.11 - checksum: ac4689b6095110546d771f15388173c5e4ff3f808a9cadca2089df5e92b8c81e8ee32c47a38b7ab9dc9e690bac4be71561a73fec631547dfa57ee9b7ff7dc6d7 + "@actions/http-client": ^2.0.1 + uuid: ^8.3.2 + checksum: 96524c2725e70e3c3176b4e4d93a1358a86f3c5ca777db9a2f65eadfa672f00877db359bf60fffc416c33838ffb4743db93bcc5bf53e76199dd28bf7f7ff8e80 languageName: node linkType: hard -"@actions/http-client@npm:^1.0.11": - version: 1.0.11 - resolution: "@actions/http-client@npm:1.0.11" +"@actions/http-client@npm:^2.0.1": + version: 2.2.1 + resolution: "@actions/http-client@npm:2.2.1" dependencies: - tunnel: 0.0.6 - checksum: 2c72834ec36a121ae95d2cb61fd28234eae2ab265a2aefe857a9eeb788ea77b284ad727ecd3c67fefd1920d5f2800b6c1ba6916b39d44f81f293b4b0020d367c + tunnel: ^0.0.6 + undici: ^5.25.4 + checksum: c51c003cd697289136c0e81c0f9b8e57a9bb1a038dc7c9a91a71c02f4ae5e27ef7d3e305aefa7c815604049209d114c06e9991a5c5eaa055508519329267f962 languageName: node linkType: hard -"@ampproject/remapping@npm:^2.1.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" - dependencies: - "@jridgewell/gen-mapping": ^0.1.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 +"@adobe/css-tools@npm:^4.0.1": + version: 4.3.3 + resolution: "@adobe/css-tools@npm:4.3.3" + checksum: d21f3786b84911fee59c995a146644a85c98692979097b26484ffa9e442fb1a92ccd68ce984e3e7cf8d5933c3560fbc0ad3e3cd1de50b9a723d1c012e793bbcb languageName: node linkType: hard @@ -57,7 +56,7 @@ __metadata: languageName: node linkType: hard -"@apidevtools/json-schema-ref-parser@npm:9.0.9, @apidevtools/json-schema-ref-parser@npm:^9.0.1, @apidevtools/json-schema-ref-parser@npm:^9.0.6": +"@apidevtools/json-schema-ref-parser@npm:9.0.9": version: 9.0.9 resolution: "@apidevtools/json-schema-ref-parser@npm:9.0.9" dependencies: @@ -69,6 +68,18 @@ __metadata: languageName: node linkType: hard +"@apidevtools/json-schema-ref-parser@npm:^9.0.1, @apidevtools/json-schema-ref-parser@npm:^9.0.6": + version: 9.1.2 + resolution: "@apidevtools/json-schema-ref-parser@npm:9.1.2" + dependencies: + "@jsdevtools/ono": ^7.1.3 + "@types/json-schema": ^7.0.6 + call-me-maybe: ^1.0.1 + js-yaml: ^4.1.0 + checksum: 5bd6885db0fd6633879bb4638b7a3aead6b061cb6422083c6be505ee6873be54e3376380df164c73edd8901d4145a9bfe9bc0b008a568fd8b0626b1df96fae8f + languageName: node + linkType: hard + "@apidevtools/openapi-schemas@npm:^2.0.4": version: 2.1.0 resolution: "@apidevtools/openapi-schemas@npm:2.1.0" @@ -99,12 +110,12 @@ __metadata: languageName: node linkType: hard -"@azure/abort-controller@npm:^1.0.0": - version: 1.0.5 - resolution: "@azure/abort-controller@npm:1.0.5" +"@azure/abort-controller@npm:^2.0.0": + version: 2.0.0 + resolution: "@azure/abort-controller@npm:2.0.0" dependencies: tslib: ^2.2.0 - checksum: a9086a46a2cf3f63a627464ef2da7fab3a836bd46af5dc0fb6dde8345dc6177dd29940721d63e918581f3c1c12fa33afa40460fbb6c877329d5e61f5a9fa6277 + checksum: 9eece9e860767fb2845b16cd1f66597bedc023c3078482d082be03ecd59d4a0187b36e30d5ee5346aae9baf9e4320dd2b104e1d612eaffce9825d5c3c9b316f7 languageName: node linkType: hard @@ -189,12 +200,23 @@ __metadata: linkType: hard "@azure/core-auth@npm:^1.1.4": - version: 1.3.2 - resolution: "@azure/core-auth@npm:1.3.2" + version: 1.6.0 + resolution: "@azure/core-auth@npm:1.6.0" + dependencies: + "@azure/abort-controller": ^2.0.0 + "@azure/core-util": ^1.1.0 + tslib: ^2.2.0 + checksum: 1d9c60d9107b3eba25eea7a4ab6d59b7114fada90fe18a3f3438ca9e2621a91a48e8a6f54a41cd5d5edcf455cf377ef74272f846e2bcc7385dd3c2c62db5f21a + languageName: node + linkType: hard + +"@azure/core-util@npm:^1.1.0": + version: 1.7.0 + resolution: "@azure/core-util@npm:1.7.0" dependencies: - "@azure/abort-controller": ^1.0.0 + "@azure/abort-controller": ^2.0.0 tslib: ^2.2.0 - checksum: 8b27de6f8a82a63643524757ef774b1637b0d5c7769b387c73bebeb918717e7193ad1d2413638fb02b28de8199f261c1a902e3d04f75d1ef684af33529d9e98d + checksum: a393c7d64a7738289b14b5d9ec04e48e5db8e8154341024623b68f6cebf5921858bedd6f85e224253edfcf72af70a44877840cf94b348bd5f3d319a8d6e2ce4b languageName: node linkType: hard @@ -253,23 +275,22 @@ __metadata: linkType: hard "@azure/ms-rest-js@npm:^2.0.4, @azure/ms-rest-js@npm:^2.2.0": - version: 2.6.0 - resolution: "@azure/ms-rest-js@npm:2.6.0" + version: 2.7.0 + resolution: "@azure/ms-rest-js@npm:2.7.0" dependencies: "@azure/core-auth": ^1.1.4 abort-controller: ^3.0.0 form-data: ^2.5.0 - node-fetch: ^2.6.0 - tough-cookie: ^3.0.1 + node-fetch: ^2.6.7 tslib: ^1.10.0 tunnel: 0.0.6 uuid: ^8.3.2 - xml2js: ^0.4.19 - checksum: c90a7ae522da590cc9f1d848ec5658a74db6083970666e16e24cfa8cd2e3b06134cac539abc9c372e5360c5445e9547934fcc942ea145b8e912990889627167c + xml2js: ^0.5.0 + checksum: 38434010f3fc54a625f637a7758358d7ce0ad3e55ce9a6c7490bf05bbec8ea75ae95fe80041d2376beb3ef78ee6e55858bd0541477d7a88703246e368cfd59c1 languageName: node linkType: hard -"@babel/cli@npm:7.23.9": +"@babel/cli@npm:7.23.9, @babel/cli@npm:^7.17.6": version: 7.23.9 resolution: "@babel/cli@npm:7.23.9" dependencies: @@ -296,33 +317,6 @@ __metadata: languageName: node linkType: hard -"@babel/cli@npm:^7.17.6": - version: 7.17.10 - resolution: "@babel/cli@npm:7.17.10" - dependencies: - "@jridgewell/trace-mapping": ^0.3.8 - "@nicolo-ribaudo/chokidar-2": 2.1.8-no-fsevents.3 - chokidar: ^3.4.0 - commander: ^4.0.1 - convert-source-map: ^1.1.0 - fs-readdir-recursive: ^1.1.0 - glob: ^7.0.0 - make-dir: ^2.1.0 - slash: ^2.0.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - dependenciesMeta: - "@nicolo-ribaudo/chokidar-2": - optional: true - chokidar: - optional: true - bin: - babel: ./bin/babel.js - babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 66b50a7d60e9366c82301c45346a1639b2a7351d2049ff9c47812093060802711fbb1690243826e09823cf06be5306d608327fa8c8ea2827fd6340923ac827a0 - languageName: node - linkType: hard - "@babel/code-frame@npm:7.5.5": version: 7.5.5 resolution: "@babel/code-frame@npm:7.5.5" @@ -332,25 +326,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/code-frame@npm:7.16.7" - dependencies: - "@babel/highlight": ^7.16.7 - checksum: db2f7faa31bc2c9cf63197b481b30ea57147a5fc1a6fab60e5d6c02cdfbf6de8e17b5121f99917b3dabb5eeb572da078312e70697415940383efc140d4e0808b - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" - dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.23.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -360,21 +336,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.16.4, @babel/compat-data@npm:^7.16.8": - version: 7.16.8 - resolution: "@babel/compat-data@npm:7.16.8" - checksum: 10da2dac5ea9589c251412b00920889910e476c1ab24cd7095577635bc3a27c785151c89db4e26285fd39f509510ec29ab9d7e721f4fc16e4aec221cacde784b - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.17.0, @babel/compat-data@npm:^7.17.10": - version: 7.17.10 - resolution: "@babel/compat-data@npm:7.17.10" - checksum: e85051087cd4690de5061909a2dd2d7f8b6434a3c2e30be6c119758db2027ae1845bcd75a81127423dd568b706ac6994a1a3d7d701069a23bf5cfe900728290b - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 @@ -403,7 +365,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.24.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.23.9": +"@babel/core@npm:7.24.0, @babel/core@npm:^7.0.0, @babel/core@npm:^7.1.6, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.17.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.4.5": version: 7.24.0 resolution: "@babel/core@npm:7.24.0" dependencies: @@ -426,86 +388,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.0.0, @babel/core@npm:^7.1.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.4.5": - version: 7.16.10 - resolution: "@babel/core@npm:7.16.10" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.16.8 - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helpers": ^7.16.7 - "@babel/parser": ^7.16.10 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.10 - "@babel/types": ^7.16.8 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.1.2 - semver: ^6.3.0 - source-map: ^0.5.0 - checksum: d34c5edf9258e620d0cbea4ed25a2615f5ab86dc7f7c1b96ac19817fb7d57bfae9af72dc244385a724225dbc701cb878d9559158aee9659e2a3c69d03f93f3e1 - languageName: node - linkType: hard - -"@babel/core@npm:^7.17.5": - version: 7.17.10 - resolution: "@babel/core@npm:7.17.10" - dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.17.10 - "@babel/helper-compilation-targets": ^7.17.10 - "@babel/helper-module-transforms": ^7.17.7 - "@babel/helpers": ^7.17.9 - "@babel/parser": ^7.17.10 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.17.10 - "@babel/types": ^7.17.10 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.1 - semver: ^6.3.0 - checksum: 2545fb24b4090c1e9ead0daad4713ae6fe779df0843e6e286509146f4dd09958bd067d80995f2cc09fdb01fd0dc936f42cdd6f70b3d058de48e124cd9a3cc93e - languageName: node - linkType: hard - -"@babel/generator@npm:^7.16.8, @babel/generator@npm:^7.2.2, @babel/generator@npm:^7.7.2": - version: 7.16.8 - resolution: "@babel/generator@npm:7.16.8" - dependencies: - "@babel/types": ^7.16.8 - jsesc: ^2.5.1 - source-map: ^0.5.0 - checksum: 83af38b34735605c9d5f774c87a46c2cffaf666b28e9eeba883b2d7076412257e5c2264c26d9740ce44da6955fdaf857659391db02c012714a2a6dc19e403105 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.17.10": - version: 7.17.10 - resolution: "@babel/generator@npm:7.17.10" - dependencies: - "@babel/types": ^7.17.10 - "@jridgewell/gen-mapping": ^0.1.0 - jsesc: ^2.5.1 - checksum: 9ec596a6ffec7bec239133a4ba79d4f834e6c894019accb1c70a7a5affbec9d0912d3baef200edd9d48e553d4ef72abcbffbc73cfb7d75f327c24186e887f79c - languageName: node - linkType: hard - -"@babel/generator@npm:^7.18.6": - version: 7.18.7 - resolution: "@babel/generator@npm:7.18.7" - dependencies: - "@babel/types": ^7.18.7 - "@jridgewell/gen-mapping": ^0.3.2 - jsesc: ^2.5.1 - checksum: aad4b6873130165e9483af2888bce5a3a5ad9cca0757fc90ae11a0396757d0b295a3bff49282c8df8ab01b31972cc855ae88fd9ddc9ab00d9427dc0e01caeea9 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.6": +"@babel/generator@npm:^7.2.2, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" dependencies: @@ -517,25 +400,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.0.0, @babel/helper-annotate-as-pure@npm:^7.16.0, @babel/helper-annotate-as-pure@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: d235be963fed5d48a8a4cfabc41c3f03fad6a947810dbcab9cebed7f819811457e10d99b4b2e942ad71baa7ee8e3cd3f5f38a4e4685639ddfddb7528d9a07179 - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.22.5": +"@babel/helper-annotate-as-pure@npm:^7.0.0, @babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" dependencies: @@ -544,16 +409,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.16.7" - dependencies: - "@babel/helper-explode-assignable-expression": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 1784f19a57ecfafca8e5c2e0f3eac53451cb13a857cbe0ca0cd9670922228d099ef8c3dd8cd318e2d7bce316fdb2ece3e527c30f3ecd83706e37ab6beb0c60eb - languageName: node - linkType: hard - "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" @@ -563,35 +418,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-compilation-targets@npm:7.16.7" - dependencies: - "@babel/compat-data": ^7.16.4 - "@babel/helper-validator-option": ^7.16.7 - browserslist: ^4.17.5 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 7238aaee78c011a42fb5ca92e5eff098752f7b314c2111d7bb9cdd58792fcab1b9c819b59f6a0851dc210dc09dc06b30d130a23982753e70eb3111bc65204842 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.17.10": - version: 7.17.10 - resolution: "@babel/helper-compilation-targets@npm:7.17.10" - dependencies: - "@babel/compat-data": ^7.17.10 - "@babel/helper-validator-option": ^7.16.7 - browserslist: ^4.20.2 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 5f547c7ebd372e90fa72c2aaea867e7193166e9f469dec5acde4f0e18a78b80bdca8e02a0f641f3e998be984fb5b802c729a9034faaee8b1a9ef6670cb76f120 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -604,58 +431,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.16.10, @babel/helper-create-class-features-plugin@npm:^7.16.7, @babel/helper-create-class-features-plugin@npm:^7.3.0": - version: 7.16.10 - resolution: "@babel/helper-create-class-features-plugin@npm:7.16.10" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-function-name": ^7.16.7 - "@babel/helper-member-expression-to-functions": ^7.16.7 - "@babel/helper-optimise-call-expression": ^7.16.7 - "@babel/helper-replace-supers": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2ab266aac7f94403311f63a17d32abb718ff040339bcae19880091de3fdb4e8d7196cb4e680f01a92924eb1a00a143364456e452c511c0b7b6e0b1a4b0e696da - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.17.6": - version: 7.17.9 - resolution: "@babel/helper-create-class-features-plugin@npm:7.17.9" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-function-name": ^7.17.9 - "@babel/helper-member-expression-to-functions": ^7.17.7 - "@babel/helper-optimise-call-expression": ^7.16.7 - "@babel/helper-replace-supers": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: db7be8852096084883dbbd096f925976695e5b34919a888fded9fd359d75d9994960e459f4eeb51ff6700109f83be6c1359e57809deb3fe36fc589b2a208b6d7 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-create-class-features-plugin@npm:7.18.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.6 - "@babel/helper-function-name": ^7.18.6 - "@babel/helper-member-expression-to-functions": ^7.18.6 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-replace-supers": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 4d6da441ce329867338825c044c143f0b273cbfc6a20b9099e824a46f916584f44eabab073f78f02047d86719913e8f1a8bd72f42099ebe52691c29fabb992e4 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6, @babel/helper-create-class-features-plugin@npm:^7.3.0": version: 7.24.0 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.0" dependencies: @@ -674,43 +450,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.16.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - regexpu-core: ^4.7.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: f6015e0b81deddcbf09fde6c39d3acd55aa3ad45cbf04dae5e2ce2432cd5a63c4a0fa67eaeaa13c6cc526e7618234b9d252c924a5c99a01e6ce8ae882d485f38 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.17.0": - version: 7.17.0 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.17.0" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - regexpu-core: ^5.0.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: eb66d9241544c705e9ce96d2d122b595ef52d926e6e031653e09af8a01050bd9d7e7fee168bf33a863342774d7d6a8cc7e8e9e5a45b955e9c01121c7a2d51708 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.18.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - regexpu-core: ^5.1.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2d76e660cbfd0bfcb01ca9f177f0e9091c871a6b99f68ece6bcf4ab4a9df073485bdc2d87ecdfbde44b7f3723b26d13085d0f92082adb3ae80d31b246099f10a - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: @@ -724,30 +464,12 @@ __metadata: linkType: hard "@babel/helper-define-map@npm:^7.1.0": - version: 7.16.7 - resolution: "@babel/helper-define-map@npm:7.16.7" - dependencies: - "@babel/helper-function-name": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 9a554324187dbbf5ef339e333b6bbf8fcb5859b5edf2bd4aabf6c694f375b5f7d23a30be8878326880679b2a37b9f869ef2e3774991aac2a2f5920ced814a5b9 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.3.1": - version: 0.3.1 - resolution: "@babel/helper-define-polyfill-provider@npm:0.3.1" + version: 7.18.6 + resolution: "@babel/helper-define-map@npm:7.18.6" dependencies: - "@babel/helper-compilation-targets": ^7.13.0 - "@babel/helper-module-imports": ^7.12.13 - "@babel/helper-plugin-utils": ^7.13.0 - "@babel/traverse": ^7.13.0 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - semver: ^6.1.2 - peerDependencies: - "@babel/core": ^7.4.0-0 - checksum: e3e93cb22febfc0449a210cdafb278e5e1a038af2ca2b02f5dee71c7a49e8ba26e469d631ee11a4243885961a62bb2e5b0a4deb3ec1d7918a33c953d05c3e584 + "@babel/helper-function-name": ^7.18.6 + "@babel/types": ^7.18.6 + checksum: b3367203c3e3fe60f611de4257a7c793dd9987fa1da63716b69d5f2175113242ee1acf839889ce369fb1fd6cd9ac99bea98cdbf2fb0b84be055b2c75f290d843 languageName: node linkType: hard @@ -766,70 +488,29 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-environment-visitor@npm:7.16.7" +"@babel/helper-define-polyfill-provider@npm:^0.6.1": + version: 0.6.1 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" dependencies: - "@babel/types": ^7.16.7 - checksum: c03a10105d9ebd1fe632a77356b2e6e2f3c44edba9a93b0dc3591b6a66bd7a2e323dd9502f9ce96fc6401234abff1907aa877b6674f7826b61c953f7c8204bbe - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-environment-visitor@npm:7.18.6" - checksum: 64fce65a26efb50d2496061ab2de669dc4c42175a8e05c82279497127e5c542538ed22b38194f6f5a4e86bed6ef5a4890aed23408480db0555728b4ca660fc9c + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b45deb37ce1342d862422e81a3d25ff55f9c7ca52fe303405641e2add8db754091aaaa2119047a0f0b85072221fbddaa92adf53104274661d2795783b56bea2c languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20": +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 languageName: node linkType: hard -"@babel/helper-explode-assignable-expression@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-explode-assignable-expression@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: ea2135ba36da6a2be059ebc8f10fbbb291eb0e312da54c55c6f50f9cbd8601e2406ec497c5e985f7c07a97f31b3bef9b2be8df53f1d53b974043eaf74fe54bbc - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.1.0, @babel/helper-function-name@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-function-name@npm:7.16.7" - dependencies: - "@babel/helper-get-function-arity": ^7.16.7 - "@babel/template": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: fc77cbe7b10cfa2a262d7a37dca575c037f20419dfe0c5d9317f589599ca24beb5f5c1057748011159149eaec47fe32338c6c6412376fcded68200df470161e1 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.17.9": - version: 7.17.9 - resolution: "@babel/helper-function-name@npm:7.17.9" - dependencies: - "@babel/template": ^7.16.7 - "@babel/types": ^7.17.0 - checksum: a59b2e5af56d8f43b9b0019939a43774754beb7cb01a211809ca8031c71890999d07739e955343135ec566c4d8ff725435f1f60fb0af3bb546837c1f9f84f496 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-function-name@npm:7.18.6" - dependencies: - "@babel/template": ^7.18.6 - "@babel/types": ^7.18.6 - checksum: bf84c2e0699aa07c3559d4262d199d4a9d0320037c2932efe3246866c3e01ce042c9c2131b5db32ba2409a9af01fb468171052819af759babc8ca93bdc6c9aeb - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": +"@babel/helper-function-name@npm:^7.1.0, @babel/helper-function-name@npm:^7.18.6, @babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: @@ -839,33 +520,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-get-function-arity@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-get-function-arity@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 25d969fb207ff2ad5f57a90d118f6c42d56a0171022e200aaa919ba7dc95ae7f92ec71cdea6c63ef3629a0dc962ab4c78e09ca2b437185ab44539193f796e0c3 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-hoist-variables@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 6ae1641f4a751cd9045346e3f61c3d9ec1312fd779ab6d6fecfe2a96e59a481ad5d7e40d2a840894c13b3fd6114345b157f9e3062fc5f1580f284636e722de60 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f - languageName: node - linkType: hard - "@babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" @@ -875,33 +529,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: e275378022278a7e7974a3f65566690f1804ac88c5f4e848725cf936f61cd1e2557e88cfb6cb4fea92ae5a95ad89d78dbccc9a53715d4363f84c9fd109272c18 - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.17.7": - version: 7.17.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.17.7" - dependencies: - "@babel/types": ^7.17.0 - checksum: 70f361bab627396c714c3938e94a569cb0da522179328477cdbc4318e4003c2666387ad4931d6bd5de103338c667c9e4bbe3e917fc8c527b3f3eb6175b888b7d - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-member-expression-to-functions@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: 20c8e82d2375534dfe4d4adeb01d94906e5e616143bb2775e9f1d858039d87a0f79220e0a5c2ed410c54ccdeda47a4c09609b396db1f98fe8ce9e420894ac2f3 - languageName: node - linkType: hard - "@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" @@ -911,16 +538,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.16.0, @babel/helper-module-imports@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-module-imports@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.22.15": +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: @@ -929,38 +547,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-module-transforms@npm:7.16.7" - dependencies: - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-simple-access": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/helper-validator-identifier": ^7.16.7 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 6e930ce776c979f299cdbeaf80187f4ab086d75287b96ecc1c6896d392fcb561065f0d6219fc06fa79b4ceb4bbdc1a9847da8099aba9b077d0a9e583500fb673 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.17.7": - version: 7.17.7 - resolution: "@babel/helper-module-transforms@npm:7.17.7" - dependencies: - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-simple-access": ^7.17.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/helper-validator-identifier": ^7.16.7 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.17.3 - "@babel/types": ^7.17.0 - checksum: 0b8f023aa7ff82dc4864349d54c4557865ad8ba54d78f6d78a86b05ca40f65c2d60acb4a54c5c309e7a4356beb9a89b876e54af4b3c4801ad25f62ec3721f0ae - languageName: node - linkType: hard - "@babel/helper-module-transforms@npm:^7.23.3": version: 7.23.3 resolution: "@babel/helper-module-transforms@npm:7.23.3" @@ -976,25 +562,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.0.0, @babel/helper-optimise-call-expression@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 925feb877d5a30a71db56e2be498b3abbd513831311c0188850896c4c1ada865eea795dce5251a1539b0f883ef82493f057f84286dd01abccc4736acfafe15ea - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: e518fe8418571405e21644cfb39cf694f30b6c47b10b006609a92469ae8b8775cbff56f0b19732343e2ea910641091c5a2dc73b56ceba04e116a33b0f8bd2fbd - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.22.5": +"@babel/helper-optimise-call-expression@npm:^7.0.0, @babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" dependencies: @@ -1003,39 +571,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.13.0, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.16.7 - resolution: "@babel/helper-plugin-utils@npm:7.16.7" - checksum: d08dd86554a186c2538547cd537552e4029f704994a9201d41d82015c10ed7f58f9036e8d1527c3760f042409163269d308b0b3706589039c5f1884619c6d4ce - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-plugin-utils@npm:7.18.6" - checksum: 3dbfceb6c10fdf6c78a0e57f24e991ff8967b8a0bd45fe0314fb4a8ccf7c8ad4c3778c319a32286e7b1f63d507173df56b4e69fb31b71e1b447a73efa1ca723e - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.24.0 resolution: "@babel/helper-plugin-utils@npm:7.24.0" checksum: e2baa0eede34d2fa2265947042aa84d444aa48dc51e9feedea55b67fc1bc3ab051387e18b33ca7748285a6061390831ab82f8a2c767d08470b93500ec727e9b9 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.16.8": - version: 7.16.8 - resolution: "@babel/helper-remap-async-to-generator@npm:7.16.8" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-wrap-function": ^7.16.8 - "@babel/types": ^7.16.8 - checksum: 29282ee36872130085ca111539725abbf20210c2a1d674bee77f338a57c093c3154108d03a275f602e471f583bd2c7ae10d05534f87cbc22b95524fe2b569488 - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.22.20": +"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: @@ -1048,33 +591,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.1.0, @babel/helper-replace-supers@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-replace-supers@npm:7.16.7" - dependencies: - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-member-expression-to-functions": ^7.16.7 - "@babel/helper-optimise-call-expression": ^7.16.7 - "@babel/traverse": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: e5c0b6eb3dad8410a6255f93b580dde9b3c1564646c6ef751de59d5b2a65b5caa80cc9e568155f04bbae895ad0f54305c2e833dbd971a4f641f970c90b3d892b - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-replace-supers@npm:7.18.6" - dependencies: - "@babel/helper-environment-visitor": ^7.18.6 - "@babel/helper-member-expression-to-functions": ^7.18.6 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/traverse": ^7.18.6 - "@babel/types": ^7.18.6 - checksum: 48e869dc8d3569136d239cd6354687e49c3225b114cb2141ed3a5f31cff5278f463eb25913df3345489061f377ad5d6e49778bddedd098fa8ee3adcec07cc1d3 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.22.20": +"@babel/helper-replace-supers@npm:^7.1.0, @babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: @@ -1087,24 +604,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-simple-access@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 8d22c46c5ec2ead0686c4d5a3d1d12b5190c59be676bfe0d9d89df62b437b51d1a3df2ccfb8a77dded2e585176ebf12986accb6d45a18cff229eef3b10344f4b - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.17.7": - version: 7.17.7 - resolution: "@babel/helper-simple-access@npm:7.17.7" - dependencies: - "@babel/types": ^7.17.0 - checksum: 58a9bfd054720024f6ff47fbb113c96061dc2bd31a5e5285756bd3c2e83918c6926900e00150d0fb175d899494fe7d69bf2a8b278c32ef6f6bea8d032e6a3831 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -1114,15 +613,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.16.0": - version: 7.16.0 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.16.0" - dependencies: - "@babel/types": ^7.16.0 - checksum: b9ed2896eb253e6a85f472b0d4098ed80403758ad1a4e34b02b11e8276e3083297526758b1a3e6886e292987266f10622d7dbced3508cc22b296a74903b41cfb - languageName: node - linkType: hard - "@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" @@ -1132,25 +622,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.0.0, @babel/helper-split-export-declaration@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-split-export-declaration@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: e10aaf135465c55114627951b79115f24bc7af72ecbb58d541d66daf1edaee5dde7cae3ec8c3639afaf74526c03ae3ce723444e3b5b3dc77140c456cd84bcaa1 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.6": +"@babel/helper-split-export-declaration@npm:^7.0.0, @babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" dependencies: @@ -1166,20 +638,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-validator-identifier@npm:7.16.7" - checksum: dbb3db9d184343152520a209b5684f5e0ed416109cde82b428ca9c759c29b10c7450657785a8b5c5256aa74acc6da491c1f0cf6b784939f7931ef82982051b69 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-identifier@npm:7.18.6" - checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648 - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -1187,13 +645,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-validator-option@npm:7.16.7" - checksum: c5ccc451911883cc9f12125d47be69434f28094475c1b9d2ada7c3452e6ac98a1ee8ddd364ca9e3f9855fcdee96cdeafa32543ebd9d17fee7a1062c202e80570 - languageName: node - linkType: hard - "@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -1201,18 +652,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.16.8": - version: 7.16.8 - resolution: "@babel/helper-wrap-function@npm:7.16.8" - dependencies: - "@babel/helper-function-name": ^7.16.7 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.8 - "@babel/types": ^7.16.8 - checksum: d8aae4bacaf138d47dca1421ba82b41eac954cbb0ad17ab1c782825c6f2afe20076fbed926ab265967758336de5112d193a363128cd1c6967c66e0151174f797 - languageName: node - linkType: hard - "@babel/helper-wrap-function@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-wrap-function@npm:7.22.20" @@ -1224,29 +663,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.16.7, @babel/helpers@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/helpers@npm:7.16.7" - dependencies: - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 75504c76b66a29b91f954fcc0867dfe275a4cfba5b44df6d64405df74ea72f967fccfa63d62c31c423c5502d113290000c581e0e4858a214f0303d7ecf55c29f - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.17.9": - version: 7.17.9 - resolution: "@babel/helpers@npm:7.17.9" - dependencies: - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.17.9 - "@babel/types": ^7.17.0 - checksum: 3c6db861e4c82fff2de3efb4ad12e32658c50c29920597cd0979390659b202e5849acd9542e0e2453167a52ccc30156ee4455d64d0e330f020d991d7551566f8 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.24.0": +"@babel/helpers@npm:^7.2.0, @babel/helpers@npm:^7.24.0": version: 7.24.0 resolution: "@babel/helpers@npm:7.24.0" dependencies: @@ -1257,29 +674,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.16.7": - version: 7.16.10 - resolution: "@babel/highlight@npm:7.16.10" - dependencies: - "@babel/helper-validator-identifier": ^7.16.7 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 1f1bdd752a90844f4efc22166a46303fb651ba0fd75a06daba3ebae2575ab3edc1da9827c279872a3aaf305f50a18473c5fa1966752726a2b253065fd4c0745e - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": +"@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" dependencies: @@ -1289,24 +684,13 @@ __metadata: checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 languageName: node linkType: hard - -"@babel/parser@npm:^7.11.3": - version: 7.16.10 - resolution: "@babel/parser@npm:7.16.10" - bin: - parser: ./bin/babel-parser.js - checksum: d760606039de8ab8c68e993b7d3ae461754ef51dbf1fbd88d1428bf37d7e13bfb7205105332f0ac0a55d3534c231da527ab7b2db26e7cef6e0f9c8940a3c91a3 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: bbb0f82a4cf297bdbb9110eea570addd4b883fd1b61535558d849822b087aa340fe4e9c31f8a39b087595c8310b58d0f5548d6be0b72c410abefb23a5734b7bc + +"@babel/parser@npm:^7.11.3": + version: 7.24.0 + resolution: "@babel/parser@npm:7.24.0" + bin: + parser: ./bin/babel-parser.js + checksum: 4a6afec49487a212e7a27345b0c090b56905efb62c0b3a1499b0a57a5b3bf43d9d1e99e31b137080eacc24dee659a29699740d0a6289999117c0d8c5a04bd68f languageName: node linkType: hard @@ -1321,19 +705,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 - "@babel/plugin-proposal-optional-chaining": ^7.16.7 - peerDependencies: - "@babel/core": ^7.13.0 - checksum: 81b372651a7d886a06596b02df7fb65ea90265a8bd60c9f0d5c1777590a598e6cccbdc3239033ee0719abf904813e69577eeb0ed5960b40e07978df023b17a6a - languageName: node - linkType: hard - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" @@ -1359,16 +730,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.16.8, @babel/plugin-proposal-async-generator-functions@npm:^7.2.0": - version: 7.16.8 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.16.8" +"@babel/plugin-proposal-async-generator-functions@npm:^7.2.0": + version: 7.20.7 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-remap-async-to-generator": ^7.16.8 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-remap-async-to-generator": ^7.18.9 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: abd2c2c67de262720d37c5509dafe2ce64d6cee2dc9a8e863bbba1796b77387214442f37618373c6a4521ca624bfc7dcdbeb1376300d16f2a474405ee0ca2e69 + checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723 languageName: node linkType: hard @@ -1396,44 +768,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-class-properties@npm:7.16.7" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3977e841e17b45b47be749b9a5b67b9e8b25ff0840f9fdad3f00cbcb35db4f5ff15f074939fe19b01207a29688c432cc2c682351959350834d62920b7881f803 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-static-block@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.16.7" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: 3b95b5137e089f0be17de667299ea2e28867b6310ab94219a5a89ac7675824e69f316d31930586142b9f432122ef3b98eb05fffdffae01b5587019ce9aab4ef3 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-static-block@npm:^7.17.6": - version: 7.17.6 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.17.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.17.6 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: 0ef00d73b4a7667059f71614669fb5ec989a0a6d5fe58118310c892507f2556a6f3ae66f0c547cd06e50bdf3ff528ef486e611079d41ef321300c967d2c26e1d - languageName: node - linkType: hard - "@babel/plugin-proposal-decorators@npm:7.3.0": version: 7.3.0 resolution: "@babel/plugin-proposal-decorators@npm:7.3.0" @@ -1447,75 +781,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-dynamic-import@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-dynamic-import@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5992012484fb8bda1451369350e475091954ed414dd9ef8654a3c4daa2db0205d4f29c94f5d3dedfbc5a434996375c8304586904337d6af938ac0f27a0033e23 - languageName: node - linkType: hard - -"@babel/plugin-proposal-export-namespace-from@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5016079a5305c1c130fea587b42cdce501574739cfefa5b63469dbc1f32d436df0ff42fabf04089fe8b6a00f4ea7563869e944744b457e186c677995983cb166 - languageName: node - linkType: hard - -"@babel/plugin-proposal-json-strings@npm:^7.16.7, @babel/plugin-proposal-json-strings@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-proposal-json-strings@npm:7.16.7" +"@babel/plugin-proposal-json-strings@npm:^7.2.0": + version: 7.18.6 + resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-plugin-utils": ^7.18.6 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ea6487918f8d88322ac2a4e5273be6163b0d84a34330c31cee346e23525299de3b4f753bc987951300a79f55b8f4b1971b24d04c0cdfcb7ceb4d636975c215e8 - languageName: node - linkType: hard - -"@babel/plugin-proposal-logical-assignment-operators@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c4cf18e10f900d40eaa471c4adce4805e67bd845f997a4b9d5653eced4e653187b9950843b2bf7eab6c0c3e753aba222b1d38888e3e14e013f87295c5b014f19 - languageName: node - linkType: hard - -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bfafc2701697b5c763dbbb65dd97b56979bfb0922e35be27733699a837aeff22316313ddfdd0fb45129efa3f86617219b77110d05338bc4dca4385d8ce83dd19 - languageName: node - linkType: hard - -"@babel/plugin-proposal-numeric-separator@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8e2fb0b32845908c67f80bc637a0968e28a66727d7ffb22b9c801dc355d88e865dc24aec586b00c922c23833ae5d26301b443b53609ea73d8344733cd48a1eca + checksum: 25ba0e6b9d6115174f51f7c6787e96214c90dd4026e266976b248a2ed417fe50fddae72843ffb3cbe324014a18632ce5648dfac77f089da858022b49fd608cb3 languageName: node linkType: hard @@ -1531,70 +805,30 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-object-rest-spread@npm:^7.16.7, @babel/plugin-proposal-object-rest-spread@npm:^7.3.1": - version: 7.16.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.16.7" - dependencies: - "@babel/compat-data": ^7.16.4 - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2d3740e4df6d3f51d57862100c45c000104571aa98b7f798fdfc05ae0c12b9e7cc9b55f4a28612d626e29f3369a1481a0ee8a0241b23508b9d3da00c55f99d41 - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.17.3": - version: 7.17.3 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.17.3" +"@babel/plugin-proposal-object-rest-spread@npm:^7.3.1": + version: 7.20.7 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" dependencies: - "@babel/compat-data": ^7.17.0 - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/compat-data": ^7.20.5 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-plugin-utils": ^7.20.2 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.16.7 + "@babel/plugin-transform-parameters": ^7.20.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 02810f158db4aaf6883131621b5d2c7d901ea3c034df2c2b78663f8b26813795d78a346c37e56770a720c54773732fd1d7fe40947dbf11d1d8de0e9a38e856d3 + checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 languageName: node linkType: hard -"@babel/plugin-proposal-optional-catch-binding@npm:^7.16.7, @babel/plugin-proposal-optional-catch-binding@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.16.7" +"@babel/plugin-proposal-optional-catch-binding@npm:^7.2.0": + version: 7.18.6 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-plugin-utils": ^7.18.6 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4a422bb19a23cf80a245c60bea7adbe5dac8ff3bc1a62f05d7155e1eb68d401b13339c94dfd1f3d272972feeb45746f30d52ca0f8d5c63edf6891340878403df - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-chaining@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e4a6c1ac7e6817b92a673ea52ab0b7dc1fb39d29fb0820cd414e10ae2cd132bd186b4238dcca881a29fc38fe9d38ed24fc111ba22ca20086481682d343f4f130 - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-methods@npm:^7.16.11": - version: 7.16.11 - resolution: "@babel/plugin-proposal-private-methods@npm:7.16.11" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.16.10 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b333e5aa91c265bb394a57b5f4ae1a34fc8ee73a8d75506b12df258d8b5342107cbd9261f95e606bd3264a5b023db77f1f95be30c2e526683916c57f793f7943 + checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e languageName: node linkType: hard @@ -1607,29 +841,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.16.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-create-class-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 666d668f51d8c01aaf0dd87b27a83fc0392884d2c8e9d8e17b3b7011c0d348865dee94b44dc2d7070726e58e3b579728dc2588aaa8140d563f7390743ee90f0a - languageName: node - linkType: hard - -"@babel/plugin-proposal-unicode-property-regex@npm:^7.16.7, @babel/plugin-proposal-unicode-property-regex@npm:^7.2.0, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.16.7 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.16.7" +"@babel/plugin-proposal-unicode-property-regex@npm:^7.2.0": + version: 7.18.6 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2b8a33713d456183f0b7d011011e7bd932c08cc06216399a7b2015ab39284b511993dc10a89bbb15d1d728e6a2ef42ca08c3202619aa148cbd48052422ea3995 + checksum: a8575ecb7ff24bf6c6e94808d5c84bb5a0c6dd7892b54f09f4646711ba0ee1e1668032b3c43e3e1dfec2c5716c302e851ac756c1645e15882d73df6ad21ae951 languageName: node linkType: hard @@ -1678,13 +898,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-decorators@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-syntax-decorators@npm:7.16.7" + version: 7.24.0 + resolution: "@babel/plugin-syntax-decorators@npm:7.24.0" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4c8dacd8b612d24638394bc86df7f89f92f8a21e5c450be983f754003ffe72d70aebdb81456232df5ec2fc7ff4f7415489bc1f577a28c072c336fc4f9114b82a + checksum: 02f43a1a9b8295a42aa2ab394c3a17b200010b7813dd5411162588d7a9e23622b18f52570fd1abce6639501e15431a1f96275487e2c2e3ba511a2d621e64c905 languageName: node linkType: hard @@ -1722,13 +942,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-flow@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-syntax-flow@npm:7.16.7" + version: 7.23.3 + resolution: "@babel/plugin-syntax-flow@npm:7.23.3" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b1ab0bd9b78e4aa5fb48714d6514f3d08d72693807c6044a5be4f301a9bb677b5648fbdae11c8bc93923da6b320a1898560c307933021bdb75ee39e577ed74ee + checksum: c6e6f355d6ace5f4a9e7bb19f1fed2398aeb9b62c4c671a189d81b124f9f5bb77c4225b6e85e19339268c60a021c1e49104e450375de5e6bb70612190d9678af languageName: node linkType: hard @@ -1776,29 +996,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.12.13, @babel/plugin-syntax-jsx@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cd9b0e53c50e8ddb0afaf0f42e0b221a94e4f59aee32a591364266a31195c48cac5fef288d02c1c935686bda982d2e0f1ed61cceb995fc9f6fb09ef5ebecdd2b - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.17.12": - version: 7.18.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": +"@babel/plugin-syntax-jsx@npm:^7.17.12, @babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" dependencies: @@ -1897,18 +1095,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.16.7, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.16.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 661e636060609ede9a402e22603b01784c21fabb0a637e65f561c8159351fe0130bbc11fdefe31902107885e3332fc34d95eb652ac61d3f61f2d61f5da20609e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.23.3": +"@babel/plugin-syntax-typescript@npm:^7.23.3, @babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" dependencies: @@ -1931,18 +1118,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.16.7, @babel/plugin-transform-arrow-functions@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2a6aa982c6fc80f4de7ccd973507ce5464fab129987cb6661136a7b9b6a020c2b329b912cbc46a68d39b5a18451ba833dcc8d1ca8d615597fec98624ac2add54 - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.23.3": +"@babel/plugin-transform-arrow-functions@npm:^7.2.0, @babel/plugin-transform-arrow-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" dependencies: @@ -1967,20 +1143,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.16.8, @babel/plugin-transform-async-to-generator@npm:^7.2.0": - version: 7.16.8 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.16.8" - dependencies: - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-remap-async-to-generator": ^7.16.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a2e781800e3dea1f526324ed259d1f9064c5ea3c9909c0c22b445d4c648ad489c579f358ae20ada11f7725ba67e0ddeb1e0241efadc734771e87dabd4c6820a - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.23.3": +"@babel/plugin-transform-async-to-generator@npm:^7.2.0, @babel/plugin-transform-async-to-generator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" dependencies: @@ -1993,18 +1156,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.16.7, @babel/plugin-transform-block-scoped-functions@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 591e9f75437bb32ebf9506d28d5c9659c66c0e8e0c19b12924d808d898e68309050aadb783ccd70bb4956555067326ecfa17a402bc77eb3ece3c6863d40b9016 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": +"@babel/plugin-transform-block-scoped-functions@npm:^7.2.0, @babel/plugin-transform-block-scoped-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" dependencies: @@ -2015,18 +1167,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.16.7, @babel/plugin-transform-block-scoping@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f93b5441af573fc274655f1707aeb4f67a43e926b58f56d89cc35a27877ae0bf198648603cbc19f442579489138f93c3838905895f109aa356996dbc3ed97a68 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.23.4": +"@babel/plugin-transform-block-scoping@npm:^7.2.0, @babel/plugin-transform-block-scoping@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: @@ -2080,25 +1221,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.16.7, @babel/plugin-transform-classes@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-classes@npm:7.16.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-function-name": ^7.16.7 - "@babel/helper-optimise-call-expression": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-replace-supers": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - globals: ^11.1.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 791526a1bf3c4659b94d619536e3181d3ad54887d50539066628c6e695789a3bb264dc1fbc8540169d62a222f623df54defb490c1811ae63bad1e3557d6b3bb0 - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.23.8": +"@babel/plugin-transform-classes@npm:^7.2.0, @babel/plugin-transform-classes@npm:^7.23.8": version: 7.23.8 resolution: "@babel/plugin-transform-classes@npm:7.23.8" dependencies: @@ -2116,18 +1239,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.16.7, @babel/plugin-transform-computed-properties@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 28b17f7cfe643f45920b76dc040cab40d4e54eccf5074fba2658c484feacda9b4885b3854ffaf26292189783fdecc97211519c61831b6708fcbf739cfbcbf31c - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.23.3": +"@babel/plugin-transform-computed-properties@npm:^7.2.0, @babel/plugin-transform-computed-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" dependencies: @@ -2150,29 +1262,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.16.7, @babel/plugin-transform-destructuring@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d1c2e15e7be2a7c57ac8ec4df06fbb706c7ecc872ab7bc2193606e6d6a01929b6d5a1bb41540e41180e42a5ce0e70dce22e7896cb6578dd581d554f77780971b - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.17.7": - version: 7.17.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.17.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 767ecf6640fea9a06a4859f0c34daa30ac7d146a96476caa1f77081d5b6e43699f45e14acd52682078f2b7c230ff0814312b41f61b21ca2b5f9c5a2cc93c2b58 - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.23.3": +"@babel/plugin-transform-destructuring@npm:^7.2.0, @babel/plugin-transform-destructuring@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" dependencies: @@ -2183,19 +1273,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.16.7, @babel/plugin-transform-dotall-regex@npm:^7.2.0, @babel/plugin-transform-dotall-regex@npm:^7.4.4": - version: 7.16.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.16.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 554570dddfd5bfd87ab307be520f69a3d4ed2d2db677c165971b400d4c96656d0c165b318e69f1735612dcd12e04c0ee257697dc26800e8a572ca73bc05fa0f4 - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.23.3": +"@babel/plugin-transform-dotall-regex@npm:^7.2.0, @babel/plugin-transform-dotall-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" dependencies: @@ -2207,18 +1285,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.16.7, @babel/plugin-transform-duplicate-keys@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b96f6e9f7b33a91ad0eb6b793e4da58b7a0108b58269109f391d57078d26e043b3872c95429b491894ae6400e72e44d9b744c9b112b8433c99e6969b767e30ed - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": +"@babel/plugin-transform-duplicate-keys@npm:^7.2.0, @babel/plugin-transform-duplicate-keys@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" dependencies: @@ -2241,19 +1308,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.16.7, @babel/plugin-transform-exponentiation-operator@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.16.7" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8082c79268f5b1552292bd3abbfed838a1131747e62000146e70670707b518602e907bbe3aef0fda824a2eebe995a9d897bd2336a039c5391743df01608673b0 - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": +"@babel/plugin-transform-exponentiation-operator@npm:^7.2.0, @babel/plugin-transform-exponentiation-operator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" dependencies: @@ -2289,18 +1344,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.16.7, @babel/plugin-transform-for-of@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-for-of@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 35c9264ee4bef814818123d70afe8b2f0a85753a0a9dc7b73f93a71cadc5d7de852f1a3e300a7c69a491705805704611de1e2ccceb5686f7828d6bca2e5a7306 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.23.6": +"@babel/plugin-transform-for-of@npm:^7.2.0, @babel/plugin-transform-for-of@npm:^7.23.6": version: 7.23.6 resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: @@ -2312,20 +1356,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.16.7, @babel/plugin-transform-function-name@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-function-name@npm:7.16.7" - dependencies: - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-function-name": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4d97d0b84461cdd5d5aa2d010cdaf30f1f83a92a0dedd3686cbc7e90dc1249a70246f5bac0c1f3cd3f1dbfb03f7aac437776525a0c90cafd459776ea4fcc6bde - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.23.3": +"@babel/plugin-transform-function-name@npm:^7.2.0, @babel/plugin-transform-function-name@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-function-name@npm:7.23.3" dependencies: @@ -2346,163 +1377,70 @@ __metadata: "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.16.7, @babel/plugin-transform-literals@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-literals@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a9565d999fc7a72a391ef843cf66028c38ca858537c7014d9ea8ea587a59e5f952d9754bdcca6ca0446e84653e297d417d4faedccb9e4221af1aa30f25d918e0 - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed - languageName: node - linkType: hard - -"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fdf5b22abab2b770e69348ce7f99796c3e0e1e7ce266afdbe995924284704930fa989323bdbda7070db8adb45a72f39eaa1dbebf18b67fc44035ec00c6ae3300 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.16.7, @babel/plugin-transform-modules-amd@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.16.7" - dependencies: - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - babel-plugin-dynamic-import-node: ^2.3.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9ac251ee96183b10cf9b4ec8f9e8d52e14ec186a56103f6c07d0c69e99faa60391f6bac67da733412975e487bd36adb403e2fc99bae6b785bf1413e9d928bc71 + checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.23.3": +"@babel/plugin-transform-literals@npm:^7.2.0, @babel/plugin-transform-literals@npm:^7.23.3": version: 7.23.3 - resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" + resolution: "@babel/plugin-transform-literals@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": ^7.23.3 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff + checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.16.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0": - version: 7.16.8 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.16.8" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" dependencies: - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-simple-access": ^7.16.7 - babel-plugin-dynamic-import-node: ^2.3.3 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c0ac00f5457e12cac7825b14725b6fc787bef78945181469ff79f07ef0fd7df021cb00fe1d3a9f35fc9bc92ae59e6e3fc9075a70b627dfe10e00d0907892aace + checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.17.9": - version: 7.17.9 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.17.9" +"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" dependencies: - "@babel/helper-module-transforms": ^7.17.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-simple-access": ^7.17.7 - babel-plugin-dynamic-import-node: ^2.3.3 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 23f248a28b43978c7ee187a91392510f665db32f2cc869007da4922e5a83da47f27ecd5da37c8f66fe6b89e4b324f1a978a4493ae59edf2b3129387d844fde1b + checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": +"@babel/plugin-transform-modules-amd@npm:^7.2.0, @babel/plugin-transform-modules-amd@npm:^7.23.3": version: 7.23.3 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" dependencies: "@babel/helper-module-transforms": ^7.23.3 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.16.7, @babel/plugin-transform-modules-systemjs@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.16.7" - dependencies: - "@babel/helper-hoist-variables": ^7.16.7 - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-validator-identifier": ^7.16.7 - babel-plugin-dynamic-import-node: ^2.3.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2e50ae45a725eeafac5a9d30e07a5e17ab8dcf62c3528cf4efe444fc6f12cd3c4e42e911a9aa37abab169687a98b29a4418eeafcf2031f9917162ac36105cb1b + checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.17.8": - version: 7.17.8 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.17.8" +"@babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" dependencies: - "@babel/helper-hoist-variables": ^7.16.7 - "@babel/helper-module-transforms": ^7.17.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-validator-identifier": ^7.16.7 - babel-plugin-dynamic-import-node: ^2.3.3 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 058c0e7987aab64c4019bc9eab3f80c5dd05bec737e230e5c60e9222dfb3d01b2dfa3aa1db6cbb75a4095c40af3bba2e3a60170b1570a158d3e781376569ce49 + checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": +"@babel/plugin-transform-modules-systemjs@npm:^7.2.0, @babel/plugin-transform-modules-systemjs@npm:^7.23.9": version: 7.23.9 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" dependencies: @@ -2516,19 +1454,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.16.7, @babel/plugin-transform-modules-umd@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.16.7" - dependencies: - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d1433f8b0e0b3c9f892aa530f08fe3ba653a5e51fe1ed6034ac7d45d4d6f22c3ba99186b72e41ad9ce5d8dcf964104c3da2419f15fcdcf5ba05c5fda3ea2cefc - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.23.3": +"@babel/plugin-transform-modules-umd@npm:^7.2.0, @babel/plugin-transform-modules-umd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" dependencies: @@ -2540,29 +1466,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.16.8, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.3.0": - version: 7.16.8 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.16.8" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 73e149f5ff690f5b8e3764a881e8e5240f12f394256e7d5217705d0cbeae074c3faff394783190fe1a41f9fc5a53b960b6021158b7e5174391b5fc38f4ba047a - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.17.10": - version: 7.17.10 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.17.10" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.17.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a2be5f9f23d4dd49106e1c84a1cb625a56d6c7e5cb466602151f9e05aa0a70f68b52206f034447d37e6790914ea953ebf2ab705f377ee7ef00e14453ba3c3d6a - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.3.0": version: 7.22.5 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" dependencies: @@ -2574,18 +1478,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.0.0, @babel/plugin-transform-new-target@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-new-target@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7410c3e68abc835f87a98d40269e65fb1a05c131decbb6721a80ed49a01bd0c53abb6b8f7f52d5055815509022790e1accca32e975c02f2231ac3cf13d8af768 - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.23.3": +"@babel/plugin-transform-new-target@npm:^7.0.0, @babel/plugin-transform-new-target@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-new-target@npm:7.23.3" dependencies: @@ -2635,19 +1528,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.16.7, @babel/plugin-transform-object-super@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-object-super@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-replace-supers": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 46e3c879f4a93e904f2ecf83233d40c48c832bdbd82a67cab1f432db9aa51702e40d9e51e5800613e12299974f90f4ed3869e1273dbca8642984266320c5f341 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.23.3": +"@babel/plugin-transform-object-super@npm:^7.2.0, @babel/plugin-transform-object-super@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-object-super@npm:7.23.3" dependencies: @@ -2684,18 +1565,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.16.7, @babel/plugin-transform-parameters@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-parameters@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4d6904376db82d0b35f0a6cce08f630daf8608d94e903d6c7aff5bd742b251651bd1f88cdf9f16cad98aba5fc7c61da8635199364865fad6367d5ae37cf56cc1 - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.23.3": +"@babel/plugin-transform-parameters@npm:^7.2.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-parameters@npm:7.23.3" dependencies: @@ -2732,17 +1602,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b5674458991a9b0e8738989d70faa88c7f98ed3df923c119f1225069eed72fe5e0ce947b1adc91e378f5822fbdeb7a672f496fd1c75c4babcc88169e3a7c3229 - languageName: node - linkType: hard - "@babel/plugin-transform-property-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" @@ -2767,13 +1626,13 @@ __metadata: linkType: hard "@babel/plugin-transform-react-constant-elements@npm:^7.0.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.16.7" + version: 7.23.3 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.23.3" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b2c586deba5ca86ebb4e26d01a26d056e48fd6f64760676a4b6a0be6f81b8afdd91189e976b57ba18ff966971f92f5ce97fd08798c9bf1a687e6e71bf4198b87 + checksum: f386fe59657910a00c5d276918765c6a74e52c9a223d79463a4eecd652b4da4a6c0a16710fcf5e17b838c336e0c46b552b79e47c1d6eeebc74a813788e0611f7 languageName: node linkType: hard @@ -2788,18 +1647,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-display-name@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 483154413671ab0a25ae37520b7cf5bfab0958c484a3707c6799b1f1436d1e51481bcc03fbfcdbf90bf6b46818d931ae35e515141d8354c3287351b4467376ba - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.23.3": +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" dependencies: @@ -2810,17 +1658,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.16.7" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 697c71cb0ac9647a9b8c6f1aca99767cf06197f6c0b5d1f2e0c01f641e0706a380779f06836fdb941d3aa171f868091270fbe9fcfbfbcc2a24df5e60e04545e8 - languageName: node - linkType: hard - "@babel/plugin-transform-react-jsx-development@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" @@ -2833,43 +1670,28 @@ __metadata: linkType: hard "@babel/plugin-transform-react-jsx-self@npm:^7.0.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.16.7" + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" dependencies: - "@babel/helper-plugin-utils": ^7.16.7 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cf1e408eedf99de3e49689473f329f0a45f1d8642536398570267f564a0da785a676045f042ca6e5d026bcee271127e3b2555fd84949fb7fc87f8ba4fefec34e + checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f languageName: node linkType: hard "@babel/plugin-transform-react-jsx-source@npm:^7.0.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 722147fd37d8b5343ab88f611f0e05dd1e298ac981ec74797751689d4a3ed35a09af1d62dc81bf78efee922d8962aa0840a4fcf07f030434139e41012ade851d - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-jsx@npm:7.16.7" + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-jsx": ^7.16.7 - "@babel/types": ^7.16.7 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0e82346d7c99b4467946d535a8c626a988e5670f65a15dee8520ce9cf4f0147c99decc1cbb4bd352083eaafd259ee3e4299854cac6304a83666d488edf4e58f6 + checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.17.12, @babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.17.12, @babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": version: 7.23.4 resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" dependencies: @@ -2884,18 +1706,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.16.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 715fe9c5fd10c5605a6de1d4436d29087878924758969427ba4d0b2bc274a436d3ac8f2777b744c988bdbb90f7e68dc2a82491db333ae7e0079fab776b543fae - languageName: node - linkType: hard - "@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" @@ -2908,29 +1718,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.0.0, @babel/plugin-transform-regenerator@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.16.7" - dependencies: - regenerator-transform: ^0.14.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 12b1f9a4f324027af69f49522fbe7feea2ac53285ca5c7e27a70de09f56c74938bfda8b09ac06e57fa1207e441f00efb7adbc462afc9be5e8abd0c2a07715e01 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.17.9": - version: 7.17.9 - resolution: "@babel/plugin-transform-regenerator@npm:7.17.9" - dependencies: - regenerator-transform: ^0.15.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf92f7228397615f12fa62d1decbe854ee9065d44e55036f99bf312783d51b082981bab38ba61de9858f7e20513484a043bfa958c0ce4a0d4d1710710df029a9 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.23.3": +"@babel/plugin-transform-regenerator@npm:^7.0.0, @babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" dependencies: @@ -2942,17 +1730,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 00218a646e99a97c1f10b77c41c178ca1b91d0e6cf18dd4ca3c59b8a5ad721db04ef508f49be4cd0dcca7742490dbb145307b706a2dbea1917d5e5f7ba2f31b7 - languageName: node - linkType: hard - "@babel/plugin-transform-reserved-words@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" @@ -2978,7 +1755,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.24.0": +"@babel/plugin-transform-runtime@npm:7.24.0, @babel/plugin-transform-runtime@npm:^7.17.0": version: 7.24.0 resolution: "@babel/plugin-transform-runtime@npm:7.24.0" dependencies: @@ -2994,34 +1771,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.17.0": - version: 7.17.10 - resolution: "@babel/plugin-transform-runtime@npm:7.17.10" - dependencies: - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - babel-plugin-polyfill-corejs2: ^0.3.0 - babel-plugin-polyfill-corejs3: ^0.5.0 - babel-plugin-polyfill-regenerator: ^0.3.0 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 61b63497a9e856551d299547a29de8966102f3a85cc3c09335efd1492a6bf1d540dc937b395dd94200425194b65499bf0d36264b9061d19c93810b90fcbec181 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.16.7, @babel/plugin-transform-shorthand-properties@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ca381ecf8f48696512172deca40af46b1f64e3497186fdc2c9009286d8f06b468c4d61cdc392dc8b0c165298117dda67be9e2ff0e99d7691b0503f1240d4c62b - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": +"@babel/plugin-transform-shorthand-properties@npm:^7.2.0, @babel/plugin-transform-shorthand-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" dependencies: @@ -3032,19 +1782,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.16.7, @babel/plugin-transform-spread@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-spread@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.16.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6e961af1a70586bb72dd85e8296cee857c5dadd73225fccd0fe261c0d98652a82d69c65f3e9dc31ce019a12e9677262678479b96bd2d9140ddf6514618362828 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.23.3": +"@babel/plugin-transform-spread@npm:^7.2.0, @babel/plugin-transform-spread@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-spread@npm:7.23.3" dependencies: @@ -3056,18 +1794,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.16.7, @babel/plugin-transform-sticky-regex@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d59e20121ff0a483e29364eff8bb42cd8a0b7a3158141eea5b6f219227e5b873ea70f317f65037c0f557887a692ac993b72f99641a37ea6ec0ae8000bfab1343 - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.23.3": +"@babel/plugin-transform-sticky-regex@npm:^7.2.0, @babel/plugin-transform-sticky-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" dependencies: @@ -3078,18 +1805,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.16.7, @babel/plugin-transform-template-literals@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b55a519dd8b957247ebad3cab21918af5adca4f6e6c87819501cfe3d4d4bccda25bc296c7dfc8a30909b4ad905902aeb9d55ad955cb9f5cbc74b42dab32baa18 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.23.3": +"@babel/plugin-transform-template-literals@npm:^7.2.0, @babel/plugin-transform-template-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" dependencies: @@ -3100,18 +1816,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.16.7, @babel/plugin-transform-typeof-symbol@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 739a8c439dacbd9af62cfbfa0a7cbc3f220849e5fc774e5ef708a09186689a724c41a1d11323e7d36588d24f5481c8b702c86ff7be8da2e2fed69bed0175f625 - languageName: node - linkType: hard - -"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": +"@babel/plugin-transform-typeof-symbol@npm:^7.2.0, @babel/plugin-transform-typeof-symbol@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" dependencies: @@ -3122,20 +1827,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.1.0": - version: 7.16.8 - resolution: "@babel/plugin-transform-typescript@npm:7.16.8" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/plugin-syntax-typescript": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a76d0afcbd550208cf2e7cdedb4f2d3ca3fa287640a4858a5ee0a28270b784d7d20d5a51b5997dc84514e066a5ebef9e0a0f74ed9fffae09e73984786dd08036 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.23.3": +"@babel/plugin-transform-typescript@npm:^7.1.0, @babel/plugin-transform-typescript@npm:^7.23.3": version: 7.23.6 resolution: "@babel/plugin-transform-typescript@npm:7.23.6" dependencies: @@ -3149,17 +1841,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d10c3b5baa697ca2d9ecce2fd7705014d7e1ddd86ed684ccec378f7ad4d609ab970b5546d6cdbe242089ecfc7a79009d248cf4f8ee87d629485acfb20c0d9160 - languageName: node - linkType: hard - "@babel/plugin-transform-unicode-escapes@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" @@ -3183,19 +1864,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.16.7, @babel/plugin-transform-unicode-regex@npm:^7.2.0": - version: 7.16.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.16.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ef7721cfb11b269809555b1c392732566c49f6ced58e0e990c0e81e58a934bbab3072dcbe92d3a20d60e3e41036ecf987bcc63a7cde90711a350ad774667e5e6 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-regex@npm:^7.23.3": +"@babel/plugin-transform-unicode-regex@npm:^7.2.0, @babel/plugin-transform-unicode-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" dependencies: @@ -3219,7 +1888,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.24.0": +"@babel/preset-env@npm:7.24.0, @babel/preset-env@npm:^7.1.6, @babel/preset-env@npm:^7.16.11": version: 7.24.0 resolution: "@babel/preset-env@npm:7.24.0" dependencies: @@ -3362,174 +2031,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.1.6": - version: 7.16.11 - resolution: "@babel/preset-env@npm:7.16.11" - dependencies: - "@babel/compat-data": ^7.16.8 - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-validator-option": ^7.16.7 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.16.7 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.16.7 - "@babel/plugin-proposal-async-generator-functions": ^7.16.8 - "@babel/plugin-proposal-class-properties": ^7.16.7 - "@babel/plugin-proposal-class-static-block": ^7.16.7 - "@babel/plugin-proposal-dynamic-import": ^7.16.7 - "@babel/plugin-proposal-export-namespace-from": ^7.16.7 - "@babel/plugin-proposal-json-strings": ^7.16.7 - "@babel/plugin-proposal-logical-assignment-operators": ^7.16.7 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.16.7 - "@babel/plugin-proposal-numeric-separator": ^7.16.7 - "@babel/plugin-proposal-object-rest-spread": ^7.16.7 - "@babel/plugin-proposal-optional-catch-binding": ^7.16.7 - "@babel/plugin-proposal-optional-chaining": ^7.16.7 - "@babel/plugin-proposal-private-methods": ^7.16.11 - "@babel/plugin-proposal-private-property-in-object": ^7.16.7 - "@babel/plugin-proposal-unicode-property-regex": ^7.16.7 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.16.7 - "@babel/plugin-transform-async-to-generator": ^7.16.8 - "@babel/plugin-transform-block-scoped-functions": ^7.16.7 - "@babel/plugin-transform-block-scoping": ^7.16.7 - "@babel/plugin-transform-classes": ^7.16.7 - "@babel/plugin-transform-computed-properties": ^7.16.7 - "@babel/plugin-transform-destructuring": ^7.16.7 - "@babel/plugin-transform-dotall-regex": ^7.16.7 - "@babel/plugin-transform-duplicate-keys": ^7.16.7 - "@babel/plugin-transform-exponentiation-operator": ^7.16.7 - "@babel/plugin-transform-for-of": ^7.16.7 - "@babel/plugin-transform-function-name": ^7.16.7 - "@babel/plugin-transform-literals": ^7.16.7 - "@babel/plugin-transform-member-expression-literals": ^7.16.7 - "@babel/plugin-transform-modules-amd": ^7.16.7 - "@babel/plugin-transform-modules-commonjs": ^7.16.8 - "@babel/plugin-transform-modules-systemjs": ^7.16.7 - "@babel/plugin-transform-modules-umd": ^7.16.7 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.16.8 - "@babel/plugin-transform-new-target": ^7.16.7 - "@babel/plugin-transform-object-super": ^7.16.7 - "@babel/plugin-transform-parameters": ^7.16.7 - "@babel/plugin-transform-property-literals": ^7.16.7 - "@babel/plugin-transform-regenerator": ^7.16.7 - "@babel/plugin-transform-reserved-words": ^7.16.7 - "@babel/plugin-transform-shorthand-properties": ^7.16.7 - "@babel/plugin-transform-spread": ^7.16.7 - "@babel/plugin-transform-sticky-regex": ^7.16.7 - "@babel/plugin-transform-template-literals": ^7.16.7 - "@babel/plugin-transform-typeof-symbol": ^7.16.7 - "@babel/plugin-transform-unicode-escapes": ^7.16.7 - "@babel/plugin-transform-unicode-regex": ^7.16.7 - "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.16.8 - babel-plugin-polyfill-corejs2: ^0.3.0 - babel-plugin-polyfill-corejs3: ^0.5.0 - babel-plugin-polyfill-regenerator: ^0.3.0 - core-js-compat: ^3.20.2 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c8029c272073df787309d983ae458dd094b57f87152b8ccad95c7c8b1e82b042c1077e169538aae5f98b7659de0632d10708d9c85acf21a5e9406d7dd3656d8c - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.16.11": - version: 7.17.10 - resolution: "@babel/preset-env@npm:7.17.10" - dependencies: - "@babel/compat-data": ^7.17.10 - "@babel/helper-compilation-targets": ^7.17.10 - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-validator-option": ^7.16.7 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.16.7 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.16.7 - "@babel/plugin-proposal-async-generator-functions": ^7.16.8 - "@babel/plugin-proposal-class-properties": ^7.16.7 - "@babel/plugin-proposal-class-static-block": ^7.17.6 - "@babel/plugin-proposal-dynamic-import": ^7.16.7 - "@babel/plugin-proposal-export-namespace-from": ^7.16.7 - "@babel/plugin-proposal-json-strings": ^7.16.7 - "@babel/plugin-proposal-logical-assignment-operators": ^7.16.7 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.16.7 - "@babel/plugin-proposal-numeric-separator": ^7.16.7 - "@babel/plugin-proposal-object-rest-spread": ^7.17.3 - "@babel/plugin-proposal-optional-catch-binding": ^7.16.7 - "@babel/plugin-proposal-optional-chaining": ^7.16.7 - "@babel/plugin-proposal-private-methods": ^7.16.11 - "@babel/plugin-proposal-private-property-in-object": ^7.16.7 - "@babel/plugin-proposal-unicode-property-regex": ^7.16.7 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.16.7 - "@babel/plugin-transform-async-to-generator": ^7.16.8 - "@babel/plugin-transform-block-scoped-functions": ^7.16.7 - "@babel/plugin-transform-block-scoping": ^7.16.7 - "@babel/plugin-transform-classes": ^7.16.7 - "@babel/plugin-transform-computed-properties": ^7.16.7 - "@babel/plugin-transform-destructuring": ^7.17.7 - "@babel/plugin-transform-dotall-regex": ^7.16.7 - "@babel/plugin-transform-duplicate-keys": ^7.16.7 - "@babel/plugin-transform-exponentiation-operator": ^7.16.7 - "@babel/plugin-transform-for-of": ^7.16.7 - "@babel/plugin-transform-function-name": ^7.16.7 - "@babel/plugin-transform-literals": ^7.16.7 - "@babel/plugin-transform-member-expression-literals": ^7.16.7 - "@babel/plugin-transform-modules-amd": ^7.16.7 - "@babel/plugin-transform-modules-commonjs": ^7.17.9 - "@babel/plugin-transform-modules-systemjs": ^7.17.8 - "@babel/plugin-transform-modules-umd": ^7.16.7 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.17.10 - "@babel/plugin-transform-new-target": ^7.16.7 - "@babel/plugin-transform-object-super": ^7.16.7 - "@babel/plugin-transform-parameters": ^7.16.7 - "@babel/plugin-transform-property-literals": ^7.16.7 - "@babel/plugin-transform-regenerator": ^7.17.9 - "@babel/plugin-transform-reserved-words": ^7.16.7 - "@babel/plugin-transform-shorthand-properties": ^7.16.7 - "@babel/plugin-transform-spread": ^7.16.7 - "@babel/plugin-transform-sticky-regex": ^7.16.7 - "@babel/plugin-transform-template-literals": ^7.16.7 - "@babel/plugin-transform-typeof-symbol": ^7.16.7 - "@babel/plugin-transform-unicode-escapes": ^7.16.7 - "@babel/plugin-transform-unicode-regex": ^7.16.7 - "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.17.10 - babel-plugin-polyfill-corejs2: ^0.3.0 - babel-plugin-polyfill-corejs3: ^0.5.0 - babel-plugin-polyfill-regenerator: ^0.3.0 - core-js-compat: ^3.22.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d81a11a0866e9a90eaa799211a609f3f3838eebcaaa717c63438cbb9c90e99ed336822717614bf974b90438e1f5c6157c9b43a0bfceece5b2c9188d67cbbae92 - languageName: node - linkType: hard - "@babel/preset-modules@npm:0.1.6-no-external-plugins": version: 0.1.6-no-external-plugins resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" @@ -3543,21 +2044,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-modules@npm:^0.1.5": - version: 0.1.5 - resolution: "@babel/preset-modules@npm:0.1.5" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 - "@babel/plugin-transform-dotall-regex": ^7.4.4 - "@babel/types": ^7.4.4 - esutils: ^2.0.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8430e0e9e9d520b53e22e8c4c6a5a080a12b63af6eabe559c2310b187bd62ae113f3da82ba33e9d1d0f3230930ca702843aae9dd226dec51f7d7114dc1f51c10 - languageName: node - linkType: hard - "@babel/preset-react@npm:7.0.0": version: 7.0.0 resolution: "@babel/preset-react@npm:7.0.0" @@ -3573,7 +2059,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:7.23.3": +"@babel/preset-react@npm:7.23.3, @babel/preset-react@npm:^7.0.0": version: 7.23.3 resolution: "@babel/preset-react@npm:7.23.3" dependencies: @@ -3589,22 +2075,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.0.0": - version: 7.16.7 - resolution: "@babel/preset-react@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - "@babel/helper-validator-option": ^7.16.7 - "@babel/plugin-transform-react-display-name": ^7.16.7 - "@babel/plugin-transform-react-jsx": ^7.16.7 - "@babel/plugin-transform-react-jsx-development": ^7.16.7 - "@babel/plugin-transform-react-pure-annotations": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d0a052a418891ab6a02df9c75f0202964ad3b936c20bc44c81bcf3f02c057383f2fa329e0cc79baaac1b4e5e5c8924d3df93a2dd9319efe8042e3b33849978b3 - languageName: node - linkType: hard - "@babel/preset-typescript@npm:7.1.0": version: 7.1.0 resolution: "@babel/preset-typescript@npm:7.1.0" @@ -3639,23 +2109,33 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.10.2, @babel/runtime-corejs3@npm:^7.14.0": - version: 7.16.8 - resolution: "@babel/runtime-corejs3@npm:7.16.8" +"@babel/runtime-corejs3@npm:7.20.13": + version: 7.20.13 + resolution: "@babel/runtime-corejs3@npm:7.20.13" dependencies: - core-js-pure: ^3.20.2 - regenerator-runtime: ^0.13.4 - checksum: 3d8fe2f3030c01e8725b9e0985b403463fae2081ca46f16bf257f8e7f32e2ebc37065499941de8678b3ba46145b19db6a7d4c8ac3b675331c7284dd3cdd1dc62 + core-js-pure: ^3.25.1 + regenerator-runtime: ^0.13.11 + checksum: 259681d99909fb56fc31d0d1a17cf98949db648873299958f9e1bf44d137f812c10815edb371fbd5a6ced3af9dde40ab461a06bd9151d5155b4808578a3d2290 languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.15.4, @babel/runtime-corejs3@npm:^7.17.2": - version: 7.17.9 - resolution: "@babel/runtime-corejs3@npm:7.17.9" +"@babel/runtime-corejs3@npm:7.21.0": + version: 7.21.0 + resolution: "@babel/runtime-corejs3@npm:7.21.0" dependencies: - core-js-pure: ^3.20.2 - regenerator-runtime: ^0.13.4 - checksum: c0893eb1ba4fd8a5a0e43d0fd5c3ad61c020dc5953bb74a76e9e10a0adfde7a5d8fd7e78d59b08dce3a0774948c6c40c81df0fdd0a1130c414fd3535fae365cb + core-js-pure: ^3.25.1 + regenerator-runtime: ^0.13.11 + checksum: a47927671672b1e1644771458f804e03802303eeffcafd55f85cb121d3d3ca33032cc2fe68e086e3de6923049343d0aa599fc3eb3ad5749e30646e2a2ef6f11d + languageName: node + linkType: hard + +"@babel/runtime-corejs3@npm:^7.10.2, @babel/runtime-corejs3@npm:^7.14.0, @babel/runtime-corejs3@npm:^7.15.4, @babel/runtime-corejs3@npm:^7.17.2": + version: 7.24.0 + resolution: "@babel/runtime-corejs3@npm:7.24.0" + dependencies: + core-js-pure: ^3.30.2 + regenerator-runtime: ^0.14.0 + checksum: cd4f2cde0878c911b2eeebf1cb48df819c862492da163bb9001ba690c82e9addd1d14087a8b0dd87fb1da2d916fa3b85d9a8cece4d46f8e5c51d734acda5a8bd languageName: node linkType: hard @@ -3695,34 +2175,16 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.3.4": - version: 7.3.4 - resolution: "@babel/runtime@npm:7.3.4" - dependencies: - regenerator-runtime: ^0.12.0 - checksum: b94a70864dfdf94562a9dcb90a928c005b73dd58c507a0e03de827a7df58ab54b8e509e71a18ec2789de61880c3de3a33e70b77e65a00fc9e0b3005b55c0207c - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.3.4, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.16.7 - resolution: "@babel/runtime@npm:7.16.7" - dependencies: - regenerator-runtime: ^0.13.4 - checksum: 47912f0aaacd1cab2e2552aaf3e6eaffbcaf2d5ac9b07a89a12ac0d42029cb92c070b0d16f825e4277c4a34677c54d8ffe85e1f7c6feb57de58f700eec67ce2f - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.18.3": - version: 7.18.6 - resolution: "@babel/runtime@npm:7.18.6" +"@babel/runtime@npm:7.3.4": + version: 7.3.4 + resolution: "@babel/runtime@npm:7.3.4" dependencies: - regenerator-runtime: ^0.13.4 - checksum: 8b707b64ae0524db617d0c49933b258b96376a38307dc0be8fb42db5697608bcc1eba459acce541e376cff5ed5c5287d24db5780bd776b7c75ba2c2e26ff8a2c + regenerator-runtime: ^0.12.0 + checksum: b94a70864dfdf94562a9dcb90a928c005b73dd58c507a0e03de827a7df58ab54b8e509e71a18ec2789de61880c3de3a33e70b77e65a00fc9e0b3005b55c0207c languageName: node linkType: hard -"@babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.3.4, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": version: 7.24.0 resolution: "@babel/runtime@npm:7.24.0" dependencies: @@ -3731,29 +2193,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.16.7, @babel/template@npm:^7.2.2, @babel/template@npm:^7.3.3": - version: 7.16.7 - resolution: "@babel/template@npm:7.16.7" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/parser": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 10cd112e89276e00f8b11b55a51c8b2f1262c318283a980f4d6cdb0286dc05734b9aaeeb9f3ad3311900b09bc913e02343fcaa9d4a4f413964aaab04eb84ac4a - languageName: node - linkType: hard - -"@babel/template@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/template@npm:7.18.6" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.18.6 - "@babel/types": ^7.18.6 - checksum: cb02ed804b7b1938dbecef4e01562013b80681843dd391933315b3dd9880820def3b5b1bff6320d6e4c6a1d63d1d5799630d658ec6b0369c5505e7e4029c38fb - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0": +"@babel/template@npm:^7.2.2, @babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0, @babel/template@npm:^7.3.3": version: 7.24.0 resolution: "@babel/template@npm:7.24.0" dependencies: @@ -3764,61 +2204,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.16.10, @babel/traverse@npm:^7.16.7, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.2.2, @babel/traverse@npm:^7.7.0": - version: 7.16.10 - resolution: "@babel/traverse@npm:7.16.10" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.16.8 - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-function-name": ^7.16.7 - "@babel/helper-hoist-variables": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/parser": ^7.16.10 - "@babel/types": ^7.16.8 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 58f52314f8a02157cd3004712e703e6b22dff57cee4bc1ab1954c511c6f885fd7763ea68d2d5f006891bc7b77b1f2e9c8c7cb0354f580c8343d5559ed971d087 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.17.10, @babel/traverse@npm:^7.17.3, @babel/traverse@npm:^7.17.9": - version: 7.17.10 - resolution: "@babel/traverse@npm:7.17.10" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.17.10 - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-function-name": ^7.17.9 - "@babel/helper-hoist-variables": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/parser": ^7.17.10 - "@babel/types": ^7.17.10 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 44ec0a59aa274b59464d52b1796eb6e54c67ae0f946de0d608068e28b1ab7065bdf53c0169d9102854cb00aa01944c83e722f08aeab96d9cc6bf56f8aede70fd - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/traverse@npm:7.18.6" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.6 - "@babel/helper-function-name": ^7.18.6 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.18.6 - "@babel/types": ^7.18.6 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 5427a9db63984b2600f62b257dab18e3fc057997b69d708573bfc88eb5eacd6678fb24fddba082d6ac050734b8846ce110960be841ea1e461d66e2cde72b6b07 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.0": +"@babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.2.2, @babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.7.0": version: 7.24.0 resolution: "@babel/traverse@npm:7.24.0" dependencies: @@ -3836,37 +2222,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.0, @babel/types@npm:^7.16.7, @babel/types@npm:^7.16.8, @babel/types@npm:^7.2.2, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": - version: 7.16.8 - resolution: "@babel/types@npm:7.16.8" - dependencies: - "@babel/helper-validator-identifier": ^7.16.7 - to-fast-properties: ^2.0.0 - checksum: 4f6a187b2924df70e21d6e6c0822f91b1b936fe060bc92bb477b93bd8a712c88fe41a73f85c0ec53b033353374fe33e773b04ffc340ad36afd8f647dd05c4ee1 - languageName: node - linkType: hard - -"@babel/types@npm:^7.17.0, @babel/types@npm:^7.17.10": - version: 7.17.10 - resolution: "@babel/types@npm:7.17.10" - dependencies: - "@babel/helper-validator-identifier": ^7.16.7 - to-fast-properties: ^2.0.0 - checksum: 40cfc3f43a3ab7374df8ee6844793f804c65e7bea0fd1b090886b425106ba26e16e8fa698ae4b2caf2746083fe3e62f03f12997a5982e0d131700f17cbdcfca1 - languageName: node - linkType: hard - -"@babel/types@npm:^7.18.6, @babel/types@npm:^7.18.7": - version: 7.18.7 - resolution: "@babel/types@npm:7.18.7" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - to-fast-properties: ^2.0.0 - checksum: 3114ce161c4ebcb70271e168aa5af5cecedf3278209161d5ba6124bd3f9cb02e3f3ace587ad1b53f7baa153b6b3714720721c72a9ef3ec451663862f9cc1f014 - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.2.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": version: 7.24.0 resolution: "@babel/types@npm:7.24.0" dependencies: @@ -4406,8 +2762,8 @@ __metadata: "@bfc/eslint-plugin-bfcomposer": "workspace:*" "@emotion/babel-preset-css-prop": 11.11.0 "@emotion/eslint-plugin": 11.11.0 - "@typescript-eslint/eslint-plugin": 7.1.1 - "@typescript-eslint/parser": 7.1.1 + "@typescript-eslint/eslint-plugin": 5.62.0 + "@typescript-eslint/parser": 5.62.0 concurrently: 8.2.2 coveralls: 3.1.1 cross-env: 7.0.3 @@ -4877,6 +3233,13 @@ __metadata: languageName: unknown linkType: soft +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 + languageName: node + linkType: hard + "@csstools/convert-colors@npm:^1.4.0": version: 1.4.0 resolution: "@csstools/convert-colors@npm:1.4.0" @@ -4885,8 +3248,8 @@ __metadata: linkType: hard "@cypress/request@npm:^2.88.5": - version: 2.88.10 - resolution: "@cypress/request@npm:2.88.10" + version: 2.88.12 + resolution: "@cypress/request@npm:2.88.12" dependencies: aws-sign2: ~0.7.0 aws4: ^1.8.0 @@ -4901,12 +3264,12 @@ __metadata: json-stringify-safe: ~5.0.1 mime-types: ~2.1.19 performance-now: ^2.1.0 - qs: ~6.5.2 + qs: ~6.10.3 safe-buffer: ^5.1.2 - tough-cookie: ~2.5.0 + tough-cookie: ^4.1.3 tunnel-agent: ^0.6.0 uuid: ^8.3.2 - checksum: 69c3e3b332e9be4866a900f6bcca5d274d8cea6c99707fbcce061de8dbab11c9b1e39f4c017f6e83e6e682717781d4f6106fd6b7cf9546580fcfac353b6676cf + checksum: 2c6fbf7f3127d41bffca8374beaa8cf95450495a8a077b00309ea9d94dd2a4da450a77fe038e8ad26c97cdd7c39b65c53c850f8338ce9bc2dbe23ce2e2b48329 languageName: node linkType: hard @@ -4930,6 +3293,13 @@ __metadata: languageName: node linkType: hard +"@discoveryjs/json-ext@npm:0.5.7": + version: 0.5.7 + resolution: "@discoveryjs/json-ext@npm:0.5.7" + checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918 + languageName: node + linkType: hard + "@electron/get@npm:^2.0.0": version: 2.0.3 resolution: "@electron/get@npm:2.0.3" @@ -4964,62 +3334,36 @@ __metadata: languageName: node linkType: hard -"@emotion/babel-plugin-jsx-pragmatic@npm:^0.2.1": - version: 0.2.1 - resolution: "@emotion/babel-plugin-jsx-pragmatic@npm:0.2.1" +"@emnapi/core@npm:^0.45.0": + version: 0.45.0 + resolution: "@emnapi/core@npm:0.45.0" dependencies: - "@babel/plugin-syntax-jsx": ^7.17.12 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2c7e9c687c8e12855c9a419e9a8e530b236e1c42f5a196f1abaf5079947d18069733f1f8257e90c6bafa302c87f433577745ea799b63d4211c82d7b3a57917d6 + tslib: ^2.4.0 + checksum: 12560a46d3b355b17a4e3e55597aa9e6c753fb181a8b0d05e60a574eab026d35525c087e98aeee556f883095b5b65e15e48e28299efefc90f01d727659d178ec languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.0.0": - version: 11.7.2 - resolution: "@emotion/babel-plugin@npm:11.7.2" +"@emnapi/runtime@npm:^0.45.0": + version: 0.45.0 + resolution: "@emnapi/runtime@npm:0.45.0" dependencies: - "@babel/helper-module-imports": ^7.12.13 - "@babel/plugin-syntax-jsx": ^7.12.13 - "@babel/runtime": ^7.13.10 - "@emotion/hash": ^0.8.0 - "@emotion/memoize": ^0.7.5 - "@emotion/serialize": ^1.0.2 - babel-plugin-macros: ^2.6.1 - convert-source-map: ^1.5.0 - escape-string-regexp: ^4.0.0 - find-root: ^1.1.0 - source-map: ^0.5.7 - stylis: 4.0.13 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: eb9607356663c3e158b91ae7b8fde7335c74e6302d1671da1ca0b34142f762e1354bac8cb0bdf5baedf1278912eeea01e103b8f5c59ee107746d1b03f56aa664 + tslib: ^2.4.0 + checksum: 59c81a4edc68c959b2f891eb310b063c87e69ef18eb77563bfd59b0086b27c7581b8e40edbf590e3fd3af437ace98d06e81b7a8613e8317c619e479831540b93 languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.10.0": - version: 11.10.5 - resolution: "@emotion/babel-plugin@npm:11.10.5" +"@emotion/babel-plugin-jsx-pragmatic@npm:^0.2.1": + version: 0.2.1 + resolution: "@emotion/babel-plugin-jsx-pragmatic@npm:0.2.1" dependencies: - "@babel/helper-module-imports": ^7.16.7 "@babel/plugin-syntax-jsx": ^7.17.12 - "@babel/runtime": ^7.18.3 - "@emotion/hash": ^0.9.0 - "@emotion/memoize": ^0.8.0 - "@emotion/serialize": ^1.1.1 - babel-plugin-macros: ^3.1.0 - convert-source-map: ^1.5.0 - escape-string-regexp: ^4.0.0 - find-root: ^1.1.0 - source-map: ^0.5.7 - stylis: 4.1.3 peerDependencies: "@babel/core": ^7.0.0 - checksum: e3353499c76c4422d6e900c0dfab73607056d9da86161a3f27c3459c193c4908050c5d252c68fcde231e13f02a9d8e0dc07d260317ae0e5206841e331cc4caae + checksum: 2c7e9c687c8e12855c9a419e9a8e530b236e1c42f5a196f1abaf5079947d18069733f1f8257e90c6bafa302c87f433577745ea799b63d4211c82d7b3a57917d6 languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.11.0": +"@emotion/babel-plugin@npm:^11.0.0, @emotion/babel-plugin@npm:^11.10.6, @emotion/babel-plugin@npm:^11.11.0, @emotion/babel-plugin@npm:^11.9.2": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" dependencies: @@ -5038,28 +3382,6 @@ __metadata: languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.7.1, @emotion/babel-plugin@npm:^11.9.2": - version: 11.9.2 - resolution: "@emotion/babel-plugin@npm:11.9.2" - dependencies: - "@babel/helper-module-imports": ^7.12.13 - "@babel/plugin-syntax-jsx": ^7.12.13 - "@babel/runtime": ^7.13.10 - "@emotion/hash": ^0.8.0 - "@emotion/memoize": ^0.7.5 - "@emotion/serialize": ^1.0.2 - babel-plugin-macros: ^2.6.1 - convert-source-map: ^1.5.0 - escape-string-regexp: ^4.0.0 - find-root: ^1.1.0 - source-map: ^0.5.7 - stylis: 4.0.13 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2d2c4fadd389862896bcbc5f42c9b9c1a199810173fcf14e5520506c7179c2ddb991b8832fd273f42104cf0dae98886ad8e767b5e38ad235b652d903c3b8a328 - languageName: node - linkType: hard - "@emotion/babel-preset-css-prop@npm:11.11.0": version: 11.11.0 resolution: "@emotion/babel-preset-css-prop@npm:11.11.0" @@ -5074,29 +3396,16 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.1.3, @emotion/cache@npm:^11.7.1": - version: 11.7.1 - resolution: "@emotion/cache@npm:11.7.1" - dependencies: - "@emotion/memoize": ^0.7.4 - "@emotion/sheet": ^1.1.0 - "@emotion/utils": ^1.0.0 - "@emotion/weak-memoize": ^0.2.5 - stylis: 4.0.13 - checksum: cf7aa8fe3bacfdedcda94b53e76a7635e122043439715fcfbf7f1a81340cfe6099a59134481a03ec3e0437466566d18528577d1e6ea92f5b98c372b8b38a8f35 - languageName: node - linkType: hard - -"@emotion/cache@npm:^11.10.0": - version: 11.10.5 - resolution: "@emotion/cache@npm:11.10.5" +"@emotion/cache@npm:^11.1.3, @emotion/cache@npm:^11.10.5, @emotion/cache@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/cache@npm:11.11.0" dependencies: - "@emotion/memoize": ^0.8.0 - "@emotion/sheet": ^1.2.1 - "@emotion/utils": ^1.2.0 - "@emotion/weak-memoize": ^0.3.0 - stylis: 4.1.3 - checksum: 1dd2d9af2d3ecbd3d4469ecdf91a335eef6034c851b57a474471b2d2280613eb35bbed98c0368cc4625f188619fbdaf04cf07e8107aaffce94b2178444c0fe7b + "@emotion/memoize": ^0.8.1 + "@emotion/sheet": ^1.2.2 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + stylis: 4.2.0 + checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 languageName: node linkType: hard @@ -5118,21 +3427,29 @@ __metadata: languageName: node linkType: hard -"@emotion/css@npm:11.10.0": - version: 11.10.0 - resolution: "@emotion/css@npm:11.10.0" +"@emotion/css@npm:11.10.6": + version: 11.10.6 + resolution: "@emotion/css@npm:11.10.6" dependencies: - "@emotion/babel-plugin": ^11.10.0 - "@emotion/cache": ^11.10.0 - "@emotion/serialize": ^1.1.0 - "@emotion/sheet": ^1.2.0 + "@emotion/babel-plugin": ^11.10.6 + "@emotion/cache": ^11.10.5 + "@emotion/serialize": ^1.1.1 + "@emotion/sheet": ^1.2.1 "@emotion/utils": ^1.2.0 - peerDependencies: - "@babel/core": ^7.0.0 - peerDependenciesMeta: - "@babel/core": - optional: true - checksum: 677b90607a9525d0f18f4b13e1e781ed04a7878f25fb20174c06c24d5022bf9a206406980be717e82a362fdea01a8ae97248934877292112a7df0af136fe90f9 + checksum: 010ca5e1d0434923c431eab2c6f8226ab4415310a053ece6e4133011c7dc621de099469e57314b013e682c3b6ffd09a91cc6473538c185095d2afca79d81fb95 + languageName: node + linkType: hard + +"@emotion/css@npm:11.11.2": + version: 11.11.2 + resolution: "@emotion/css@npm:11.11.2" + dependencies: + "@emotion/babel-plugin": ^11.11.0 + "@emotion/cache": ^11.11.0 + "@emotion/serialize": ^1.1.2 + "@emotion/sheet": ^1.2.2 + "@emotion/utils": ^1.2.1 + checksum: 1edea109dfc31005243334bc351ba127220ea5c4986225e0f1b8f7aa71fb2f83fb8f51d8f5b8afb8432d4c6397c23f5061038449f2876888eecc6eac1dd2f0da languageName: node linkType: hard @@ -5145,20 +3462,6 @@ __metadata: languageName: node linkType: hard -"@emotion/hash@npm:^0.8.0": - version: 0.8.0 - resolution: "@emotion/hash@npm:0.8.0" - checksum: 4b35d88a97e67275c1d990c96d3b0450451d089d1508619488fc0acb882cb1ac91e93246d471346ebd1b5402215941ef4162efe5b51534859b39d8b3a0e3ffaa - languageName: node - linkType: hard - -"@emotion/hash@npm:^0.9.0": - version: 0.9.0 - resolution: "@emotion/hash@npm:0.9.0" - checksum: b63428f7c8186607acdca5d003700cecf0ded519d0b5c5cc3b3154eafcad6ff433f8361bd2bac8882715b557e6f06945694aeb6ba8b25c6095d7a88570e2e0bb - languageName: node - linkType: hard - "@emotion/hash@npm:^0.9.1": version: 0.9.1 resolution: "@emotion/hash@npm:0.9.1" @@ -5175,12 +3478,12 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.1.2": - version: 1.1.2 - resolution: "@emotion/is-prop-valid@npm:1.1.2" +"@emotion/is-prop-valid@npm:^1.2.1": + version: 1.2.2 + resolution: "@emotion/is-prop-valid@npm:1.2.2" dependencies: - "@emotion/memoize": ^0.7.4 - checksum: 58b1f2d429a589f8f5bc2c33a8732cbb7bbcb17131a103511ef9a94ac754d7eeb53d627f947da480cd977f9d419fd92e244991680292f3287204159652745707 + "@emotion/memoize": ^0.8.1 + checksum: 61f6b128ea62b9f76b47955057d5d86fcbe2a6989d2cd1e583daac592901a950475a37d049b9f7a7c6aa8758a33b408735db759fdedfd1f629df0f85ab60ea25 languageName: node linkType: hard @@ -5191,20 +3494,6 @@ __metadata: languageName: node linkType: hard -"@emotion/memoize@npm:^0.7.4, @emotion/memoize@npm:^0.7.5": - version: 0.7.5 - resolution: "@emotion/memoize@npm:0.7.5" - checksum: 83da8d4a7649a92c72f960817692bc6be13cc13e107b9f7e878d63766525ed4402881bfeb3cda61145c050281e7e260f114a0a2870515527346f2ef896b915b3 - languageName: node - linkType: hard - -"@emotion/memoize@npm:^0.8.0": - version: 0.8.0 - resolution: "@emotion/memoize@npm:0.8.0" - checksum: c87bb110b829edd8e1c13b90a6bc37cebc39af29c7599a1e66a48e06f9bec43e8e53495ba86278cc52e7589549492c8dfdc81d19f4fdec0cee6ba13d2ad2c928 - languageName: node - linkType: hard - "@emotion/memoize@npm:^0.8.1": version: 0.8.1 resolution: "@emotion/memoize@npm:0.8.1" @@ -5213,180 +3502,265 @@ __metadata: linkType: hard "@emotion/react@npm:^11.1.3": - version: 11.9.0 - resolution: "@emotion/react@npm:11.9.0" - dependencies: - "@babel/runtime": ^7.13.10 - "@emotion/babel-plugin": ^11.7.1 - "@emotion/cache": ^11.7.1 - "@emotion/serialize": ^1.0.3 - "@emotion/utils": ^1.1.0 - "@emotion/weak-memoize": ^0.2.5 + version: 11.11.4 + resolution: "@emotion/react@npm:11.11.4" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/cache": ^11.11.0 + "@emotion/serialize": ^1.1.3 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 hoist-non-react-statics: ^3.3.1 peerDependencies: - "@babel/core": ^7.0.0 react: ">=16.8.0" peerDependenciesMeta: - "@babel/core": - optional: true "@types/react": optional: true - checksum: 4ceb004f942fb7557a55ea17aad2c48c4cd48ed5a780ccdc2993e4bded2f94d7c1764bd2f4fbe53f5b26059263599cec64ff66d29447e281a58c60b39c72e5cc + checksum: 6abaa7a05c5e1db31bffca7ac79169f5456990022cbb3794e6903221536609a60420f2b4888dd3f84e9634a304e394130cb88dc32c243a1dedc263e50da329f8 languageName: node linkType: hard -"@emotion/serialize@npm:^1.0.0, @emotion/serialize@npm:^1.0.2": - version: 1.0.2 - resolution: "@emotion/serialize@npm:1.0.2" +"@emotion/serialize@npm:^1.0.0, @emotion/serialize@npm:^1.1.1, @emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3": + version: 1.1.3 + resolution: "@emotion/serialize@npm:1.1.3" dependencies: - "@emotion/hash": ^0.8.0 - "@emotion/memoize": ^0.7.4 - "@emotion/unitless": ^0.7.5 - "@emotion/utils": ^1.0.0 + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/unitless": ^0.8.1 + "@emotion/utils": ^1.2.1 csstype: ^3.0.2 - checksum: ff84fbe09ec06e7ad3deaef5c5b5ea6af6a522e8efe49c2b398b875d06872626284a83b6b18b7f777750c94264a61e7924157d869d9bca2f675731bbb91a6055 + checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 languageName: node linkType: hard -"@emotion/serialize@npm:^1.0.3": - version: 1.0.3 - resolution: "@emotion/serialize@npm:1.0.3" - dependencies: - "@emotion/hash": ^0.8.0 - "@emotion/memoize": ^0.7.4 - "@emotion/unitless": ^0.7.5 - "@emotion/utils": ^1.0.0 - csstype: ^3.0.2 - checksum: 99a9053bd98c99d63af542ebee029281eeaf653e3a12e97ee79bad7330c68408104c30be6fc07a528e38bb69aba680655181744b76ec6c6f459c121cb805fac2 +"@emotion/sheet@npm:^1.0.0, @emotion/sheet@npm:^1.2.1, @emotion/sheet@npm:^1.2.2": + version: 1.2.2 + resolution: "@emotion/sheet@npm:1.2.2" + checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.0, @emotion/serialize@npm:^1.1.1": - version: 1.1.1 - resolution: "@emotion/serialize@npm:1.1.1" +"@emotion/styled@npm:^11.1.3": + version: 11.11.0 + resolution: "@emotion/styled@npm:11.11.0" dependencies: - "@emotion/hash": ^0.9.0 - "@emotion/memoize": ^0.8.0 - "@emotion/unitless": ^0.8.0 - "@emotion/utils": ^1.2.0 - csstype: ^3.0.2 - checksum: 24cfd5b16e6f2335c032ca33804a876e0442aaf8f9c94d269d23735ebd194fb1ed142542dd92191a3e6ef8bad5bd560dfc5aaf363a1b70954726dbd4dd93085c + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/is-prop-valid": ^1.2.1 + "@emotion/serialize": ^1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 904f641aad3892c65d7d6c0808b036dae1e6d6dad4861c1c7dc0baa59977047c6cad220691206eba7b4059f1a1c6e6c1ef4ebb8c829089e280fa0f2164a01e6b languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.2": - version: 1.1.3 - resolution: "@emotion/serialize@npm:1.1.3" - dependencies: - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/unitless": ^0.8.1 - "@emotion/utils": ^1.2.1 - csstype: ^3.0.2 - checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 +"@emotion/unitless@npm:^0.7.0": + version: 0.7.5 + resolution: "@emotion/unitless@npm:0.7.5" + checksum: f976e5345b53fae9414a7b2e7a949aa6b52f8bdbcc84458b1ddc0729e77ba1d1dfdff9960e0da60183877873d3a631fa24d9695dd714ed94bcd3ba5196586a6b languageName: node linkType: hard -"@emotion/sheet@npm:^1.0.0, @emotion/sheet@npm:^1.1.0": - version: 1.1.0 - resolution: "@emotion/sheet@npm:1.1.0" - checksum: a4b74e16a8fea1157413efe4904f5f679d724323cb605d66d20a0b98744422f5d411fca927ceb52e4de454a0a819c5273ca9496db9f011b4ecd17b9f1b212007 +"@emotion/unitless@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": + version: 1.0.1 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" + peerDependencies: + react: ">=16.8.0" + checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 languageName: node linkType: hard -"@emotion/sheet@npm:^1.2.0, @emotion/sheet@npm:^1.2.1": +"@emotion/utils@npm:^1.0.0, @emotion/utils@npm:^1.2.0, @emotion/utils@npm:^1.2.1": version: 1.2.1 - resolution: "@emotion/sheet@npm:1.2.1" - checksum: ce78763588ea522438156344d9f592203e2da582d8d67b32e1b0b98eaba26994c6c270f8c7ad46442fc9c0a9f048685d819cd73ca87e544520fd06f0e24a1562 + resolution: "@emotion/utils@npm:1.2.1" + checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.3.1": + version: 0.3.1 + resolution: "@emotion/weak-memoize@npm:0.3.1" + checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-arm64@npm:0.16.17" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-arm@npm:0.16.17" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/android-x64@npm:0.16.17" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/darwin-arm64@npm:0.16.17" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/darwin-x64@npm:0.16.17" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/freebsd-arm64@npm:0.16.17" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/freebsd-x64@npm:0.16.17" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-arm64@npm:0.16.17" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-arm@npm:0.16.17" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-ia32@npm:0.16.17" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.14.54": + version: 0.14.54 + resolution: "@esbuild/linux-loong64@npm:0.14.54" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-loong64@npm:0.16.17" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-mips64el@npm:0.16.17" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@emotion/styled@npm:^11.1.3": - version: 11.8.1 - resolution: "@emotion/styled@npm:11.8.1" - dependencies: - "@babel/runtime": ^7.13.10 - "@emotion/babel-plugin": ^11.7.1 - "@emotion/is-prop-valid": ^1.1.2 - "@emotion/serialize": ^1.0.2 - "@emotion/utils": ^1.1.0 - peerDependencies: - "@babel/core": ^7.0.0 - "@emotion/react": ^11.0.0-rc.0 - react: ">=16.8.0" - peerDependenciesMeta: - "@babel/core": - optional: true - "@types/react": - optional: true - checksum: 67150fa788785c34e285b90acecc91fe7a63babceaefbeffd053bed0fa31f72a05bfeeb9d15620766e543e007b9ccac2e836812eec2e791f962ec4e52731ae4c +"@esbuild/linux-ppc64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-ppc64@npm:0.16.17" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@emotion/unitless@npm:^0.7.0, @emotion/unitless@npm:^0.7.5": - version: 0.7.5 - resolution: "@emotion/unitless@npm:0.7.5" - checksum: f976e5345b53fae9414a7b2e7a949aa6b52f8bdbcc84458b1ddc0729e77ba1d1dfdff9960e0da60183877873d3a631fa24d9695dd714ed94bcd3ba5196586a6b +"@esbuild/linux-riscv64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-riscv64@npm:0.16.17" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@emotion/unitless@npm:^0.8.0": - version: 0.8.0 - resolution: "@emotion/unitless@npm:0.8.0" - checksum: 176141117ed23c0eb6e53a054a69c63e17ae532ec4210907a20b2208f91771821835f1c63dd2ec63e30e22fcc984026d7f933773ee6526dd038e0850919fae7a +"@esbuild/linux-s390x@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-s390x@npm:0.16.17" + conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@emotion/unitless@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/unitless@npm:0.8.1" - checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 +"@esbuild/linux-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/linux-x64@npm:0.16.17" + conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@emotion/utils@npm:^1.0.0": - version: 1.0.0 - resolution: "@emotion/utils@npm:1.0.0" - checksum: 3ce8048441a915447d9ef51eb6d1d4cbcce8c8d1647bc7a23333ce2fb2249e74cf9471670d6f49a716e93ff633c9e7a6633517698e17391aebfc40c9d0cabcc0 +"@esbuild/netbsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/netbsd-x64@npm:0.16.17" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@emotion/utils@npm:^1.1.0": - version: 1.1.0 - resolution: "@emotion/utils@npm:1.1.0" - checksum: d3b681ca3a23b07033ac6c6937e71010a5549ac8ccec325eb6c91a7e48d9a73db83fa5dadc58be981bb125d7c00fedca868ea4362b1da9e02866615f96be4df1 +"@esbuild/openbsd-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/openbsd-x64@npm:0.16.17" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@emotion/utils@npm:^1.2.0": - version: 1.2.0 - resolution: "@emotion/utils@npm:1.2.0" - checksum: 55457a49ddd4db6a014ea0454dc09eaa23eedfb837095c8ff90470cb26a303f7ceb5fcc1e2190ef64683e64cfd33d3ba3ca3109cd87d12bc9e379e4195c9a4dd +"@esbuild/sunos-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/sunos-x64@npm:0.16.17" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@emotion/utils@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/utils@npm:1.2.1" - checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 +"@esbuild/win32-arm64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-arm64@npm:0.16.17" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.2.5": - version: 0.2.5 - resolution: "@emotion/weak-memoize@npm:0.2.5" - checksum: 27d402b0c683b94658220b6d47840346ee582329ca2a15ec9c233492e0f1a27687ccb233b76eedc922f2e185e444cc89f7b97a81a1d3e5ae9f075bab08e965ea +"@esbuild/win32-ia32@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-ia32@npm:0.16.17" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.0": - version: 0.3.0 - resolution: "@emotion/weak-memoize@npm:0.3.0" - checksum: f43ef4c8b7de70d9fa5eb3105921724651e4188e895beb71f0c5919dc899a7b8743e1fdd99d38b9092dd5722c7be2312ebb47fbdad0c4e38bea58f6df5885cc0 +"@esbuild/win32-x64@npm:0.16.17": + version: 0.16.17 + resolution: "@esbuild/win32-x64@npm:0.16.17" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.2.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -5397,7 +3771,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b @@ -5428,13 +3802,20 @@ __metadata: languageName: node linkType: hard -"@fluentui/date-time-utilities@npm:^8.5.1": - version: 8.5.1 - resolution: "@fluentui/date-time-utilities@npm:8.5.1" +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 42c32ef75e906c9a4809c1e1930a5ca6d4ddc8d138e1a8c8ba5ea07f997db32210617d23b2e4a85fe376316a41a1a0439fc6ff2dedf5126d96f45a9d80754fb2 + languageName: node + linkType: hard + +"@fluentui/date-time-utilities@npm:^8.5.16": + version: 8.5.16 + resolution: "@fluentui/date-time-utilities@npm:8.5.16" dependencies: - "@fluentui/set-version": ^8.2.1 + "@fluentui/set-version": ^8.2.14 tslib: ^2.1.0 - checksum: b7bc55fa75c3694bad2225667597957f53bfab7bff6a12fb35e5eeefd34cc66fa0559d38695391d97a780ed525252738f12c42bcad7d9fa08a614f23107deef7 + checksum: 473a2b49609eb46530327d8c7ddbe4518986c5ed0c6284ab75f61cdea75844a289eb342598752b76b39411acee5c35e1e73af82058c62f51440a9567c97aa326 languageName: node linkType: hard @@ -5448,127 +3829,92 @@ __metadata: languageName: node linkType: hard -"@fluentui/dom-utilities@npm:^2.2.0": - version: 2.2.0 - resolution: "@fluentui/dom-utilities@npm:2.2.0" - dependencies: - "@fluentui/set-version": ^8.2.0 - tslib: ^2.1.0 - checksum: ba0f29a4649c2b9a409cb5df975a15c942c501e91da27d49e9dc94600471bd73fe6bd6513794b2a4543eee60436da6de3ad8ee825b6220f00f92ec3ba1153e48 - languageName: node - linkType: hard - -"@fluentui/dom-utilities@npm:^2.2.1": - version: 2.2.1 - resolution: "@fluentui/dom-utilities@npm:2.2.1" +"@fluentui/dom-utilities@npm:^2.2.14": + version: 2.2.14 + resolution: "@fluentui/dom-utilities@npm:2.2.14" dependencies: - "@fluentui/set-version": ^8.2.1 + "@fluentui/set-version": ^8.2.14 tslib: ^2.1.0 - checksum: 6b0e6ffc75b190892eaa58df9e520b1bb578138da93bed0565839f2b0bb6a5bcb38709ae16f109ea1a6babae25a9a4f12032552d2096a72941ce0737815e0cc3 + checksum: 48bfa107f36537712838f92be719afcc69e280b11c593c9b5d55cf83ff87a4ff1cc3cb1ecfb85a8be2a3654572e59ecb7fa0c6a0e033c0f720fd8e58879159b7 languageName: node linkType: hard -"@fluentui/font-icons-mdl2@npm:^8.4.3": - version: 8.4.3 - resolution: "@fluentui/font-icons-mdl2@npm:8.4.3" +"@fluentui/font-icons-mdl2@npm:^8.5.32": + version: 8.5.32 + resolution: "@fluentui/font-icons-mdl2@npm:8.5.32" dependencies: - "@fluentui/set-version": ^8.2.1 - "@fluentui/style-utilities": ^8.7.2 - "@fluentui/utilities": ^8.9.0 + "@fluentui/set-version": ^8.2.14 + "@fluentui/style-utilities": ^8.10.3 + "@fluentui/utilities": ^8.13.24 tslib: ^2.1.0 - checksum: 522c156fd6979e703204db19000be13170898afc401664fbefad14f9c6bbe9f685fd9103d1905c10a3817ef30b034ec6753064d1de841964f2cc9e97a3e968c9 + checksum: 832fa0dc921659c5935fdc546ab1f572a9b51239e37770e51da47c0a88cabd7c5510bcf68dab7bb3edea87bd8c94aec5ecd862df8f06a3640f348b49d7915eb9 languageName: node linkType: hard -"@fluentui/foundation-legacy@npm:^8.2.10": - version: 8.2.10 - resolution: "@fluentui/foundation-legacy@npm:8.2.10" +"@fluentui/foundation-legacy@npm:^8.2.52": + version: 8.2.52 + resolution: "@fluentui/foundation-legacy@npm:8.2.52" dependencies: - "@fluentui/merge-styles": ^8.5.2 - "@fluentui/set-version": ^8.2.1 - "@fluentui/style-utilities": ^8.7.2 - "@fluentui/utilities": ^8.9.0 + "@fluentui/merge-styles": ^8.5.15 + "@fluentui/set-version": ^8.2.14 + "@fluentui/style-utilities": ^8.10.3 + "@fluentui/utilities": ^8.13.24 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 31799f158dae1699e763295a08a293852967f1e7c7297f27df11054e195155d63933960f858426dd7f95001cc30c3b6e5d3dbdb2012ff830ef8ca2685259a74f - languageName: node - linkType: hard - -"@fluentui/keyboard-key@npm:^0.4.1": - version: 0.4.1 - resolution: "@fluentui/keyboard-key@npm:0.4.1" - dependencies: - tslib: ^2.1.0 - checksum: 3b3b02e2f65a4779a8528879b8879b04fe17c821d34dce5db9c65257fcffe6d283147062518907537fb2f012760961157f438b9bcdb1a44c89d3ea1c7f6f494c - languageName: node - linkType: hard - -"@fluentui/merge-styles@npm:^8.4.0": - version: 8.4.0 - resolution: "@fluentui/merge-styles@npm:8.4.0" - dependencies: - "@fluentui/set-version": ^8.2.0 - tslib: ^2.1.0 - checksum: e85ddbbda53583dd4f21e72a2a1b0f24094deef506fe1771f82ad1c9cef471dd8ba18f2303fa48ecab2beea6d0e846095d326660b314cc8e100f48d5429ace0f + "@types/react": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + checksum: d59a318c2de3877a5af6e03c8f38583abe24efc861063007c0af3a2ce293297a9d4cd257f24987806fb58d19d27b686d5401fe4b972ade943f3f6a13f1a4167d languageName: node linkType: hard -"@fluentui/merge-styles@npm:^8.5.2": - version: 8.5.2 - resolution: "@fluentui/merge-styles@npm:8.5.2" +"@fluentui/keyboard-key@npm:^0.4.14": + version: 0.4.14 + resolution: "@fluentui/keyboard-key@npm:0.4.14" dependencies: - "@fluentui/set-version": ^8.2.1 tslib: ^2.1.0 - checksum: 646f97b5c319d521cecde45bb470477164d2bcfe8c40ccfef963a93ade5471871a332ea13255608729a8fbe733fdb9fad29ef83d6d9718b0739b00df25d7466a + checksum: 2af350c225aa2930478500ecb22396cf19b4ebbe4214aa19bfc1eea7cb38963c097e758826bd9c442862ec7702a3b92847c40dede0d31f2892c97d6ee34f9127 languageName: node linkType: hard -"@fluentui/react-focus@npm:^8.7.3": - version: 8.7.3 - resolution: "@fluentui/react-focus@npm:8.7.3" +"@fluentui/merge-styles@npm:^8.4.0, @fluentui/merge-styles@npm:^8.5.15": + version: 8.5.15 + resolution: "@fluentui/merge-styles@npm:8.5.15" dependencies: - "@fluentui/keyboard-key": ^0.4.1 - "@fluentui/merge-styles": ^8.5.2 - "@fluentui/set-version": ^8.2.1 - "@fluentui/style-utilities": ^8.7.2 - "@fluentui/utilities": ^8.9.0 + "@fluentui/set-version": ^8.2.14 tslib: ^2.1.0 - peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 5343a3fe8ffec2464f2907a4846e467198c160db197f2f00fbda64eef4bde888f0ba850d776e67cac4526633c37fabf9604886c287ae2f479893023e871af40e + checksum: 5649657e1bf91c290794a172707b05d0b8c880a8fcafc22813231d452ec1887e4f1a4bd45e10f86a8d0863b1794312b18f4b7b7af9c57a812ee14989fc952ff4 languageName: node linkType: hard -"@fluentui/react-hooks@npm:^8.5.0": - version: 8.5.0 - resolution: "@fluentui/react-hooks@npm:8.5.0" +"@fluentui/react-focus@npm:^8.8.40": + version: 8.8.40 + resolution: "@fluentui/react-focus@npm:8.8.40" dependencies: - "@fluentui/react-window-provider": ^2.2.0 - "@fluentui/set-version": ^8.2.0 - "@fluentui/utilities": ^8.6.0 + "@fluentui/keyboard-key": ^0.4.14 + "@fluentui/merge-styles": ^8.5.15 + "@fluentui/set-version": ^8.2.14 + "@fluentui/style-utilities": ^8.10.3 + "@fluentui/utilities": ^8.13.24 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: b863642c00c951ca15c9d4b35458ea7e5a1f01a8e5bd10ac2e663d24da823a52779cbd9d9360273813cf0056fb6a31f9dab54325d708e68a65e40223411076de + "@types/react": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + checksum: 8a68b8e32eb92b8708556ed16fa4a0c6493ad7fbacffb656bf64288419977a6cd3bae37f8bf5235543f6867144cb115d7d27220880570436e81e6e28e851d8d6 languageName: node linkType: hard -"@fluentui/react-hooks@npm:^8.6.1": - version: 8.6.1 - resolution: "@fluentui/react-hooks@npm:8.6.1" +"@fluentui/react-hooks@npm:^8.5.0, @fluentui/react-hooks@npm:^8.6.36": + version: 8.6.36 + resolution: "@fluentui/react-hooks@npm:8.6.36" dependencies: - "@fluentui/react-window-provider": ^2.2.1 - "@fluentui/set-version": ^8.2.1 - "@fluentui/utilities": ^8.9.0 + "@fluentui/react-window-provider": ^2.2.18 + "@fluentui/set-version": ^8.2.14 + "@fluentui/utilities": ^8.13.24 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: aaa5bb475b72cb1dfa65b2f127bbadf2f93ba8f134629a347c5da747ffa940aaffd3ce6d251cf4f93a59483725fc907c9d987cf247b890da0e1a097334d7cac1 + "@types/react": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + checksum: ba0886a4af5a8e34142f8c9180a4ad963caba71a7e2d9b0ad28615b41196ea7fd56ae40822a762a86128c1103e40a83964db3dd54381e87b5fe10e5070ee71b0 languageName: node linkType: hard @@ -5588,118 +3934,82 @@ __metadata: languageName: node linkType: hard -"@fluentui/react-portal-compat-context@npm:^9.0.1": - version: 9.0.1 - resolution: "@fluentui/react-portal-compat-context@npm:9.0.1" - dependencies: - tslib: ^2.1.0 - peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 289c05a039947b42b0fa8770ea179f864459735a3ae202f83dcd01bb1ae639fdbce8ff20e8cde5006f1d0399f8eaf1d7000abb472fcfbd53e7ce624e77d992c6 - languageName: node - linkType: hard - -"@fluentui/react-window-provider@npm:^2.2.0": - version: 2.2.0 - resolution: "@fluentui/react-window-provider@npm:2.2.0" +"@fluentui/react-portal-compat-context@npm:^9.0.11": + version: 9.0.11 + resolution: "@fluentui/react-portal-compat-context@npm:9.0.11" dependencies: - "@fluentui/set-version": ^8.2.0 - tslib: ^2.1.0 + "@swc/helpers": ^0.5.1 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 31a92060f018911f9bb4c99f44d600abe53267d6250417f7c256cb3e4073899ef171e79cc5e9847075140d13aedcb999a5b2f9ee6b3bc2a9299dac58d20588d0 + "@types/react": ">=16.14.0 <19.0.0" + react: ">=16.14.0 <19.0.0" + checksum: b7e6d881e3101c00b576b80f8cd7f1b30fc1fdc1a3a6699126eb99570f8061b8ec35e2e7427df9a9b510e564defd71e959a161acfca8f25a94199cea7f218cca languageName: node linkType: hard -"@fluentui/react-window-provider@npm:^2.2.1": - version: 2.2.1 - resolution: "@fluentui/react-window-provider@npm:2.2.1" +"@fluentui/react-window-provider@npm:^2.2.18": + version: 2.2.18 + resolution: "@fluentui/react-window-provider@npm:2.2.18" dependencies: - "@fluentui/set-version": ^8.2.1 + "@fluentui/set-version": ^8.2.14 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 1b8cf0f465fd6d75ce8a582a6d053238efc18544e4d55579a11cf87de6ea2f131c417ffd61b57682e12af513cf52b55db6b624671caa54eb41a7e8a2a04219a2 + "@types/react": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + checksum: 479cf5e4a3dc94f2257ab4673e8baaf889b7d84bddf8047be544d2b60bc7e13e921d47006c705f6b3e8859f0aa1292c0586fb7087d190f6964dc4aa73b3d2096 languageName: node linkType: hard "@fluentui/react@npm:^8.83.1": - version: 8.83.1 - resolution: "@fluentui/react@npm:8.83.1" - dependencies: - "@fluentui/date-time-utilities": ^8.5.1 - "@fluentui/font-icons-mdl2": ^8.4.3 - "@fluentui/foundation-legacy": ^8.2.10 - "@fluentui/merge-styles": ^8.5.2 - "@fluentui/react-focus": ^8.7.3 - "@fluentui/react-hooks": ^8.6.1 - "@fluentui/react-portal-compat-context": ^9.0.1 - "@fluentui/react-window-provider": ^2.2.1 - "@fluentui/set-version": ^8.2.1 - "@fluentui/style-utilities": ^8.7.2 - "@fluentui/theme": ^2.6.7 - "@fluentui/utilities": ^8.9.0 + version: 8.115.6 + resolution: "@fluentui/react@npm:8.115.6" + dependencies: + "@fluentui/date-time-utilities": ^8.5.16 + "@fluentui/font-icons-mdl2": ^8.5.32 + "@fluentui/foundation-legacy": ^8.2.52 + "@fluentui/merge-styles": ^8.5.15 + "@fluentui/react-focus": ^8.8.40 + "@fluentui/react-hooks": ^8.6.36 + "@fluentui/react-portal-compat-context": ^9.0.11 + "@fluentui/react-window-provider": ^2.2.18 + "@fluentui/set-version": ^8.2.14 + "@fluentui/style-utilities": ^8.10.3 + "@fluentui/theme": ^2.6.41 + "@fluentui/utilities": ^8.13.24 "@microsoft/load-themed-styles": ^1.10.26 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - "@types/react-dom": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - react-dom: ">=16.8.0 <18.0.0" - checksum: 133e9f7a270abc6c3e950482fbed744088f79329b4ab049fcf3e04e903dfd85ae5fa27b9a7e13e7bdde01e561d655d0090b002ec5c6a3d9e253eba8659f0b507 - languageName: node - linkType: hard - -"@fluentui/set-version@npm:^8.2.0": - version: 8.2.0 - resolution: "@fluentui/set-version@npm:8.2.0" - dependencies: - tslib: ^2.1.0 - checksum: c2e212d965b9bc75f59e4688c156b4af076e2f13d392c309fbb3b28c47e07a7f3e8b621358dacc5a2f934d59d1c2af5c2f416510325e13e40eb716368bcd5513 - languageName: node - linkType: hard - -"@fluentui/set-version@npm:^8.2.1": - version: 8.2.1 - resolution: "@fluentui/set-version@npm:8.2.1" - dependencies: - tslib: ^2.1.0 - checksum: d452597cf90a1b6ef304e86641a485a30b4021b926ede80f9eeb313ab2a45a31b207541b3ab3573ee730b4fa9f05ac4dbe342e0c0c21a75b5b636853e259f583 + "@types/react": ">=16.8.0 <19.0.0" + "@types/react-dom": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + react-dom: ">=16.8.0 <19.0.0" + checksum: d50762f4e3c50baa6480a90efb5e75b4136f6ce4c58f080395d5267ca44c97096517e4d3bafc112acb2521bb9185eb4972954f69ced42c2e0258bc3ad3bb4bd7 languageName: node linkType: hard -"@fluentui/style-utilities@npm:^8.6.0": - version: 8.6.0 - resolution: "@fluentui/style-utilities@npm:8.6.0" +"@fluentui/set-version@npm:^8.2.0, @fluentui/set-version@npm:^8.2.14": + version: 8.2.14 + resolution: "@fluentui/set-version@npm:8.2.14" dependencies: - "@fluentui/merge-styles": ^8.4.0 - "@fluentui/set-version": ^8.2.0 - "@fluentui/theme": ^2.5.0 - "@fluentui/utilities": ^8.6.0 - "@microsoft/load-themed-styles": ^1.10.26 tslib: ^2.1.0 - checksum: 4947f0125acadac84318d5f3620a8969ff132ee8cf7bb4dbdec476fc5d02cab598b7a5e8fda3384f4374862d33ccd7dd873c7df6839fc3826d7277c1c7a8cd52 + checksum: 7a6223d7fdd820ab92f2ffae0462a36d040686dda931deaff9524515c182df21acee4750ebefd9f35aa80346d8eac75bb1670a1ea362478512d7c40ea3c9d18e languageName: node linkType: hard -"@fluentui/style-utilities@npm:^8.7.2": - version: 8.7.2 - resolution: "@fluentui/style-utilities@npm:8.7.2" +"@fluentui/style-utilities@npm:^8.10.3, @fluentui/style-utilities@npm:^8.6.0": + version: 8.10.3 + resolution: "@fluentui/style-utilities@npm:8.10.3" dependencies: - "@fluentui/merge-styles": ^8.5.2 - "@fluentui/set-version": ^8.2.1 - "@fluentui/theme": ^2.6.7 - "@fluentui/utilities": ^8.9.0 + "@fluentui/merge-styles": ^8.5.15 + "@fluentui/set-version": ^8.2.14 + "@fluentui/theme": ^2.6.41 + "@fluentui/utilities": ^8.13.24 "@microsoft/load-themed-styles": ^1.10.26 tslib: ^2.1.0 - checksum: b03c264dc80cf44391fb6b582fb403947604f7653781cf9dbda16b078b2201ff62f70098c6747e5cd2ded4b428029da8787789df1b9c6240e75f3f1e8e5ca6ef + checksum: ec541655cf241cdb50ae4257688ef19f7f1d0cfa4e8e09768296a957767d33f2e966785c27d546c2542cb96a55e9a276d72714b8f3ba911840837c149ae431af languageName: node linkType: hard -"@fluentui/theme@npm:2.5.0, @fluentui/theme@npm:^2.5.0": +"@fluentui/theme@npm:2.5.0": version: 2.5.0 resolution: "@fluentui/theme@npm:2.5.0" dependencies: @@ -5714,67 +4024,52 @@ __metadata: languageName: node linkType: hard -"@fluentui/theme@npm:^2.6.7": - version: 2.6.7 - resolution: "@fluentui/theme@npm:2.6.7" - dependencies: - "@fluentui/merge-styles": ^8.5.2 - "@fluentui/set-version": ^8.2.1 - "@fluentui/utilities": ^8.9.0 - tslib: ^2.1.0 - peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 1b53c85f8bbbfcb679b9d9867a46e70383cddecac4e22b91a08af778c2bd7652e37898d099f3b4e851511c3ba2d8669a02bfb45787708ad3ab137cbb64fa2119 - languageName: node - linkType: hard - -"@fluentui/utilities@npm:^8.6.0": - version: 8.6.0 - resolution: "@fluentui/utilities@npm:8.6.0" +"@fluentui/theme@npm:^2.6.41": + version: 2.6.41 + resolution: "@fluentui/theme@npm:2.6.41" dependencies: - "@fluentui/dom-utilities": ^2.2.0 - "@fluentui/merge-styles": ^8.4.0 - "@fluentui/set-version": ^8.2.0 + "@fluentui/merge-styles": ^8.5.15 + "@fluentui/set-version": ^8.2.14 + "@fluentui/utilities": ^8.13.24 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 8742db67d99be34396930022ea83eff531bcd922a3bfa65044f956fd1a9c80e10fca8941aa237bf9f83d89d5b5b1fd23745995ca4e0fb0f4b3985c5c53bce6cc + "@types/react": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + checksum: 2319de26faf200592123f8990ee43e89f82dbd04c36674b1b44f0257a442dc0d0cf45f4a64b86d1ef7a1cd31bc24a556a44e7f05bcb70fde56a4e94f9ffc71bf languageName: node linkType: hard -"@fluentui/utilities@npm:^8.9.0": - version: 8.9.0 - resolution: "@fluentui/utilities@npm:8.9.0" +"@fluentui/utilities@npm:^8.13.24, @fluentui/utilities@npm:^8.6.0": + version: 8.13.24 + resolution: "@fluentui/utilities@npm:8.13.24" dependencies: - "@fluentui/dom-utilities": ^2.2.1 - "@fluentui/merge-styles": ^8.5.2 - "@fluentui/set-version": ^8.2.1 + "@fluentui/dom-utilities": ^2.2.14 + "@fluentui/merge-styles": ^8.5.15 + "@fluentui/set-version": ^8.2.14 tslib: ^2.1.0 peerDependencies: - "@types/react": ">=16.8.0 <18.0.0" - react: ">=16.8.0 <18.0.0" - checksum: 49ff09b20c44928209a09104b55c20934f97f3072ac64f08c6a8d8904e9d21d29e911750f7bd1688a202e21291f4cd2ba3e9fe076c2b6125600950f9014c9b80 + "@types/react": ">=16.8.0 <19.0.0" + react: ">=16.8.0 <19.0.0" + checksum: 441b6990d1eec55d61372579c5c94cc5b4001d2e066566c974310ecc86385df1b8ac901db3dca61817568aab626df3b097695980ab18669254389dd159e8b725 languageName: node linkType: hard "@gar/promisify@npm:^1.0.1": - version: 1.1.2 - resolution: "@gar/promisify@npm:1.1.2" - checksum: d05081e0887a49c178b75ee3067bd6ee086f73c154d121b854fb2e044e8a89cb1cbb6de3a0dd93a519b80f0531fda68b099dd7256205f7fbb3490324342f2217 + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 languageName: node linkType: hard "@geoffcox/react-splitter@npm:^2.0.3": - version: 2.1.1 - resolution: "@geoffcox/react-splitter@npm:2.1.1" + version: 2.1.2 + resolution: "@geoffcox/react-splitter@npm:2.1.2" dependencies: react-measure: ^2.5.2 peerDependencies: - react: ^16.13.1 - react-dom: ^16.13.1 - checksum: 08f022c643b5220dfae72209be3c39cb1f780dc110be0d13c7648a23d66c8435758538e972d71c5834d8186fe0c3d9ca9ad17b4754bbddb10346c24e9338198b + react: ">=16.8.0 <19.0.0" + react-dom: ">=16.8.0 <19.0.0" + checksum: b1b2b841891c1182788ae5fbc7e774905889eb2d337793ca93436e41a553b5767e547efd5234ea1321026397aa2e14c0c91c2f1ceb13ac09337c4a017ec1634b languageName: node linkType: hard @@ -5799,14 +4094,7 @@ __metadata: languageName: node linkType: hard -"@hapi/hoek@npm:^9.0.0": - version: 9.2.1 - resolution: "@hapi/hoek@npm:9.2.1" - checksum: 6a439f672df5f12f1d08d56967b4cb364ce05d81e95e3c3c1b88c5a98b917ca91c70e78cc0b2b4219a760cceec1f22d6658bfc93a83670cecc1ce9ca2247ebd8 - languageName: node - linkType: hard - -"@hapi/hoek@npm:^9.3.0": +"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 @@ -5868,6 +4156,20 @@ __metadata: languageName: node linkType: hard +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -6142,28 +4444,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: @@ -6174,13 +4455,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.0.3": - version: 3.0.6 - resolution: "@jridgewell/resolve-uri@npm:3.0.6" - checksum: e57cc08d2aaea6bd55e77e7a124beb2fcca87be28c0db6c2d69b7cb2cb4e14109bbef1d57ae6250bf5f4a4ad950f094ed99c8925adaf82336b66dab0ad6906e6 - languageName: node - linkType: hard - "@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -6188,20 +4462,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0": - version: 1.1.0 - resolution: "@jridgewell/set-array@npm:1.1.0" - checksum: 86ddd72ce7d2f7756dfb69804b35d0e760a85dcef30ed72e8610bf2c5e843f8878d977a0c77c4fdfa6a0e3d5b18e5bde4a1f1dd73fd2db06b200c998e9b5a6c5 - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e - languageName: node - linkType: hard - "@jridgewell/set-array@npm:^1.2.1": version: 1.2.1 resolution: "@jridgewell/set-array@npm:1.2.1" @@ -6209,31 +4469,24 @@ __metadata: languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.12 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.12" - checksum: a179bd442e74e5e3880d5a603bb63292ba3d55b3adf64ab9f1ea8c466bb32808e8fff032362dccb1157268574db99999bf4c3e6919d69a41f1951f1a534f2f77 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.14": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -6243,16 +4496,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.8, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef - languageName: node - linkType: hard - "@jsdevtools/ono@npm:^7.1.3": version: 7.1.3 resolution: "@jsdevtools/ono@npm:7.1.3" @@ -6282,13 +4525,13 @@ __metadata: linkType: hard "@mapbox/node-pre-gyp@npm:^1.0.3": - version: 1.0.8 - resolution: "@mapbox/node-pre-gyp@npm:1.0.8" + version: 1.0.11 + resolution: "@mapbox/node-pre-gyp@npm:1.0.11" dependencies: - detect-libc: ^1.0.3 + detect-libc: ^2.0.0 https-proxy-agent: ^5.0.0 make-dir: ^3.1.0 - node-fetch: ^2.6.5 + node-fetch: ^2.6.7 nopt: ^5.0.0 npmlog: ^5.0.1 rimraf: ^3.0.2 @@ -6296,7 +4539,7 @@ __metadata: tar: ^6.1.11 bin: node-pre-gyp: bin/node-pre-gyp - checksum: 29a38f39575107fa1665edf14defcfdf62e12bb38e9c27f7457ba42be84060125015171d12b8de3065155a465992f1854a363e2985f071fcbea9ff0701362b05 + checksum: b848f6abc531a11961d780db813cc510ca5a5b6bf3184d72134089c6875a91c44d571ba6c1879470020803f7803609e7b2e6e429651c026fe202facd11d444b8 languageName: node linkType: hard @@ -6501,21 +4744,21 @@ __metadata: linkType: hard "@microsoft/load-themed-styles@npm:^1.10.26": - version: 1.10.243 - resolution: "@microsoft/load-themed-styles@npm:1.10.243" - checksum: 70c091956c806a606e675f84949731e3ec704d7acee86d714b32032776f867344de27d18f3512f967de51ccbdc02ccf77ad2ce949b7e23f26ceca080a0cc38a9 + version: 1.10.295 + resolution: "@microsoft/load-themed-styles@npm:1.10.295" + checksum: 56e955b57fe0157aa4a32543d241171bc639256e43db6a4a8a687fffb994ccdbc62ec39bca5c722d40a579cf173bd55fb3de8123b7b09ae937fc11e498558a1f languageName: node linkType: hard "@microsoft/orchestrator-core@npm:~4.14.0": - version: 4.14.2 - resolution: "@microsoft/orchestrator-core@npm:4.14.2" + version: 4.14.4 + resolution: "@microsoft/orchestrator-core@npm:4.14.4" dependencies: "@mapbox/node-pre-gyp": ^1.0.3 bindings: 1.2.1 node-addon-api: ^3.1.0 node-gyp: ^8.0.0 - checksum: 6f385e9b4b94cd25eb81b875f8e657f29b2a9fd61a26dcaec2d2411619bad36c8651c2f7d36d0cdda51d3521fdb462c0399b4e1c58dd5a277dfe3a3dce3c4dfb + checksum: 780915651a226eff0bf93090164335df003eb0cac53c3ca66608943c948dede4b5143bef91e22b2eb71c20430356f23aa987ec6ab7ef2fa3df8b8f9d6bdcba13 conditions: (os=darwin | os=linux | os=win32) & (cpu=x64 | cpu=ia32) languageName: node linkType: hard @@ -6562,6 +4805,17 @@ __metadata: languageName: node linkType: hard +"@napi-rs/wasm-runtime@npm:^0.1.1": + version: 0.1.1 + resolution: "@napi-rs/wasm-runtime@npm:0.1.1" + dependencies: + "@emnapi/core": ^0.45.0 + "@emnapi/runtime": ^0.45.0 + "@tybys/wasm-util": ^0.8.1 + checksum: 38134f1cb723acd00d552b601786818d13734aaf73fff9ff63cca5e24c2c1c53bfb60c5d4629b940754b2238c1203b42275e53eb4f1316639610dba049c1d496 + languageName: node + linkType: hard + "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3": version: 2.1.8-no-fsevents.3 resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3" @@ -6569,114 +4823,124 @@ __metadata: languageName: node linkType: hard -"@node-rs/xxhash-android-arm-eabi@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-android-arm-eabi@npm:1.1.4" +"@node-rs/xxhash-android-arm-eabi@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-android-arm-eabi@npm:1.7.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@node-rs/xxhash-android-arm64@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-android-arm64@npm:1.1.4" +"@node-rs/xxhash-android-arm64@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-android-arm64@npm:1.7.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@node-rs/xxhash-darwin-arm64@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-darwin-arm64@npm:1.1.4" +"@node-rs/xxhash-darwin-arm64@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-darwin-arm64@npm:1.7.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@node-rs/xxhash-darwin-x64@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-darwin-x64@npm:1.1.4" +"@node-rs/xxhash-darwin-x64@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-darwin-x64@npm:1.7.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@node-rs/xxhash-freebsd-x64@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-freebsd-x64@npm:1.1.4" +"@node-rs/xxhash-freebsd-x64@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-freebsd-x64@npm:1.7.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@node-rs/xxhash-linux-arm-gnueabihf@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-linux-arm-gnueabihf@npm:1.1.4" +"@node-rs/xxhash-linux-arm-gnueabihf@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-linux-arm-gnueabihf@npm:1.7.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@node-rs/xxhash-linux-arm64-gnu@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-linux-arm64-gnu@npm:1.1.4" - conditions: os=linux & cpu=arm64 +"@node-rs/xxhash-linux-arm64-gnu@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-linux-arm64-gnu@npm:1.7.0" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@node-rs/xxhash-linux-arm64-musl@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-linux-arm64-musl@npm:1.1.4" - conditions: os=linux & cpu=arm64 +"@node-rs/xxhash-linux-arm64-musl@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-linux-arm64-musl@npm:1.7.0" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@node-rs/xxhash-linux-x64-gnu@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-linux-x64-gnu@npm:1.1.4" - conditions: os=linux & cpu=x64 +"@node-rs/xxhash-linux-x64-gnu@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-linux-x64-gnu@npm:1.7.0" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@node-rs/xxhash-linux-x64-musl@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-linux-x64-musl@npm:1.1.4" - conditions: os=linux & cpu=x64 +"@node-rs/xxhash-linux-x64-musl@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-linux-x64-musl@npm:1.7.0" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@node-rs/xxhash-win32-arm64-msvc@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-win32-arm64-msvc@npm:1.1.4" +"@node-rs/xxhash-wasm32-wasi@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-wasm32-wasi@npm:1.7.0" + dependencies: + "@napi-rs/wasm-runtime": ^0.1.1 + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@node-rs/xxhash-win32-arm64-msvc@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-win32-arm64-msvc@npm:1.7.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@node-rs/xxhash-win32-ia32-msvc@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-win32-ia32-msvc@npm:1.1.4" +"@node-rs/xxhash-win32-ia32-msvc@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-win32-ia32-msvc@npm:1.7.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@node-rs/xxhash-win32-x64-msvc@npm:1.1.4": - version: 1.1.4 - resolution: "@node-rs/xxhash-win32-x64-msvc@npm:1.1.4" +"@node-rs/xxhash-win32-x64-msvc@npm:1.7.0": + version: 1.7.0 + resolution: "@node-rs/xxhash-win32-x64-msvc@npm:1.7.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@node-rs/xxhash@npm:^1.0.1": - version: 1.1.4 - resolution: "@node-rs/xxhash@npm:1.1.4" - dependencies: - "@node-rs/xxhash-android-arm-eabi": 1.1.4 - "@node-rs/xxhash-android-arm64": 1.1.4 - "@node-rs/xxhash-darwin-arm64": 1.1.4 - "@node-rs/xxhash-darwin-x64": 1.1.4 - "@node-rs/xxhash-freebsd-x64": 1.1.4 - "@node-rs/xxhash-linux-arm-gnueabihf": 1.1.4 - "@node-rs/xxhash-linux-arm64-gnu": 1.1.4 - "@node-rs/xxhash-linux-arm64-musl": 1.1.4 - "@node-rs/xxhash-linux-x64-gnu": 1.1.4 - "@node-rs/xxhash-linux-x64-musl": 1.1.4 - "@node-rs/xxhash-win32-arm64-msvc": 1.1.4 - "@node-rs/xxhash-win32-ia32-msvc": 1.1.4 - "@node-rs/xxhash-win32-x64-msvc": 1.1.4 +"@node-rs/xxhash@npm:^1.6.2": + version: 1.7.0 + resolution: "@node-rs/xxhash@npm:1.7.0" + dependencies: + "@node-rs/xxhash-android-arm-eabi": 1.7.0 + "@node-rs/xxhash-android-arm64": 1.7.0 + "@node-rs/xxhash-darwin-arm64": 1.7.0 + "@node-rs/xxhash-darwin-x64": 1.7.0 + "@node-rs/xxhash-freebsd-x64": 1.7.0 + "@node-rs/xxhash-linux-arm-gnueabihf": 1.7.0 + "@node-rs/xxhash-linux-arm64-gnu": 1.7.0 + "@node-rs/xxhash-linux-arm64-musl": 1.7.0 + "@node-rs/xxhash-linux-x64-gnu": 1.7.0 + "@node-rs/xxhash-linux-x64-musl": 1.7.0 + "@node-rs/xxhash-wasm32-wasi": 1.7.0 + "@node-rs/xxhash-win32-arm64-msvc": 1.7.0 + "@node-rs/xxhash-win32-ia32-msvc": 1.7.0 + "@node-rs/xxhash-win32-x64-msvc": 1.7.0 dependenciesMeta: "@node-rs/xxhash-android-arm-eabi": optional: true @@ -6698,13 +4962,15 @@ __metadata: optional: true "@node-rs/xxhash-linux-x64-musl": optional: true + "@node-rs/xxhash-wasm32-wasi": + optional: true "@node-rs/xxhash-win32-arm64-msvc": optional: true "@node-rs/xxhash-win32-ia32-msvc": optional: true "@node-rs/xxhash-win32-x64-msvc": optional: true - checksum: 703d91b2b6f5a825472e2dde54bcbbf0cb0960b0b8b0f6e1267fe132b3dd8a136d693fee27965af04218c18b910962c43ab3c8f1acd23c605e50cb293ee911e4 + checksum: 38d685bdb55c339b2cdd045247978eb45cab7e69826b9b44e15c806d3196a67f42d4b316019d8a42af717efa2f022e982204aa86ed306bca3ee0c2d2cdd79496 languageName: node linkType: hard @@ -6742,13 +5008,35 @@ __metadata: languageName: node linkType: hard +"@npmcli/agent@npm:^2.0.0": + version: 2.2.1 + resolution: "@npmcli/agent@npm:2.2.1" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.1 + checksum: c69aca42dbba393f517bc5777ee872d38dc98ea0e5e93c1f6d62b82b8fecdc177a57ea045f07dda1a770c592384b2dd92a5e79e21e2a7cf51c9159466a8f9c9b + languageName: node + linkType: hard + "@npmcli/fs@npm:^1.0.0": - version: 1.1.0 - resolution: "@npmcli/fs@npm:1.1.0" + version: 1.1.1 + resolution: "@npmcli/fs@npm:1.1.1" dependencies: "@gar/promisify": ^1.0.1 semver: ^7.3.5 - checksum: e435b883b4f8da8c95a820f458cabb7d86582406eed5ad79fc689000d3e2df17e1f475c4903627272c001357cabc70d8b4c62520cbdae8cfab1dfdd51949f408 + checksum: f5ad92f157ed222e4e31c352333d0901df02c7c04311e42a81d8eb555d4ec4276ea9c635011757de20cc476755af33e91622838de573b17e52e2e7703f0a9965 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e languageName: node linkType: hard @@ -6763,18 +5051,18 @@ __metadata: linkType: hard "@oclif/command@npm:^1.5.13": - version: 1.8.16 - resolution: "@oclif/command@npm:1.8.16" + version: 1.8.36 + resolution: "@oclif/command@npm:1.8.36" dependencies: "@oclif/config": ^1.18.2 - "@oclif/errors": ^1.3.5 + "@oclif/errors": ^1.3.6 "@oclif/help": ^1.0.1 - "@oclif/parser": ^3.8.6 + "@oclif/parser": ^3.8.17 debug: ^4.1.1 - semver: ^7.3.2 + semver: ^7.5.4 peerDependencies: "@oclif/config": ^1 - checksum: c7cac8e1f9a7e5d9d88a316becc6f7f3bc72fce1a2d583d39b0b08cd98c13f0fe71e256f90ac586d7bd21054c8e76c0fef0b823bb7d108977d777e10c2678e7d + checksum: c3b39149a07b0c8b19c486bec14685371e14786049a56b382cb81798fc93f0d41f2482764bdb49814c7fc672b9fc4bf05b1d462a16ee567e5a42a940db5410ad languageName: node linkType: hard @@ -6795,17 +5083,31 @@ __metadata: languageName: node linkType: hard -"@oclif/config@npm:1.18.2, @oclif/config@npm:^1, @oclif/config@npm:^1.18.2": - version: 1.18.2 - resolution: "@oclif/config@npm:1.18.2" +"@oclif/config@npm:1.18.16": + version: 1.18.16 + resolution: "@oclif/config@npm:1.18.16" dependencies: - "@oclif/errors": ^1.3.3 - "@oclif/parser": ^3.8.0 - debug: ^4.1.1 - globby: ^11.0.1 + "@oclif/errors": ^1.3.6 + "@oclif/parser": ^3.8.16 + debug: ^4.3.4 + globby: ^11.1.0 + is-wsl: ^2.1.1 + tslib: ^2.6.1 + checksum: 951aa32b8938ec29575abaddc4bb6b96c68f6efb74821a83ee2105c8c73923001c26cd1f68c004192cb55b6dde647bfa420d0913bff02111efb2a4bbb26f2149 + languageName: node + linkType: hard + +"@oclif/config@npm:^1, @oclif/config@npm:^1.18.2": + version: 1.18.17 + resolution: "@oclif/config@npm:1.18.17" + dependencies: + "@oclif/errors": ^1.3.6 + "@oclif/parser": ^3.8.17 + debug: ^4.3.4 + globby: ^11.1.0 is-wsl: ^2.1.1 - tslib: ^2.0.0 - checksum: edb82ae885bb5a7a244d99707f837f8f0c7a3286a9f19e6cda2af599a06c189c21221082acde9927dadf951d060bdc05bee9ea5f9e8223c12688956b94c3b1e0 + tslib: ^2.6.1 + checksum: 57c136058cc79eed881f03510dbfb94377abb7331640bff95d9cdd5dcacb5b6fff31241661bcbe9245683d4d71e94d76fb9ea5ed6db6e32ef9d2c04b98306379 languageName: node linkType: hard @@ -6820,16 +5122,16 @@ __metadata: languageName: node linkType: hard -"@oclif/errors@npm:1.3.5, @oclif/errors@npm:^1.2.2, @oclif/errors@npm:^1.3.3, @oclif/errors@npm:^1.3.5": - version: 1.3.5 - resolution: "@oclif/errors@npm:1.3.5" +"@oclif/errors@npm:1.3.6, @oclif/errors@npm:^1.2.2, @oclif/errors@npm:^1.3.6": + version: 1.3.6 + resolution: "@oclif/errors@npm:1.3.6" dependencies: clean-stack: ^3.0.0 fs-extra: ^8.1 indent-string: ^4.0.0 - strip-ansi: ^6.0.0 + strip-ansi: ^6.0.1 wrap-ansi: ^7.0.0 - checksum: abce216ff1321ac4924fe405c50e9b2a93cfb51ad229d7e6ced8ee1c4bd01a85ee270b4433a12c73da9394dd8e9f6ec73443f8582da7ac46379b7e4991c3fa50 + checksum: be9f686e30f91f792aeaba635e2473da5494c1d25bf98a55ff766aca52b78fd3cb2c75902b6c24f21d6c893841a45a69367645971e793cc677d643eeb39f146f languageName: node linkType: hard @@ -6847,11 +5149,11 @@ __metadata: linkType: hard "@oclif/help@npm:^1.0.1": - version: 1.0.1 - resolution: "@oclif/help@npm:1.0.1" + version: 1.0.15 + resolution: "@oclif/help@npm:1.0.15" dependencies: - "@oclif/config": 1.18.2 - "@oclif/errors": 1.3.5 + "@oclif/config": 1.18.16 + "@oclif/errors": 1.3.6 chalk: ^4.1.2 indent-string: ^4.0.0 lodash: ^4.17.21 @@ -6859,7 +5161,7 @@ __metadata: strip-ansi: ^6.0.0 widest-line: ^3.1.0 wrap-ansi: ^6.2.0 - checksum: 26cdde82ca98f34bc57f7c7513b151f5fc2a6332f37b2f1186fe6d946011b7a4cc11e91053c569ebd28ad2b2ea90fd4a0851a21167e7780041a0caf369a8b277 + checksum: 7402a39e066018023673438cb87ecce7f04c8fda4952f8c95a7b0a358e7ae25ebcc97fef555baee4e49fd214f117befda23e598f9b0466a298f5440e651d70df languageName: node linkType: hard @@ -6870,15 +5172,15 @@ __metadata: languageName: node linkType: hard -"@oclif/parser@npm:^3.8.0, @oclif/parser@npm:^3.8.3, @oclif/parser@npm:^3.8.6": - version: 3.8.6 - resolution: "@oclif/parser@npm:3.8.6" +"@oclif/parser@npm:^3.8.0, @oclif/parser@npm:^3.8.16, @oclif/parser@npm:^3.8.17, @oclif/parser@npm:^3.8.3": + version: 3.8.17 + resolution: "@oclif/parser@npm:3.8.17" dependencies: - "@oclif/errors": ^1.2.2 + "@oclif/errors": ^1.3.6 "@oclif/linewrap": ^1.0.0 chalk: ^4.1.0 - tslib: ^2.0.0 - checksum: 833450bafb86630f4b887e52477136abe368e1702f93d4aa81ef26bb208afa2183d48ca833898f8164cd56ed8489564fc59d4f58c7b6ea9d3d918a7754be7535 + tslib: ^2.6.2 + checksum: 269d258842ca0ed27100dbc3ac3da505dcd9735e6d1916838d35cb7a93bb27e0d39e1c2239d1b8b150231e473d19c4d184f78e92ad2732377f1de2e2d1f454fb languageName: node linkType: hard @@ -6905,6 +5207,13 @@ __metadata: languageName: node linkType: hard +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + "@pkgr/core@npm:^0.1.0": version: 0.1.1 resolution: "@pkgr/core@npm:0.1.1" @@ -6912,10 +5221,10 @@ __metadata: languageName: node linkType: hard -"@polka/url@npm:^1.0.0-next.20": - version: 1.0.0-next.21 - resolution: "@polka/url@npm:1.0.0-next.21" - checksum: c7654046d38984257dd639eab3dc770d1b0340916097b2fac03ce5d23506ada684e05574a69b255c32ea6a144a957c8cd84264159b545fca031c772289d88788 +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.25 + resolution: "@polka/url@npm:1.0.0-next.25" + checksum: 4ab1d7a37163139c0e7bfc9d1e3f6a2a0db91a78b9f0a21f571d6aec2cdaeaacced744d47886c117aa7579aa5694b303fe3e0bd1922bb9cb3ce6bf7c2dc09801 languageName: node linkType: hard @@ -6935,9 +5244,9 @@ __metadata: languageName: node linkType: hard -"@redux-saga/core@npm:^1.2.1": - version: 1.2.2 - resolution: "@redux-saga/core@npm:1.2.2" +"@redux-saga/core@npm:^1.2.3": + version: 1.3.0 + resolution: "@redux-saga/core@npm:1.3.0" dependencies: "@babel/runtime": ^7.6.3 "@redux-saga/deferred": ^1.2.1 @@ -6945,9 +5254,8 @@ __metadata: "@redux-saga/is": ^1.1.3 "@redux-saga/symbols": ^1.1.3 "@redux-saga/types": ^1.2.1 - redux: ^4.0.4 typescript-tuple: ^2.2.1 - checksum: a09f0457b78be9c5e9c4365d1fdee7198e627e1ac3f6883c10df48dfead567c3af3ce03b2234331cd5cb3e27eb3a4cf51b28349bff439776108443d653e6b91f + checksum: b2ef695f506220ba4da581669ff6e5f2d30483afecf804497cc752097af93e8767915de4f1a56e23072935272b13a43b53fe44cae6a993ff586fff40d760ea2b languageName: node linkType: hard @@ -7021,13 +5329,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^0.14.0": - version: 0.14.0 - resolution: "@sindresorhus/is@npm:0.14.0" - checksum: 971e0441dd44ba3909b467219a5e242da0fc584048db5324cfb8048148fa8dcc9d44d71e3948972c4f6121d24e5da402ef191420d1266a95f713bb6d6e59c98a - languageName: node - linkType: hard - "@sindresorhus/is@npm:^0.7.0": version: 0.7.0 resolution: "@sindresorhus/is@npm:0.7.0" @@ -7042,6 +5343,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/merge-streams@npm:^2.1.0": + version: 2.3.0 + resolution: "@sindresorhus/merge-streams@npm:2.3.0" + checksum: e989d53dee68d7e49b4ac02ae49178d561c461144cea83f66fa91ff012d981ad0ad2340cbd13f2fdb57989197f5c987ca22a74eb56478626f04e79df84291159 + languageName: node + linkType: hard + "@sinonjs/commons@npm:^3.0.0": version: 3.0.1 resolution: "@sinonjs/commons@npm:3.0.1" @@ -7198,170 +5506,64 @@ __metadata: languageName: node linkType: hard -"@swc-node/core@npm:^1.8.2": - version: 1.8.2 - resolution: "@swc-node/core@npm:1.8.2" - dependencies: - "@swc/core": ^1.2.119 - checksum: e137b1751983a27ce120286960ce6d87071e2605a8467a9f6b8875b305e0328fa67b53582dfab52b5d6be8d6e86091777244a1aaa579de6d6c84e31b1f66d223 +"@swc-node/core@npm:^1.13.0": + version: 1.13.0 + resolution: "@swc-node/core@npm:1.13.0" + peerDependencies: + "@swc/core": ">= 1.3" + "@swc/types": ">= 0.1" + checksum: 12056f1458c535c54c889aafbe969feef9329210657e1d22235b7d795856ec88e4a8e2116572371698ff2c0b184ebe7935ec857748262d5fcf0bd5b1563649b7 languageName: node linkType: hard "@swc-node/jest@npm:^1.3.0": - version: 1.4.3 - resolution: "@swc-node/jest@npm:1.4.3" + version: 1.8.0 + resolution: "@swc-node/jest@npm:1.8.0" dependencies: - "@node-rs/xxhash": ^1.0.1 - "@swc-node/core": ^1.8.2 - checksum: bfc7b7c54eaa761f7bc31c3afda9fcfb99b177efee39b08cda2a2014f60eccf45a6dfefe4d8973d4cc34b4193516f434ca891b71d084185582122d86c27738cf - languageName: node - linkType: hard - -"@swc/core-android-arm-eabi@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-android-arm-eabi@npm:1.2.133" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@swc/core-android-arm64@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-android-arm64@npm:1.2.133" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-darwin-arm64@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-darwin-arm64@npm:1.2.133" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-darwin-x64@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-darwin-x64@npm:1.2.133" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-freebsd-x64@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-freebsd-x64@npm:1.2.133" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-linux-arm-gnueabihf@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.2.133" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@swc/core-linux-arm64-gnu@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-linux-arm64-gnu@npm:1.2.133" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-linux-arm64-musl@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-linux-arm64-musl@npm:1.2.133" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-linux-x64-gnu@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-linux-x64-gnu@npm:1.2.133" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-linux-x64-musl@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-linux-x64-musl@npm:1.2.133" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-win32-arm64-msvc@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-win32-arm64-msvc@npm:1.2.133" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-win32-ia32-msvc@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-win32-ia32-msvc@npm:1.2.133" - conditions: os=win32 & cpu=ia32 + "@node-rs/xxhash": ^1.6.2 + "@swc-node/core": ^1.13.0 + "@swc-node/register": ^1.9.0 + peerDependencies: + "@swc/core": ">= 1.3" + "@swc/types": ">= 0.1" + typescript: ">= 5.0" + checksum: 64a802aefd20771c74a152049481b6cccbb4cc4b349b9c9cb3f4cebce6945f7a046edb8e45753c053394e9898f3b601341fc2bc927ff7c897a41c552efe85a35 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.2.133": - version: 1.2.133 - resolution: "@swc/core-win32-x64-msvc@npm:1.2.133" - conditions: os=win32 & cpu=x64 +"@swc-node/register@npm:^1.9.0": + version: 1.9.0 + resolution: "@swc-node/register@npm:1.9.0" + dependencies: + "@swc-node/core": ^1.13.0 + "@swc-node/sourcemap-support": ^0.5.0 + colorette: ^2.0.20 + debug: ^4.3.4 + pirates: ^4.0.6 + tslib: ^2.6.2 + peerDependencies: + "@swc/core": ">= 1.3" + typescript: ">= 4.3" + checksum: 5e08ece47a4a69deaa6594dfab2c018212d61bacb3bb8ba35875a319188eb83bbc14d58b8843cf424954fc0cbfd3e03a44956b8cfc81eed3d1b7c06b6f90a904 languageName: node linkType: hard -"@swc/core@npm:^1.2.119": - version: 1.2.133 - resolution: "@swc/core@npm:1.2.133" - dependencies: - "@swc/core-android-arm-eabi": 1.2.133 - "@swc/core-android-arm64": 1.2.133 - "@swc/core-darwin-arm64": 1.2.133 - "@swc/core-darwin-x64": 1.2.133 - "@swc/core-freebsd-x64": 1.2.133 - "@swc/core-linux-arm-gnueabihf": 1.2.133 - "@swc/core-linux-arm64-gnu": 1.2.133 - "@swc/core-linux-arm64-musl": 1.2.133 - "@swc/core-linux-x64-gnu": 1.2.133 - "@swc/core-linux-x64-musl": 1.2.133 - "@swc/core-win32-arm64-msvc": 1.2.133 - "@swc/core-win32-ia32-msvc": 1.2.133 - "@swc/core-win32-x64-msvc": 1.2.133 - dependenciesMeta: - "@swc/core-android-arm-eabi": - optional: true - "@swc/core-android-arm64": - optional: true - "@swc/core-darwin-arm64": - optional: true - "@swc/core-darwin-x64": - optional: true - "@swc/core-freebsd-x64": - optional: true - "@swc/core-linux-arm-gnueabihf": - optional: true - "@swc/core-linux-arm64-gnu": - optional: true - "@swc/core-linux-arm64-musl": - optional: true - "@swc/core-linux-x64-gnu": - optional: true - "@swc/core-linux-x64-musl": - optional: true - "@swc/core-win32-arm64-msvc": - optional: true - "@swc/core-win32-ia32-msvc": - optional: true - "@swc/core-win32-x64-msvc": - optional: true - checksum: cc2f28ce7f70e7d94491fef9ed75f3db564f0f00c54d6230e8acac466ec0301481a2bbde8c85daa03bbf9f796cabf11e57b27524495e8db6daa62cdd9bb3ad9b +"@swc-node/sourcemap-support@npm:^0.5.0": + version: 0.5.0 + resolution: "@swc-node/sourcemap-support@npm:0.5.0" + dependencies: + source-map-support: ^0.5.21 + tslib: ^2.6.2 + checksum: 2163f2ae337dafa07f62492a78d1e7b272207c91f1f7b5a9ab95ba929b7dfa93a4db1188dbafde117dae7219805ba9aac9693fd2066563992dba2239295181ee languageName: node linkType: hard -"@szmarczak/http-timer@npm:^1.1.2": - version: 1.1.2 - resolution: "@szmarczak/http-timer@npm:1.1.2" +"@swc/helpers@npm:^0.5.1": + version: 0.5.6 + resolution: "@swc/helpers@npm:0.5.6" dependencies: - defer-to-connect: ^1.0.1 - checksum: 4d9158061c5f397c57b4988cde33a163244e4f02df16364f103971957a32886beb104d6180902cbe8b38cb940e234d9f98a4e486200deca621923f62f50a06fe + tslib: ^2.4.0 + checksum: 45de57097e1f6f356f571c7a4f55c692a46b0404c8601e5d9552e152000dfe541ff529d3d01c8a4abf60799d6e7d0078936e40be0a203ca356299d5d6adea765 languageName: node linkType: hard @@ -7403,19 +5605,19 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^5.13.0": - version: 5.16.1 - resolution: "@testing-library/jest-dom@npm:5.16.1" + version: 5.17.0 + resolution: "@testing-library/jest-dom@npm:5.17.0" dependencies: + "@adobe/css-tools": ^4.0.1 "@babel/runtime": ^7.9.2 "@types/testing-library__jest-dom": ^5.9.1 aria-query: ^5.0.0 chalk: ^3.0.0 - css: ^3.0.0 css.escape: ^1.5.1 dom-accessibility-api: ^0.5.6 lodash: ^4.17.15 redent: ^3.0.0 - checksum: c5e3b5b021b50478137f96b85f8f6f86d2b25555d2501548982e093986f9c089c7b394449c30283ca3e28a50e845587403d9124ad1b516c55cf9af20a0fbbde4 + checksum: 9f28dbca8b50d7c306aae40c3aa8e06f0e115f740360004bd87d57f95acf7ab4b4f4122a7399a76dbf2bdaaafb15c99cc137fdcb0ae457a92e2de0f3fbf9b03b languageName: node linkType: hard @@ -7479,6 +5681,15 @@ __metadata: languageName: node linkType: hard +"@tybys/wasm-util@npm:^0.8.1": + version: 0.8.1 + resolution: "@tybys/wasm-util@npm:0.8.1" + dependencies: + tslib: ^2.4.0 + checksum: 9dd873c27aa13297992e54fd1f42782c18f1888d1063749e098673f8294938703deb7be92e2020f4807316768c2cb9438055d30a2af9126689258b74d8a39675 + languageName: node + linkType: hard + "@types/archiver@npm:^3.1.0": version: 3.1.1 resolution: "@types/archiver@npm:3.1.1" @@ -7496,67 +5707,67 @@ __metadata: linkType: hard "@types/atob-lite@npm:^2.0.0": - version: 2.0.0 - resolution: "@types/atob-lite@npm:2.0.0" - checksum: f4f7080372a9aa84e9a5f92fdd4ba10394e27dead8c76e24a183d731a6f47d9bc15b8c210ce53ac99377bd6e7d282e92938558e9cf5d4124f5faaa294b3e62d6 + version: 2.0.2 + resolution: "@types/atob-lite@npm:2.0.2" + checksum: 05db6df569df67d4e8937e3b24512b095df722382a777f32567bd60e1f5b09a0b2886595e8af8949fa8a71f783613046ccbcaaa32841974148a84be86babc6ba languageName: node linkType: hard "@types/babel__core@npm:^7.1.14": - version: 7.1.18 - resolution: "@types/babel__core@npm:7.1.18" + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: 2e5b5d7c84f347d3789575486e58b0df5c91613abc3d27e716274aba3048518e07e1f068250ba829e2ed58532ccc88da595ce95ba2688e7bbcd7c25a3c6627ed + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" dependencies: "@babel/types": ^7.0.0 - checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 + checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 languageName: node linkType: hard "@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 - checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 languageName: node linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.14.2 - resolution: "@types/babel__traverse@npm:7.14.2" + version: 7.20.5 + resolution: "@types/babel__traverse@npm:7.20.5" dependencies: - "@babel/types": ^7.3.0 - checksum: a797ea09c72307569e3ee08aa3900ca744ce3091114084f2dc59b67a45ee7d01df7865252790dbfa787a7915ce892cdc820c9b920f3683292765fc656b08dc63 + "@babel/types": ^7.20.7 + checksum: 608e0ab4fc31cd47011d98942e6241b34d461608c0c0e153377c5fd822c436c475f1ded76a56bfa76a1adf8d9266b727bbf9bfac90c4cb152c97f30dadc5b7e8 languageName: node linkType: hard "@types/body-parser@npm:*, @types/body-parser@npm:^1.17.0": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" dependencies: "@types/connect": "*" "@types/node": "*" - checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 + checksum: 1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 languageName: node linkType: hard "@types/btoa-lite@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/btoa-lite@npm:1.0.0" - checksum: 4d0c3c36cc8aa5669d286d62ca45d925e3ea0db75222ebacb0d9f4fd7822b8e162da8773887e045c11d64c42373807d2ab2ad97a5d8a683d2e1c981e6a05ce33 + version: 1.0.2 + resolution: "@types/btoa-lite@npm:1.0.2" + checksum: 4c46b163c881a75522c7556dd7a7df8a0d4c680a45e8bac34e50864e1c2d9df8dc90b99f75199154c60ef2faff90896b7e5f11df6936c94167a3e5e1c6f4d935 languageName: node linkType: hard @@ -7582,43 +5793,43 @@ __metadata: linkType: hard "@types/connect@npm:*": - version: 3.4.35 - resolution: "@types/connect@npm:3.4.35" + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" dependencies: "@types/node": "*" - checksum: fe81351470f2d3165e8b12ce33542eef89ea893e36dd62e8f7d72566dfb7e448376ae962f9f3ea888547ce8b55a40020ca0e01d637fab5d99567673084542641 + checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 languageName: node linkType: hard "@types/cookie-parser@npm:^1.4.1": - version: 1.4.2 - resolution: "@types/cookie-parser@npm:1.4.2" + version: 1.4.7 + resolution: "@types/cookie-parser@npm:1.4.7" dependencies: "@types/express": "*" - checksum: d5b3c0e193cc95289444306ad396b27b92c9ff1ffd0769268b374d09315c8df1ae94de5fe2a81a79c0629560646763136e15c8a4069d3dc5ba5cb6bc185eaccd + checksum: 7b87c59420598e686a57e240be6e0db53967c3c8814be9326bf86609ee2fc39c4b3b9f2263e1deba43526090121d1df88684b64c19f7b494a80a4437caf3d40b languageName: node linkType: hard -"@types/debug@npm:*, @types/debug@npm:^4.1.2, @types/debug@npm:^4.1.5, @types/debug@npm:^4.1.6": - version: 4.1.7 - resolution: "@types/debug@npm:4.1.7" +"@types/debug@npm:*, @types/debug@npm:^4.0.0, @types/debug@npm:^4.1.2, @types/debug@npm:^4.1.5, @types/debug@npm:^4.1.6": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" dependencies: "@types/ms": "*" - checksum: 0a7b89d8ed72526858f0b61c6fd81f477853e8c4415bb97f48b1b5545248d2ae389931680b94b393b993a7cfe893537a200647d93defe6d87159b96812305adc + checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 languageName: node linkType: hard "@types/diff@npm:*": - version: 5.0.2 - resolution: "@types/diff@npm:5.0.2" - checksum: 8fbc419b5aca33f494026bf5f70e026f76367689677ef114f9c078ac738d7dbe96e6dda3fd8290e4a7c35281e2b60b034e3d7e3c968b850cf06a21279e7ddcbe + version: 5.0.9 + resolution: "@types/diff@npm:5.0.9" + checksum: fb5cb6d6407e3ebcd8883bdc9f9124b57ebc04720cfb605afc5f839f9a71878ccf895da66b09d5d8df25e684cfe57a6f6f4bf65f87ccc0ce0b58a18b1f3ce5b0 languageName: node linkType: hard "@types/ejs@npm:*": - version: 3.1.0 - resolution: "@types/ejs@npm:3.1.0" - checksum: 2905e401a1cf632ff0001bbb3e647b4f96f1db31ac34ed0b04f2670500d74e60e705526ae87da6e2fe13744ea5b21d521de3c6695d02b21f9121d13402c554da + version: 3.1.5 + resolution: "@types/ejs@npm:3.1.5" + checksum: e142266283051f27a7f79329871b311687dede19ae20268d882e4de218c65e1311d28a300b85579ca67157a8d601b7234daa50c2f99b252b121d27b4e5b21468 languageName: node linkType: hard @@ -7650,11 +5861,11 @@ __metadata: linkType: hard "@types/express-unless@npm:*": - version: 0.5.2 - resolution: "@types/express-unless@npm:0.5.2" + version: 0.5.3 + resolution: "@types/express-unless@npm:0.5.3" dependencies: "@types/express": "*" - checksum: 31446f1871e29fb3c576f909c3770e167ac219f9dde94c82c236fe0da45f97bd509fd9dc8bb302caaf5b9b41589b0cb27b53309c8b8459b3904b0e3c98f215f7 + checksum: 5c76425ff7490123f3c072c942ae6d18bb3cbf91d5d9857c52fca1f9a3d11b72413dbfb3e4af28fdd7f745d1a443f90daadbcf7daff714d608eef10bd7c8763c languageName: node linkType: hard @@ -7677,11 +5888,11 @@ __metadata: linkType: hard "@types/form-data@npm:^2.2.1": - version: 2.5.0 - resolution: "@types/form-data@npm:2.5.0" + version: 2.2.1 + resolution: "@types/form-data@npm:2.2.1" dependencies: - form-data: "*" - checksum: c3f6c8932726970d49d67a23410d5eef0e1ad0be418163ccc3d73a4cbaa0dcd71e0e29acbe2779aab85ed8f47cb0e8f6b67028480da3b0f7d074c5a3416b2400 + "@types/node": "*" + checksum: 2a86073fda631bb75f92c1196a604736baa85381ee87f40d54ccc197608237bbe339c42aba91e94d65b2930d697f7660d26cd6f0af6c3350addd791658103592 languageName: node linkType: hard @@ -7704,15 +5915,25 @@ __metadata: linkType: hard "@types/fs-extra@npm:~8.1.0": - version: 8.1.2 - resolution: "@types/fs-extra@npm:8.1.2" + version: 8.1.5 + resolution: "@types/fs-extra@npm:8.1.5" + dependencies: + "@types/node": "*" + checksum: a76db2a9640a24c7cb7a75981113ccec1be8a876453beb0a4d51ea8df5980562b6a6d2adf70cab0a9ccb4f1fa677c7900c875ce0a73e48105bb100cb043461f0 + languageName: node + linkType: hard + +"@types/glob@npm:*": + version: 8.1.0 + resolution: "@types/glob@npm:8.1.0" dependencies: + "@types/minimatch": ^5.1.2 "@types/node": "*" - checksum: 7277198ded9caea5750c82e569ba1e6fbac28cdb4a95e5d52d24e7c4c2ac90bf45fbe89e08fc21de8f9d3c9b302e30680566eb04e460c30ceac66ad24c161b37 + checksum: 9101f3a9061e40137190f70626aa0e202369b5ec4012c3fabe6f5d229cce04772db9a94fa5a0eb39655e2e4ad105c38afbb4af56a56c0996a8c7d4fc72350e3d languageName: node linkType: hard -"@types/glob@npm:*, @types/glob@npm:^7.1.1": +"@types/glob@npm:^7.1.1": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" dependencies: @@ -7741,12 +5962,12 @@ __metadata: linkType: hard "@types/hoist-non-react-statics@npm:^3.3.0": - version: 3.3.1 - resolution: "@types/hoist-non-react-statics@npm:3.3.1" + version: 3.3.5 + resolution: "@types/hoist-non-react-statics@npm:3.3.5" dependencies: "@types/react": "*" hoist-non-react-statics: ^3.3.0 - checksum: 2c0778570d9a01d05afabc781b32163f28409bb98f7245c38d5eaf082416fdb73034003f5825eb5e21313044e8d2d9e1f3fe2831e345d3d1b1d20bcd12270719 + checksum: b645b062a20cce6ab1245ada8274051d8e2e0b2ee5c6bd58215281d0ec6dae2f26631af4e2e7c8abe238cdcee73fcaededc429eef569e70908f82d0cc0ea31d7 languageName: node linkType: hard @@ -7764,29 +5985,29 @@ __metadata: languageName: node linkType: hard -"@types/inquirer@npm:*": - version: 8.1.3 - resolution: "@types/inquirer@npm:8.1.3" +"@types/inquirer@npm:^8": + version: 8.2.10 + resolution: "@types/inquirer@npm:8.2.10" dependencies: "@types/through": "*" rxjs: ^7.2.0 - checksum: b2f9914d1380e60a9a6d890abdd24078db63069a4bd974e77a00c5660bf5cab33a60fba6f02b56f1b2e6418e287e4697361b12cb85704b13e76f1a23c934d203 + checksum: e576823345146e939e93e06fc5a81baa5231f0113b669191155cd5f5925b3e897d3a3c42c0be8b3e7b0b188b7e05d1cf42011cc2da4d123f7e58940caf9cd17f languageName: node linkType: hard "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 languageName: node linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 + checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 languageName: node linkType: hard @@ -7801,21 +6022,21 @@ __metadata: linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" dependencies: "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 + checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 languageName: node linkType: hard "@types/jest@npm:*": - version: 27.4.0 - resolution: "@types/jest@npm:27.4.0" + version: 29.5.12 + resolution: "@types/jest@npm:29.5.12" dependencies: - jest-diff: ^27.0.0 - pretty-format: ^27.0.0 - checksum: d2350267f954f9a2e4a15e5f02fbf19a77abfb9fd9e57a954de1fb0e9a0d3d5f8d3646ac7d9c42aeb4b4d828d2e70624ec149c85bb50a48634a54eed8429e1f8 + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c languageName: node linkType: hard @@ -7829,14 +6050,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6": - version: 7.0.9 - resolution: "@types/json-schema@npm:7.0.9" - checksum: 259d0e25f11a21ba5c708f7ea47196bd396e379fddb79c76f9f4f62c945879dc21657904914313ec2754e443c5018ea8372362f323f30e0792897fdb2098a705 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.12": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -7851,11 +6065,11 @@ __metadata: linkType: hard "@types/jsonwebtoken@npm:^9.0.0": - version: 9.0.0 - resolution: "@types/jsonwebtoken@npm:9.0.0" + version: 9.0.6 + resolution: "@types/jsonwebtoken@npm:9.0.6" dependencies: "@types/node": "*" - checksum: c7791354ba895759524c18ba609ea04efdc576e2b660bd6f80d5b917db8dc4b01acd4d1bc115a62d35406a82e627067973d475c4b36035dabaa27862b141ae49 + checksum: a568e7cb1c703bcb015eff8bf5996e276e748d2b39ddc47edf5ddccd1378f5792179c43302a1c803e47a54b0220f9ecaae445ec444d28bf81b88856f899e85b9 languageName: node linkType: hard @@ -7866,16 +6080,7 @@ __metadata: languageName: node linkType: hard -"@types/keyv@npm:^3.1.1": - version: 3.1.3 - resolution: "@types/keyv@npm:3.1.3" - dependencies: - "@types/node": "*" - checksum: b5f8aa592cc21c16d99e69aec0976f12b893b055e4456d90148a610a6b6088e297b2ba5f38f8c8280cef006cfd8f9ec99e069905020882619dc5fc8aa46f5f27 - languageName: node - linkType: hard - -"@types/keyv@npm:^3.1.4": +"@types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" dependencies: @@ -7885,18 +6090,18 @@ __metadata: linkType: hard "@types/lodash.isequal@npm:^4.5.5": - version: 4.5.5 - resolution: "@types/lodash.isequal@npm:4.5.5" + version: 4.5.8 + resolution: "@types/lodash.isequal@npm:4.5.8" dependencies: "@types/lodash": "*" - checksum: 9dd22ceb5453a711e3ce6cd5a31d0ba8fe2263b3c989bc3b64e398933dbe7e9fd22a77a585ab7ee4f27d80a00845e15602b2a4a4b113f01291e2fd236a7707f7 + checksum: f3180c2d2925514fff1908a1303c11468c9f39b47fd7b053416aad3f1447f8e4a9894dd0460187ac9ac19387e25aec8dd8214d13a50a0967e0dc9cca8e4c5353 languageName: node linkType: hard "@types/lodash@npm:*, @types/lodash@npm:^4.14.146, @types/lodash@npm:^4.14.149": - version: 4.14.178 - resolution: "@types/lodash@npm:4.14.178" - checksum: a69a04a60bfc5257c3130a554b4efa0c383f0141b7b3db8ab7cf07ad2a46ea085fce66d0242da41da7e5647b133d5dfb2c15add9cbed8d7fef955e4a1e5b3128 + version: 4.17.0 + resolution: "@types/lodash@npm:4.17.0" + checksum: 3f98c0b67a93994cbc3403d4fa9dbaf52b0b6bb7f07a764d73875c2dcd5ef91222621bd5bcf8eee7b417a74d175c2f7191b9f595f8603956fd06f0674c0cba93 languageName: node linkType: hard @@ -7908,46 +6113,62 @@ __metadata: linkType: hard "@types/mdast@npm:^3.0.0, @types/mdast@npm:^3.0.3": - version: 3.0.10 - resolution: "@types/mdast@npm:3.0.10" + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" + dependencies: + "@types/unist": ^2 + checksum: af85042a4e3af3f879bde4059fa9e76c71cb552dffc896cdcc6cf9dc1fd38e37035c2dbd6245cfa6535b433f1f0478f5549696234ccace47a64055a10c656530 + languageName: node + linkType: hard + +"@types/mdast@npm:^4.0.0": + version: 4.0.3 + resolution: "@types/mdast@npm:4.0.3" dependencies: "@types/unist": "*" - checksum: 3f587bfc0a9a2403ecadc220e61031b01734fedaf82e27eb4d5ba039c0eb54db8c85681ccc070ab4df3f7ec711b736a82b990e69caa14c74bf7ac0ccf2ac7313 + checksum: 345c5a22fccf05f35239ea6313ee4aaf6ebed5927c03ac79744abccb69b9ba5e692f9b771e36a012b79e17429082cada30f579e9c43b8a54e0ffb365431498b6 languageName: node linkType: hard "@types/mem-fs-editor@npm:*": - version: 7.0.1 - resolution: "@types/mem-fs-editor@npm:7.0.1" + version: 7.0.7 + resolution: "@types/mem-fs-editor@npm:7.0.7" dependencies: "@types/ejs": "*" - "@types/glob": "*" "@types/json-schema": "*" "@types/mem-fs": "*" "@types/node": "*" "@types/vinyl": "*" - checksum: 7931a0e02c54c6c322205bb822ed0373d12bc0ae5069450ee6b89426c0535abc3253fb7f29ffb43081271c8e238bc6d6d8b2209dd69dd3c1f17afd2842c2a4c1 + globby: ^11.1.0 + checksum: 03599849f7020986621ebba210bb18a1027c9bf871c00bd28bfe4692c44dff2bc3718f869cb75eb565f4eb6b88b684c7f3a039afd6dfcbe088ba5bac4ff257be languageName: node linkType: hard "@types/mem-fs@npm:*": - version: 1.1.2 - resolution: "@types/mem-fs@npm:1.1.2" + version: 1.1.5 + resolution: "@types/mem-fs@npm:1.1.5" dependencies: "@types/node": "*" "@types/vinyl": "*" - checksum: 7da9f8a17577e4034e5da3d22a9bd7874f7f4ed89adf66fd9a2d13318b4ea519f1fbf7ecbb4fd160f29ff04d2127b4d0736a5b3187bbf3b54bd82d431b4830c7 + checksum: 8d296481b013f0c4e7b771b84043dec78738148c7d83a5a85e4665ee8710e8296953779f608fabe5987e8f4bf6bbc8c66d52bc0f137dece92affa3a5534c133a languageName: node linkType: hard "@types/mime@npm:*": - version: 2.0.3 - resolution: "@types/mime@npm:2.0.3" - checksum: 1f4f144423e149f300438f7cdca9b308d7a18a944e63f5ddf262558208a22a64c8e79b6973d602d86928e19052b3256b492429951b34d037242bb1bdfddae388 + version: 3.0.4 + resolution: "@types/mime@npm:3.0.4" + checksum: a6139c8e1f705ef2b064d072f6edc01f3c099023ad7c4fce2afc6c2bf0231888202adadbdb48643e8e20da0ce409481a49922e737eca52871b3dc08017455843 + languageName: node + linkType: hard + +"@types/minimatch@npm:*, @types/minimatch@npm:^5.1.2": + version: 5.1.2 + resolution: "@types/minimatch@npm:5.1.2" + checksum: 0391a282860c7cb6fe262c12b99564732401bdaa5e395bee9ca323c312c1a0f45efbf34dce974682036e857db59a5c9b1da522f3d6055aeead7097264c8705a8 languageName: node linkType: hard -"@types/minimatch@npm:*, @types/minimatch@npm:^3.0.3": +"@types/minimatch@npm:^3.0.3": version: 3.0.5 resolution: "@types/minimatch@npm:3.0.5" checksum: c41d136f67231c3131cf1d4ca0b06687f4a322918a3a5adddc87ce90ed9dbd175a3610adee36b106ae68c0b92c637c35e02b58c8a56c424f71d30993ea220b92 @@ -7982,9 +6203,9 @@ __metadata: linkType: hard "@types/ms@npm:*": - version: 0.7.31 - resolution: "@types/ms@npm:0.7.31" - checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da + version: 0.7.34 + resolution: "@types/ms@npm:0.7.34" + checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a languageName: node linkType: hard @@ -8015,25 +6236,25 @@ __metadata: linkType: hard "@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.1": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 languageName: node linkType: hard "@types/parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "@types/parse-json@npm:4.0.0" - checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 languageName: node linkType: hard "@types/passport@npm:^1.0.3, @types/passport@npm:^1.0.4": - version: 1.0.7 - resolution: "@types/passport@npm:1.0.7" + version: 1.0.16 + resolution: "@types/passport@npm:1.0.16" dependencies: "@types/express": "*" - checksum: 1b78fbbb589774a2d9794449e039d590c21fefd6b3f0a5cc911e2a79bac85f363121cfdc330d15840879abeb4fb2d68d521111e595bded0f5dc4356bf8dba3ec + checksum: e4a02fa338536eb82694ea548689a7214b1ca98df6a896080daa2b6a8859db02a1e6244eeefaf6f3cc9c268239bb4a7912049a9ed86192144a65c10e55219f80 languageName: node linkType: hard @@ -8047,33 +6268,33 @@ __metadata: linkType: hard "@types/plist@npm:^3.0.1": - version: 3.0.2 - resolution: "@types/plist@npm:3.0.2" + version: 3.0.5 + resolution: "@types/plist@npm:3.0.5" dependencies: "@types/node": "*" xmlbuilder: ">=11.0.1" - checksum: b8f9e6b21fb41a7e8ea5250717da972cde40b120109d5d2ed79e0a25406a9f6793abcba048d9b8ecc3df4b25735d9e4223b4d8a56dff893665c4a8c8573b77ad + checksum: 71417189c9bc0d0cb4595106cea7c7a8a7274f64d2e9c4dd558efd7993bcfdada58be6917189e3be7c455fe4e5557004658fd13bd12254eafed8c56e0868b59e languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.4 - resolution: "@types/prop-types@npm:15.7.4" - checksum: ef6e1899e59b876c273811b1bd845022fc66d5a3d11cb38a25b6c566b30514ae38fe20a40f67622f362a4f4f7f9224e22d8da101cff3d6e97e11d7b4c307cfc1 + version: 15.7.11 + resolution: "@types/prop-types@npm:15.7.11" + checksum: 7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 languageName: node linkType: hard "@types/q@npm:^1.5.1": - version: 1.5.5 - resolution: "@types/q@npm:1.5.5" - checksum: 3bd386fb97a0e5f1ce1ed7a14e39b60e469b5ca9d920a7f69e0cdb58d22c0f5bdd16637d8c3a5bfeda76663c023564dd47a65389ee9aaabd65aee54803d5ba45 + version: 1.5.8 + resolution: "@types/q@npm:1.5.8" + checksum: ff3b7f09c2746d068dee8d39501f09dbf71728c4facdc9cb0e266ea6615ad97e61267c0606ab3da88d11ef1609ce904cef45a9c56b2b397f742388d7f15bb740 languageName: node linkType: hard "@types/range-parser@npm:*": - version: 1.2.4 - resolution: "@types/range-parser@npm:1.2.4" - checksum: b7c0dfd5080a989d6c8bb0b6750fc0933d9acabeb476da6fe71d8bdf1ab65e37c136169d84148034802f48378ab94e3c37bb4ef7656b2bec2cb9c0f8d4146a95 + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a languageName: node linkType: hard @@ -8087,11 +6308,11 @@ __metadata: linkType: hard "@types/react-beautiful-dnd@npm:^13.0.0": - version: 13.1.2 - resolution: "@types/react-beautiful-dnd@npm:13.1.2" + version: 13.1.8 + resolution: "@types/react-beautiful-dnd@npm:13.1.8" dependencies: "@types/react": "*" - checksum: 28372854fcd4b7546aabe55ee6569da59fad10f117929cff8a9c6f928448e4dd08ed1139facca33232833b9de100edf017aab9a0ee34065f8fc0e2a7a1262b2c + checksum: f71c64ba7e2e1f8480e772b45268856d2bf99adf90d12dd5f31486075dfd3e33a0b0922969851c660f01aa9593aa38b38e17ee9038eb866af9ec4327be903cb9 languageName: node linkType: hard @@ -8105,41 +6326,41 @@ __metadata: linkType: hard "@types/react-dom@npm:>=16.9.0": - version: 17.0.11 - resolution: "@types/react-dom@npm:17.0.11" + version: 18.2.21 + resolution: "@types/react-dom@npm:18.2.21" dependencies: "@types/react": "*" - checksum: 4d5730dffbef86c887cecad7e3cecda424ce6a64d0b5441c63b5b015d48219868660a2bb1aa15e897e565ad8867fa6b885d4358b04e1c4e589ba4c07c3fda55c + checksum: 0ff00aedf5ffad90ed226c0ab0acdca609804c81af5dbde0d13a4ae53dac6bd92f85f1adc032c42966ec2e9417d13d18a41767434afa4d8c1979cad57348191b languageName: node linkType: hard "@types/react-dom@npm:^16.8.4": - version: 16.9.14 - resolution: "@types/react-dom@npm:16.9.14" + version: 16.9.24 + resolution: "@types/react-dom@npm:16.9.24" dependencies: "@types/react": ^16 - checksum: 68a4ee88f7a56cdbfbca24b1936b9aa5dad8b40ffbf1f047ddf990454aec6e0c9da2a01c9ae87045e95236602061646c90d02f01281533e14f1970687873030f + checksum: 2385bc4bb76d2c4f60b1955fcf2d88dba11db886f43d164f3f8d0dca32236c5ef01869b825c198a237b731f725f5803e5e6b836ca6ac6f1c1810e82c3b8d3d2a languageName: node linkType: hard "@types/react-redux@npm:^7.1.20": - version: 7.1.22 - resolution: "@types/react-redux@npm:7.1.22" + version: 7.1.33 + resolution: "@types/react-redux@npm:7.1.33" dependencies: "@types/hoist-non-react-statics": ^3.3.0 "@types/react": "*" hoist-non-react-statics: ^3.3.0 redux: ^4.0.0 - checksum: eef458c0cda27eabd8d458b7fc40553aab8d2f218145b896b9059b86d88680ae479079aee13683f2a0f35774f20346b732e91182252402bd8777455e004561c9 + checksum: 063e98c0d8cdc7cc2da1663716260ffb8d504b2f8be2d92cabb630cae31eb05aa0e389175265caa9a160bb7c4b66646d4a4171d4aa2dc292722088dcf593cdc3 languageName: node linkType: hard "@types/react-test-renderer@npm:>=16.9.0": - version: 17.0.1 - resolution: "@types/react-test-renderer@npm:17.0.1" + version: 18.0.7 + resolution: "@types/react-test-renderer@npm:18.0.7" dependencies: "@types/react": "*" - checksum: ecaae8df36cd8cfeb89080d52534856acc3789bad9a6e369ff5119426377c827b4e5b5daa638507f2c1c2fd6c994bf45de288a698143178cd4049c2cd8b77b35 + checksum: 701d7d815fe7b921712ebdb2c4434e99b92403d37c51b33a01ce1b62fed7d1efbf9f749971d9031a5b137c6d5e194249c378106768aa69725a01f150fef0ec7f languageName: node linkType: hard @@ -8163,11 +6384,11 @@ __metadata: linkType: hard "@types/responselike@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/responselike@npm:1.0.0" + version: 1.0.3 + resolution: "@types/responselike@npm:1.0.3" dependencies: "@types/node": "*" - checksum: e99fc7cc6265407987b30deda54c1c24bb1478803faf6037557a774b2f034c5b097ffd65847daa87e82a61a250d919f35c3588654b0fdaa816906650f596d1b0 + checksum: 6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58 languageName: node linkType: hard @@ -8181,14 +6402,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.1.0": - version: 7.3.9 - resolution: "@types/semver@npm:7.3.9" - checksum: 60bfcfdfa7f937be2c6f4b37ddb6714fb0f27b05fe4cbdfdd596a97d35ed95d13ee410efdd88e72a66449d0384220bf20055ab7d6b5df10de4990fbd20e5cbe0 - languageName: node - linkType: hard - -"@types/semver@npm:^7.5.0": +"@types/semver@npm:^7.1.0, @types/semver@npm:^7.3.12": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 @@ -8213,30 +6427,30 @@ __metadata: linkType: hard "@types/sizzle@npm:^2.3.2": - version: 2.3.3 - resolution: "@types/sizzle@npm:2.3.3" - checksum: 586a9fb1f6ff3e325e0f2cc1596a460615f0bc8a28f6e276ac9b509401039dd242fa8b34496d3a30c52f5b495873922d09a9e76c50c2ab2bcc70ba3fb9c4e160 + version: 2.3.8 + resolution: "@types/sizzle@npm:2.3.8" + checksum: 2ac62443dc917f5f903cbd9afc51c7d6cc1c6569b4e1a15faf04aea5b13b486e7f208650014c3dc4fed34653eded3e00fe5abffe0e6300cbf0e8a01beebf11a6 languageName: node linkType: hard "@types/source-list-map@npm:*": - version: 0.1.2 - resolution: "@types/source-list-map@npm:0.1.2" - checksum: fda8f37537aca9d3ed860d559289ab1dddb6897e642e6f53e909bbd18a7ac3129a8faa2a7d093847c91346cf09c86ef36e350c715406fba1f2271759b449adf6 + version: 0.1.6 + resolution: "@types/source-list-map@npm:0.1.6" + checksum: 9cd294c121f1562062de5d241fe4d10780b1131b01c57434845fe50968e9dcf67ede444591c2b1ad6d3f9b6bc646ac02cc8f51a3577c795f9c64cf4573dcc6b1 languageName: node linkType: hard "@types/stack-utils@npm:^2.0.0": - version: 2.0.1 - resolution: "@types/stack-utils@npm:2.0.1" - checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 languageName: node linkType: hard "@types/tapable@npm:^1": - version: 1.0.8 - resolution: "@types/tapable@npm:1.0.8" - checksum: b4b754dd0822c407b8f29ef6b766490721c276880f9e976d92ee2b3ef915f11a05a2442ae36c8978bcd872ad6bc833b0a2c4d267f2d611590668a366bad50652 + version: 1.0.12 + resolution: "@types/tapable@npm:1.0.12" + checksum: 5312fbc01e0135bd11b44cfea2bf29943807cd9675c10bbed13873ad0e73f656993fb88bb6ceaf05b12a55c570e6acc0267faf59e9c4d2f032fc833bafcf0597 languageName: node linkType: hard @@ -8251,27 +6465,27 @@ __metadata: linkType: hard "@types/testing-library__jest-dom@npm:^5.9.1": - version: 5.14.2 - resolution: "@types/testing-library__jest-dom@npm:5.14.2" + version: 5.14.9 + resolution: "@types/testing-library__jest-dom@npm:5.14.9" dependencies: "@types/jest": "*" - checksum: e08715a565cc189112a6611485d779a0f1ceb546a9d4601b21aacff7596d7acf8b7c702e4c5f825677431ff601df3e635887dc8a5735da1a263cc857eb7c3833 + checksum: d364494fc2545316292e88861146146af1e3818792ca63b62a63758b2f737669b687f4aaddfcfbcb7d0e1ed7890a9bd05de23ff97f277d5e68de574497a9ee72 languageName: node linkType: hard "@types/text-table@npm:*": - version: 0.2.2 - resolution: "@types/text-table@npm:0.2.2" - checksum: f72ee49b50f2e912876cf7366ca1b218a58826e9af8b3171204f1cb73be80e722e094db3523dd7ddd31708c006b0b3d67ce5a2da6e9620ce99f5c4558109863b + version: 0.2.5 + resolution: "@types/text-table@npm:0.2.5" + checksum: 4e96313dc25983868d84b75921c6159de569509921234c2c3bc8e2aac7963323f326b07d485d2c38342d5c1e7d2a0a39c2f3996b5f00f57af4b554b5d710f59d languageName: node linkType: hard "@types/through@npm:*": - version: 0.0.30 - resolution: "@types/through@npm:0.0.30" + version: 0.0.33 + resolution: "@types/through@npm:0.0.33" dependencies: "@types/node": "*" - checksum: 9578470db0b527c26e246a1220ae9bffc6bf47f20f89c54aac467c083ab1f7e16c00d9a7b4bb6cb4e2dfae465027270827e5908a6236063f6214625e50585d78 + checksum: fd0b73f873a64ed5366d1d757c42e5dbbb2201002667c8958eda7ca02fff09d73de91360572db465ee00240c32d50c6039ea736d8eca374300f9664f93e8da39 languageName: node linkType: hard @@ -8285,66 +6499,73 @@ __metadata: linkType: hard "@types/uglify-js@npm:*": - version: 3.13.1 - resolution: "@types/uglify-js@npm:3.13.1" + version: 3.17.5 + resolution: "@types/uglify-js@npm:3.17.5" dependencies: source-map: ^0.6.1 - checksum: def36fd2c698a33d8f67f5e21aab926eb9bda2d7951eab544941e1feb1231f020ff1c210d840dcc0fc9f07b5d22ef8b566887ddec9753b8b9f7223cceaa70993 + checksum: ffed5d63637c6ea5c155469121ee40d9b652e677e6d9eb07b72ff72bb4029ffad19049a0af6e91a5021bad6c481cff2572fbf6367e319c6885cf1537c20d861d languageName: node linkType: hard -"@types/unist@npm:*, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2, @types/unist@npm:^2.0.3": - version: 2.0.6 - resolution: "@types/unist@npm:2.0.6" - checksum: 25cb860ff10dde48b54622d58b23e66214211a61c84c0f15f88d38b61aa1b53d4d46e42b557924a93178c501c166aa37e28d7f6d994aba13d24685326272d5db +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/unist@npm:3.0.2" + checksum: 3d04d0be69316e5f14599a0d993a208606c12818cf631fd399243d1dc7a9bd8a3917d6066baa6abc290814afbd744621484756803c80cba892c39cd4b4a85616 + languageName: node + linkType: hard + +"@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2, @types/unist@npm:^2.0.3": + version: 2.0.10 + resolution: "@types/unist@npm:2.0.10" + checksum: e2924e18dedf45f68a5c6ccd6015cd62f1643b1b43baac1854efa21ae9e70505db94290434a23da1137d9e31eb58e54ca175982005698ac37300a1c889f6c4aa languageName: node linkType: hard "@types/verror@npm:^1.10.3": - version: 1.10.5 - resolution: "@types/verror@npm:1.10.5" - checksum: f9f7073d86f7ef67a4ad930e02aa4579648e635ab5749fc365e248431bd3a4b01d76c483b2600a11e700bc738f10f1b38c1ef70f17ed2c7984fc4abde2bfa348 + version: 1.10.10 + resolution: "@types/verror@npm:1.10.10" + checksum: 2865053bded09809edb8bcb899bf8fb82701000434d979d7aa72f9163c1c5b88d1e3bca47e4a4f5eb81d7ec168842c7fffe93dc56c4d4b7afc9d38d92408212d languageName: node linkType: hard "@types/vinyl@npm:*": - version: 2.0.6 - resolution: "@types/vinyl@npm:2.0.6" + version: 2.0.11 + resolution: "@types/vinyl@npm:2.0.11" dependencies: "@types/expect": ^1.20.4 "@types/node": "*" - checksum: 5012fb61e3a29e7deaac7e66b6d8cb73d87d15965c8a38cb69277c2beb851a9a8ec09d4a1b07a3151e143afc2e3a102ca368b9a0e08f2f29de9183c97f9c7d85 + checksum: e921718775992ada7712a26da9635fb970bcdbcf4c4cc832344092d68710ffaf7dd3cce42b0050b2741b2cf75a30f3e1b87e1032ae26552db1faac17094d2b50 languageName: node linkType: hard "@types/vscode@npm:^1.40.0, @types/vscode@npm:^1.46.0": - version: 1.63.1 - resolution: "@types/vscode@npm:1.63.1" - checksum: 9b40bf77497358d9d4cd646aab39045de9cf7f508d6c92116c6e766f8db38b87b313b3e9e48ecb41d4d81f5b531aa4b257de624eea8bf117b2f28f6b8332394b + version: 1.87.0 + resolution: "@types/vscode@npm:1.87.0" + checksum: e194a526aa359c176a192c8271d499163ec76b54c7d950bf3e83a2578e970e3b002a79a1f9d41a35b7988867d474403d693ae8d4957a0a527cf89d65ae0608a0 languageName: node linkType: hard "@types/webpack-env@npm:^1.15.2": - version: 1.16.3 - resolution: "@types/webpack-env@npm:1.16.3" - checksum: faefa7c0a75289fb469b9a5ae44059a00009de840e0e62d13b3f837d77647da76808e7839cdc414b8c585969cf6b6a7f290dc2cb437a9ccdf04cb214c68f3223 + version: 1.18.4 + resolution: "@types/webpack-env@npm:1.18.4" + checksum: f195b3ae974ac3b631477b57737dad7b6c44ecca86770cf3c29f284e02961c9f2dfc619e3e253d8c23966864cb052b1e8437e9834ede32ac97972e6e2235bb51 languageName: node linkType: hard "@types/webpack-sources@npm:*": - version: 3.2.0 - resolution: "@types/webpack-sources@npm:3.2.0" + version: 3.2.3 + resolution: "@types/webpack-sources@npm:3.2.3" dependencies: "@types/node": "*" "@types/source-list-map": "*" source-map: ^0.7.3 - checksum: fa23dcfb99f79cc0ba8e6ca41cb8dedb406f8d7772e8e3d3d9b443bfb36557a1a78f4de2b97905554db98beee1a2ef6f930e188977adde6452392a64dd4b7c2a + checksum: 7b557f242efaa10e4e3e18cc4171a0c98e22898570caefdd4f7b076fe8534b5abfac92c953c6604658dcb7218507f970230352511840fe9fdea31a9af3b9a906 languageName: node linkType: hard "@types/webpack@npm:^4.4.31": - version: 4.41.32 - resolution: "@types/webpack@npm:4.41.32" + version: 4.41.38 + resolution: "@types/webpack@npm:4.41.38" dependencies: "@types/node": "*" "@types/tapable": ^1 @@ -8352,7 +6573,7 @@ __metadata: "@types/webpack-sources": "*" anymatch: ^3.0.0 source-map: ^0.6.0 - checksum: e594a1357cbbc2f7c6ca47785c5a11adb5591a774a69afaeab07cd6f6bff6c6aea2030bd37b32bdd19d0ec2336a346db754e8d8d236ba8effeab542716fb32b7 + checksum: d3de65993ef3a7621f75548c2f6f509e8f87f586032238e999743d6067030655c67e38ec5f8b32e04fa5276c83bdfb7a761773bce0e6f28605da87e3fc388e3e languageName: node linkType: hard @@ -8375,25 +6596,25 @@ __metadata: linkType: hard "@types/xml2js@npm:^0.4.4": - version: 0.4.9 - resolution: "@types/xml2js@npm:0.4.9" + version: 0.4.14 + resolution: "@types/xml2js@npm:0.4.14" dependencies: "@types/node": "*" - checksum: 7e352c4aad0cc31edfcc5102353b64a59e3d75b8d232985c939668d26adba00e33ee38d2b6893a862186015de779672b582dd70c1a1cfccee62f987e13a7cb0a + checksum: df9f106b9953dcdec7ba3304ebc56d6c2f61d49bf556d600bed439f94a1733f73ca0bf2d0f64330b402191622862d9d6058bab9d7e3dcb5b0fe51ebdc4372aac languageName: node linkType: hard "@types/xmldom@npm:^0.1.30": - version: 0.1.31 - resolution: "@types/xmldom@npm:0.1.31" - checksum: 127a6e3c5b92663af29ff9ee66152286f0c381e35b0265161cc2583a7829b4d15c7e46f724337b8d2b89b06685baf0176c3d724cdb08881166a587f83ebd63e8 + version: 0.1.34 + resolution: "@types/xmldom@npm:0.1.34" + checksum: 601ef9156acf51c945cbaec443ab894a2ce3e1727f6bcfbfb589359d2f7af205eddc2931ae7797d3de28e259b18049a338e6f733d39cc1a0133355cc096d0ad0 languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 20.2.1 - resolution: "@types/yargs-parser@npm:20.2.1" - checksum: 1d039e64494a7a61ddd278349a3dc60b19f99ff0517425696e796f794e4252452b9d62178e69755ad03f439f9dc0c8c3d7b3a1201b3a24e134bac1a09fa11eaa + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc languageName: node linkType: hard @@ -8407,24 +6628,15 @@ __metadata: linkType: hard "@types/yargs@npm:^15.0.0": - version: 15.0.14 - resolution: "@types/yargs@npm:15.0.14" - dependencies: - "@types/yargs-parser": "*" - checksum: 8e358aeb8f0c3758e59e2b8fcfdee5627ab2fe3d92f50f380503d966c7f33287be3322155516a50d27727fde1ad3878f48f60cd6648439126d4b0bbb1a1153ed - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.1": - version: 17.0.8 - resolution: "@types/yargs@npm:17.0.8" + version: 15.0.19 + resolution: "@types/yargs@npm:15.0.19" dependencies: "@types/yargs-parser": "*" - checksum: 63d06700ffbed745f00d7994eb92416649c8a3ead22f26446979d383f3af52fa9400bb185268f3a44a2348749098ffe33a8185ca676b77bc3206c63b8b73fd01 + checksum: 6a509db36304825674f4f00300323dce2b4d850e75819c3db87e9e9f213ac2c4c6ed3247a3e4eed6e8e45b3f191b133a356d3391dd694d9ea27a0507d914ef4c languageName: node linkType: hard -"@types/yargs@npm:^17.0.8": +"@types/yargs@npm:^17.0.1, @types/yargs@npm:^17.0.8": version: 17.0.32 resolution: "@types/yargs@npm:17.0.32" dependencies: @@ -8434,173 +6646,176 @@ __metadata: linkType: hard "@types/yauzl@npm:^2.9.1": - version: 2.9.2 - resolution: "@types/yauzl@npm:2.9.2" + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" dependencies: "@types/node": "*" - checksum: dfb49abe82605615712fc694eaa4f7068fe30aa03f38c085e2c2e74408beaad30471d36da9654a811482ece2ea4405575fd99b19c0aa327ed2a9736b554bbf43 + checksum: 5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08 languageName: node linkType: hard "@types/yeoman-environment@npm:*, @types/yeoman-environment@npm:^2.10.2": - version: 2.10.5 - resolution: "@types/yeoman-environment@npm:2.10.5" + version: 2.10.11 + resolution: "@types/yeoman-environment@npm:2.10.11" dependencies: "@types/diff": "*" - "@types/inquirer": "*" + "@types/inquirer": ^8 "@types/mem-fs": "*" + "@types/node": "*" "@types/text-table": "*" + "@types/vinyl": "*" "@types/yeoman-generator": "*" chalk: ^4.1.0 + commander: ^9.0.0 + execa: ^5.0.0 rxjs: ^6.4.0 - checksum: 907f6133d6121b8ff676cb6fd4b1048f865ad21abcfe470eb1507c01318c12f526a480b59f9f49f74b4a1117a96e66ecf54311df7c7343e3623f5fbd9c7ce112 + checksum: 86dfaed2f60110a8a14f66dfb6cb27f21a46efa000fc63c0e3ffbc6de084d1547b5183f126c2e9ea27d170abb8a0644d29e2db223eb236e09a79732539fb17e1 languageName: node linkType: hard "@types/yeoman-generator@npm:*": - version: 5.2.8 - resolution: "@types/yeoman-generator@npm:5.2.8" + version: 5.2.14 + resolution: "@types/yeoman-generator@npm:5.2.14" dependencies: "@types/debug": "*" "@types/ejs": "*" - "@types/inquirer": "*" + "@types/inquirer": ^8 "@types/mem-fs-editor": "*" + "@types/node": "*" "@types/yeoman-environment": "*" rxjs: ^6.4.0 - checksum: ede2105dc8aba83a70a3224be068f35e03f326d375828ede4751c9ac4bea3aa2a558e3cde1d23daedbb1dc519fd74b9e67f7f294309dd0b3a5c5c9634dd0a63c + checksum: 9686f2ff629d7155196f39108bd3f3ef827aff225315004ee7746f726c0c69b8f278c764575e13ac89710654c558818008d2fc4f0f0f821e9fde28510de7c7fe languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.1.1" +"@typescript-eslint/eslint-plugin@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" dependencies: - "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/type-utils": 7.1.1 - "@typescript-eslint/utils": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/type-utils": 5.62.0 + "@typescript-eslint/utils": 5.62.0 debug: ^4.3.4 graphemer: ^1.4.0 - ignore: ^5.2.4 - natural-compare: ^1.4.0 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: e439a09996dd1b2bc8a643d7a1c7aad09b744ee38f6d3a8d391a7a846a23eafd3b1513c73da363df62e756f8b3a27c569b12fcbedad0fc1f87c0af20fd53db8e + checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 languageName: node linkType: hard -"@typescript-eslint/parser@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/parser@npm:7.1.1" +"@typescript-eslint/parser@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/parser@npm:5.62.0" dependencies: - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/typescript-estree": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 debug: ^4.3.4 peerDependencies: - eslint: ^8.56.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 9a8494a3ca517759e33c8a153779efe1331d86bcd4af5110d14c79e2507596265dd7cf113c9312fdf97832b60e76646dbabe9b87eb55b6616ba2a0c038b9fad1 + checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/scope-manager@npm:7.1.1" +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" dependencies: - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 - checksum: 4f91bed41b14051335ec7f73bb2c8970018ba2c056dda3166a722d85a620a610643e7f703304c03106759d0a195ea1d9ff44edcc86feb2c62817ae3d06276c49 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/type-utils@npm:7.1.1" +"@typescript-eslint/type-utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/type-utils@npm:5.62.0" dependencies: - "@typescript-eslint/typescript-estree": 7.1.1 - "@typescript-eslint/utils": 7.1.1 + "@typescript-eslint/typescript-estree": 5.62.0 + "@typescript-eslint/utils": 5.62.0 debug: ^4.3.4 - ts-api-utils: ^1.0.1 + tsutils: ^3.21.0 peerDependencies: - eslint: ^8.56.0 + eslint: "*" peerDependenciesMeta: typescript: optional: true - checksum: d1afa5c5e4602495a545d0d32aca0bbf6963fb0cbf77e47b2a95883e96d35bd9d51e8eb8d51c7d5b7e4e6ed7a275970eb80ed566e25833c8b4517791df8e648a + checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/types@npm:7.1.1" - checksum: 42be2d881728d99ab50cb4133656d2f54770304a5dca83777a032b9ec20f6e11ca38db79d2b77b29b9cb41a052aa872f4ac2e37b61d40b438efe91e355ec798f +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.1.1" +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" dependencies: - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + semver: ^7.3.7 + tsutils: ^3.21.0 peerDependenciesMeta: typescript: optional: true - checksum: 19c62c792ff05ccea7e8c6054f55be7d2423695cb7ef84b955ee2b74d950e769b353100032467be71a436f3439ecba3b8709513581755e98e910ecb9d8198223 + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/utils@npm:7.1.1" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/typescript-estree": 7.1.1 - semver: ^7.5.4 +"@typescript-eslint/utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 peerDependencies: - eslint: ^8.56.0 - checksum: 76a499c28dec37effb3512a49e51e1d788e49647ab750fc8a0d16c3aae4b9fea83f1cd20b5bd0be6113eb6112a96e93ee3327ccfd5c80028526c3ce5a73b5027 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.1.1" +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" dependencies: - "@typescript-eslint/types": 7.1.1 - eslint-visitor-keys: ^3.4.1 - checksum: fc98a8782ad9c5dbb0d6ed89baa89c37d3cb28ecc08fb013180bed4e5336e1d289ad3cdb1cd71b9c0abb7b624858258c0d68fe4db8911416b61f13ec7c553a47 + "@typescript-eslint/types": 5.62.0 + eslint-visitor-keys: ^3.3.0 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 languageName: node linkType: hard -"@uifabric/merge-styles@npm:^7.19.2": - version: 7.19.2 - resolution: "@uifabric/merge-styles@npm:7.19.2" +"@uifabric/merge-styles@npm:^7.20.2": + version: 7.20.2 + resolution: "@uifabric/merge-styles@npm:7.20.2" dependencies: "@uifabric/set-version": ^7.0.24 tslib: ^1.10.0 - checksum: 125bdf64c56220b288ced873b8a6a9e209aa7a025eba4a8aa29208a9c6a7f2bd571f398e47d0a96008a5510318074f87bb8d0a51283bd6f3f54241fbcbcc0d23 + checksum: 9cd59b3189838abae937fa6914878afd3d18c9b1d423eb71641c5a456518966244b8703dc12271dd4dc76d1edd2ce4a389087f10be33db88a8d90a3e91edb54b languageName: node linkType: hard @@ -8614,20 +6829,20 @@ __metadata: linkType: hard "@uifabric/utilities@npm:^7.33.3": - version: 7.33.5 - resolution: "@uifabric/utilities@npm:7.33.5" + version: 7.38.2 + resolution: "@uifabric/utilities@npm:7.38.2" dependencies: "@fluentui/dom-utilities": ^1.1.2 - "@uifabric/merge-styles": ^7.19.2 + "@uifabric/merge-styles": ^7.20.2 "@uifabric/set-version": ^7.0.24 prop-types: ^15.7.2 tslib: ^1.10.0 peerDependencies: - "@types/react": ">=16.8.0 <17.0.0" - "@types/react-dom": ">=16.8.0 <17.0.0" - react: ">=16.8.0 <17.0.0" - react-dom: ">=16.8.0 <17.0.0" - checksum: 794774c549b25d1cc9f5ab9d380f6801606da8c0472a8362c19497032314d85fef3bc0cd7f0ac192d92a7cfb0ead7d3f1dca361e768e77a6834623401173ee43 + "@types/react": ">=16.8.0 <18.0.0" + "@types/react-dom": ">=16.8.0 <18.0.0" + react: ">=16.8.0 <18.0.0" + react-dom: ">=16.8.0 <18.0.0" + checksum: 45e91a0e0f08bfe5c31bbaa46f47b9bce61da200b103fbbf8b0d358963f4e192e2dc31723100c93186c9b8c1b9f2364d1a4a159fed77ba9eab933385591d0f82 languageName: node linkType: hard @@ -8819,10 +7034,10 @@ __metadata: languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.8.3": - version: 0.8.6 - resolution: "@xmldom/xmldom@npm:0.8.6" - checksum: f17ac6d99a971a6aeb831fcfc5cfa86f367664e45815046548814b2deb17ccc421fef4e0d5ba29e66179d112b552f6caa5680064f8e7bd8a389b788a60404c8e +"@xmldom/xmldom@npm:^0.8.6, @xmldom/xmldom@npm:^0.8.8": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 languageName: node linkType: hard @@ -8859,6 +7074,13 @@ __metadata: languageName: node linkType: hard +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 + languageName: node + linkType: hard + "abort-controller-es5@npm:2.0.1": version: 2.0.1 resolution: "abort-controller-es5@npm:2.0.1" @@ -8886,17 +7108,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.5": - version: 1.3.7 - resolution: "accepts@npm:1.3.7" - dependencies: - mime-types: ~2.1.24 - negotiator: 0.6.2 - checksum: 27fc8060ffc69481ff6719cd3ee06387d2b88381cb0ce626f087781bbd02201a645a9febc8e7e7333558354b33b1d2f922ad13560be4ec1b7ba9e76fc1c1241d - languageName: node - linkType: hard - -"accepts@npm:~1.3.8": +"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -8916,9 +7128,9 @@ __metadata: linkType: hard "acorn-walk@npm:^8.0.0": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + version: 8.3.2 + resolution: "acorn-walk@npm:8.3.2" + checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 languageName: node linkType: hard @@ -8940,25 +7152,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.4": - version: 8.7.0 - resolution: "acorn@npm:8.7.0" - bin: - acorn: bin/acorn - checksum: e0f79409d68923fbf1aa6d4166f3eedc47955320d25c89a20cc822e6ba7c48c5963d5bc657bc242d68f7a4ac9faf96eef033e8f73656da6c640d4219935fdfd0 - languageName: node - linkType: hard - -"acorn@npm:^8.5.0": - version: 8.7.1 - resolution: "acorn@npm:8.7.1" - bin: - acorn: bin/acorn - checksum: aca0aabf98826717920ac2583fdcad0a6fbe4e583fdb6e843af2594e907455aeafe30b1e14f1757cd83ce1776773cf8296ffc3a4acf13f0bd3dfebcf1db6ae80 - languageName: node - linkType: hard - -"acorn@npm:^8.9.0": +"acorn@npm:^8.0.4, acorn@npm:^8.5.0, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -8967,9 +7161,9 @@ __metadata: languageName: node linkType: hard -"adaptive-expressions@npm:4.18.0, adaptive-expressions@npm:^4.18.0": - version: 4.18.0 - resolution: "adaptive-expressions@npm:4.18.0" +"adaptive-expressions@npm:4.22.1, adaptive-expressions@npm:^4.18.0": + version: 4.22.1 + resolution: "adaptive-expressions@npm:4.22.1" dependencies: "@microsoft/recognizers-text-data-types-timex-expression": 1.3.0 "@types/atob-lite": ^2.0.0 @@ -8977,20 +7171,27 @@ __metadata: "@types/lodash.isequal": ^4.5.5 "@types/lru-cache": ^5.1.0 "@types/xmldom": ^0.1.30 - "@xmldom/xmldom": ^0.8.3 + "@xmldom/xmldom": ^0.8.6 antlr4ts: 0.5.0-alpha.3 atob-lite: ^2.0.0 big-integer: ^1.6.48 btoa-lite: ^1.0.0 d3-format: ^1.4.4 dayjs: ^1.10.3 - fast-xml-parser: ^3.19.0 + fast-xml-parser: ^4.2.5 jspath: ^0.4.0 lodash.isequal: ^4.5.0 lru-cache: ^5.1.1 uuid: ^8.3.2 xpath: ^0.0.32 - checksum: 9e42ca6da3054151399629e0a4343dd0561b5554ec80e63fb4fa91c32b85e3b0b88aebfb38a2551ee2f07c2e77bf4b3bdc630fa3d2edc654e919271bae6cf6e7 + checksum: 727fa5a16ac5eaaa6180f78897377a32da91eb547672a8f7b41da2a4ab725de2b482784ee281ef504dd486552b1c3816a45ce41e1caa8b91810a96caa3728941 + languageName: node + linkType: hard + +"adaptivecards@npm:1.2.3": + version: 1.2.3 + resolution: "adaptivecards@npm:1.2.3" + checksum: e33997000e005426ba8d77c2de39ec3dce7d29b0d888f00f11b27b3c85ff60131485f422d550149e74471319946a974e30f326ff2a8f0b73bcdc975471e66131 languageName: node linkType: hard @@ -9001,13 +7202,20 @@ __metadata: languageName: node linkType: hard -"address@npm:1.1.2, address@npm:^1.0.1": +"address@npm:1.1.2": version: 1.1.2 resolution: "address@npm:1.1.2" checksum: d966deee6ab9a0f96ed1d25dc73e91a248f64479c91f9daeb15237b8e3c39a02faac4e6afe8987ef9e5aea60a1593cef5882b7456ab2e6196fc0229a93ec39c2 languageName: node linkType: hard +"address@npm:^1.0.1": + version: 1.2.2 + resolution: "address@npm:1.2.2" + checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 + languageName: node + linkType: hard + "agent-base@npm:4, agent-base@npm:^4.3.0": version: 4.3.0 resolution: "agent-base@npm:4.3.0" @@ -9033,14 +7241,21 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f + languageName: node + linkType: hard + "agentkeepalive@npm:^4.1.3": - version: 4.2.0 - resolution: "agentkeepalive@npm:4.2.0" + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" dependencies: - debug: ^4.1.0 - depd: ^1.1.2 humanize-ms: ^1.2.1 - checksum: 89806f83ceebbcaabf6bd581a8dce4870910fd2a11f66df8f505b4cd4ce4ca5ab9e6eec8d11ce8531a6b60f6748b75b0775e0e2fa33871503ef00d535418a19a + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 languageName: node linkType: hard @@ -9097,14 +7312,14 @@ __metadata: linkType: hard "ajv@npm:^8.2.0": - version: 8.9.0 - resolution: "ajv@npm:8.9.0" + version: 8.12.0 + resolution: "ajv@npm:8.12.0" dependencies: fast-deep-equal: ^3.1.1 json-schema-traverse: ^1.0.0 require-from-string: ^2.0.2 uri-js: ^4.2.2 - checksum: 756c048bfa917b43bb84c8a0a53e6a489123203bc4bdec8cbeb8ec2d715674f5e61d49560a1a6ec83268af4f33bed324f5cb6d9c76d96849fd58ed7089b8e7f3 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 languageName: node linkType: hard @@ -9115,15 +7330,6 @@ __metadata: languageName: node linkType: hard -"ansi-align@npm:^3.0.0": - version: 3.0.1 - resolution: "ansi-align@npm:3.0.1" - dependencies: - string-width: ^4.1.0 - checksum: 6abfa08f2141d231c257162b15292467081fa49a208593e055c866aa0455b57f3a86b5a678c190c618faa79b4c59e254493099cb700dd9cf2293c6be2c8f5d8d - languageName: node - linkType: hard - "ansi-colors@npm:^3.0.0": version: 3.2.4 resolution: "ansi-colors@npm:3.2.4" @@ -9132,9 +7338,9 @@ __metadata: linkType: hard "ansi-colors@npm:^4.1.1": - version: 4.1.1 - resolution: "ansi-colors@npm:4.1.1" - checksum: 138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0 + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e languageName: node linkType: hard @@ -9145,7 +7351,7 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -9239,14 +7445,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.0.0": - version: 6.1.0 - resolution: "ansi-styles@npm:6.1.0" - checksum: 7a7f8528c07a9d20c3a92bccd2b6bc3bb4d26e5cb775c02826921477377bd495d615d61f710d56216344b6238d1d11ef2b0348e146c5b128715578bfb3217229 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.2.1": +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 @@ -9299,12 +7498,12 @@ __metadata: linkType: hard "anymatch@npm:^3.0.0, anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.2 - resolution: "anymatch@npm:3.1.2" + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" dependencies: normalize-path: ^3.0.0 picomatch: ^2.0.4 - checksum: 985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 languageName: node linkType: hard @@ -9400,18 +7599,36 @@ __metadata: languageName: node linkType: hard +"archiver-utils@npm:^3.0.4": + version: 3.0.4 + resolution: "archiver-utils@npm:3.0.4" + dependencies: + glob: ^7.2.3 + graceful-fs: ^4.2.0 + lazystream: ^1.0.0 + lodash.defaults: ^4.2.0 + lodash.difference: ^4.5.0 + lodash.flatten: ^4.4.0 + lodash.isplainobject: ^4.0.6 + lodash.union: ^4.6.0 + normalize-path: ^3.0.0 + readable-stream: ^3.6.0 + checksum: 5c6568f1185fb6c4b85282ad3281a5a024761bf27e525de1ec54255d15ca98e19532e7b5403930273911a5c8c961aa0c1e9148d6c2810784fa6bd8a97c0021a7 + languageName: node + linkType: hard + "archiver@npm:^5.0.2": - version: 5.3.0 - resolution: "archiver@npm:5.3.0" + version: 5.3.2 + resolution: "archiver@npm:5.3.2" dependencies: archiver-utils: ^2.1.0 - async: ^3.2.0 + async: ^3.2.4 buffer-crc32: ^0.2.1 readable-stream: ^3.6.0 - readdir-glob: ^1.0.0 + readdir-glob: ^1.1.2 tar-stream: ^2.2.0 zip-stream: ^4.1.0 - checksum: 878b275390dbab4a32dc2010fb68447d2750297226002002b27d790058d0e04c7d1566f20cf6f9c5abcca33e946cd36ed11b659c59408dabd852db005c84dfed + checksum: 7d3b9b9b51cf54d88c89fbca9b0847c120bfcf9776c7025c52dd0b62f6603dc63dc0f3f1a09582f936f67e3906b46d58954cc762a255be45e8d3e14e3cb0b0b1 languageName: node linkType: hard @@ -9425,6 +7642,16 @@ __metadata: languageName: node linkType: hard +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -9458,14 +7685,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.0.0": - version: 5.0.0 - resolution: "aria-query@npm:5.0.0" - checksum: c41f98866c5a304561ee8cae55856711cddad6f3f85d8cb43cc5f79667078d9b8979ce32d244c1ff364e6463a4d0b6865804a33ccc717fed701b281cf7dc6296 - languageName: node - linkType: hard - -"aria-query@npm:^5.3.0": +"aria-query@npm:^5.0.0, aria-query@npm:^5.3.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -9526,19 +7746,6 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.5": - version: 3.1.5 - resolution: "array-includes@npm:3.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.19.5 - get-intrinsic: ^1.1.1 - is-string: ^1.0.7 - checksum: f6f24d834179604656b7bec3e047251d5cc87e9e87fab7c175c61af48e80e75acd296017abcde21fb52292ab6a2a449ab2ee37213ee48c8709f004d75983f9c5 - languageName: node - linkType: hard - "array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": version: 3.1.7 resolution: "array-includes@npm:3.1.7" @@ -9568,13 +7775,6 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^3.0.1": - version: 3.0.1 - resolution: "array-union@npm:3.0.1" - checksum: 47b29f88258e8f37ffb93ddaa327d4308edd950b52943c172b73558afdd3fa74cfd68816ba5aa4b894242cf281fa3c6d0362ae057e4a18bddbaedbe46ebe7112 - languageName: node - linkType: hard - "array-uniq@npm:^1.0.1": version: 1.0.3 resolution: "array-uniq@npm:1.0.3" @@ -9652,6 +7852,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.reduce@npm:^1.0.6": + version: 1.0.6 + resolution: "array.prototype.reduce@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-array-method-boxes-properly: ^1.0.0 + is-string: ^1.0.7 + checksum: c709c3f5caa2aac4fb10e0c6c1982cca50328a2a48658d53b1da8ee3a78069ad67cdac21296d6285521aa3a932a8178c0e192b5fc831fae2977b69a5a8a64ad7 + languageName: node + linkType: hard + "array.prototype.toreversed@npm:^1.1.2": version: 1.1.2 resolution: "array.prototype.toreversed@npm:1.1.2" @@ -9707,7 +7920,7 @@ __metadata: languageName: node linkType: hard -"asap@npm:~2.0.6": +"asap@npm:~2.0.3, asap@npm:~2.0.6": version: 2.0.6 resolution: "asap@npm:2.0.6" checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d @@ -9752,7 +7965,18 @@ __metadata: languageName: node linkType: hard -"asn1.js@npm:^5.0.0, asn1.js@npm:^5.2.0": +"asn1.js@npm:^4.10.1": + version: 4.10.1 + resolution: "asn1.js@npm:4.10.1" + dependencies: + bn.js: ^4.0.0 + inherits: ^2.0.1 + minimalistic-assert: ^1.0.0 + checksum: 9289a1a55401238755e3142511d7b8f6fc32f08c86ff68bd7100da8b6c186179dd6b14234fba2f7f6099afcd6758a816708485efe44bc5b2a6ec87d9ceeddbb5 + languageName: node + linkType: hard + +"asn1.js@npm:^5.0.0": version: 5.4.1 resolution: "asn1.js@npm:5.4.1" dependencies: @@ -9781,12 +8005,12 @@ __metadata: linkType: hard "assert@npm:^1.1.1": - version: 1.5.0 - resolution: "assert@npm:1.5.0" + version: 1.5.1 + resolution: "assert@npm:1.5.1" dependencies: - object-assign: ^4.1.1 - util: 0.10.3 - checksum: 9be48435f726029ae7020c5888a3566bf4d617687aab280827f2e4029644b6515a9519ea10d018b342147c02faf73d9e9419e780e8937b3786ee4945a0ca71e5 + object.assign: ^4.1.4 + util: ^0.10.4 + checksum: bfc539da97545f9b2989395d6b85be40b70649ce57464f3cc6e61f4975fb097ba0689c386f95bdb4c3ab867931e40a565c9e193ae3c02263a8e92acb17c9dc93 languageName: node linkType: hard @@ -9834,9 +8058,9 @@ __metadata: linkType: hard "async-each@npm:^1.0.1": - version: 1.0.3 - resolution: "async-each@npm:1.0.3" - checksum: 868651cfeb209970b367fbb96df1e1c8dc0b22c681cda7238417005ab2a5fbd944ee524b43f2692977259a57b7cc2547e03ff68f2b5113dbdf953d48cc078dc3 + version: 1.0.6 + resolution: "async-each@npm:1.0.6" + checksum: d237e8c39348d5f1441edbd3893692912afbacaf83a2ccce8978ebeea804529a8838654b12208fbbc08c8b0411a1248948ee9bf9291ebe1921aabd5b613bc5db languageName: node linkType: hard @@ -9882,17 +8106,10 @@ __metadata: languageName: node linkType: hard -"async@npm:^3.2.0": - version: 3.2.3 - resolution: "async@npm:3.2.3" - checksum: c4bee57ab2249af3dc83ca3ef9acfa8e822c0d5e5aa41bae3eaf7f673648343cd64ecd7d26091ffd357f3f044428b17b5f00098494b6cf8b6b3e9681f0636ca1 - languageName: node - linkType: hard - -"async@npm:^3.2.3": - version: 3.2.4 - resolution: "async@npm:3.2.4" - checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89 +"async@npm:^3.2.0, async@npm:^3.2.3, async@npm:^3.2.4": + version: 3.2.5 + resolution: "async@npm:3.2.5" + checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4 languageName: node linkType: hard @@ -9952,7 +8169,7 @@ __metadata: languageName: node linkType: hard -"available-typed-arrays@npm:^1.0.6, available-typed-arrays@npm:^1.0.7": +"available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" dependencies: @@ -9976,9 +8193,9 @@ __metadata: linkType: hard "aws4@npm:^1.8.0": - version: 1.11.0 - resolution: "aws4@npm:1.11.0" - checksum: 5a00d045fd0385926d20ebebcfba5ec79d4482fe706f63c27b324d489a04c68edb0db99ed991e19eda09cb8c97dc2452059a34d97545cebf591d7a2b5a10999f + version: 1.12.0 + resolution: "aws4@npm:1.12.0" + checksum: 68f79708ac7c335992730bf638286a3ee0a645cf12575d557860100767c500c08b30e24726b9f03265d74116417f628af78509e1333575e9f8d52a80edfe8cbc languageName: node linkType: hard @@ -10113,28 +8330,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-dynamic-import-node@npm:^2.3.3": - version: 2.3.3 - resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" - dependencies: - object.assign: ^4.1.0 - checksum: c9d24415bcc608d0db7d4c8540d8002ac2f94e2573d2eadced137a29d9eab7e25d2cbb4bc6b9db65cf6ee7430f7dd011d19c911a9a778f0533b4a05ce8292c9b - languageName: node - linkType: hard - -"babel-plugin-extract-format-message@npm:^6.2.3": - version: 6.2.3 - resolution: "babel-plugin-extract-format-message@npm:6.2.3" - dependencies: - format-message-estree-util: ^6.1.0 - format-message-generate-id: ^6.2.3 - format-message-parse: ^6.2.3 - format-message-print: ^6.2.3 - checksum: 1801839e2ce2239e503491fb27d305813cf8fc5a0e89a7b0d860d37879490c166f6ed05c1a2bc71a8df7f086d6f6c8b79b7a96fff7bc91c212201a87c5685a0b - languageName: node - linkType: hard - -"babel-plugin-extract-format-message@npm:^6.2.4": +"babel-plugin-extract-format-message@npm:^6.2.3, babel-plugin-extract-format-message@npm:^6.2.4": version: 6.2.4 resolution: "babel-plugin-extract-format-message@npm:6.2.4" dependencies: @@ -10181,17 +8377,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-macros@npm:^2.6.1": - version: 2.8.0 - resolution: "babel-plugin-macros@npm:2.8.0" - dependencies: - "@babel/runtime": ^7.7.2 - cosmiconfig: ^6.0.0 - resolve: ^1.12.0 - checksum: 59b09a21cf3ae1e14186c1b021917d004b49b953824b24953a54c6502da79e8051d4ac31cfd4a0ae7f6ea5ddf1f7edd93df4895dd3c3982a5b2431859c2889ac - languageName: node - linkType: hard - "babel-plugin-macros@npm:^3.1.0": version: 3.1.0 resolution: "babel-plugin-macros@npm:3.1.0" @@ -10212,41 +8397,16 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.3.0": - version: 0.3.1 - resolution: "babel-plugin-polyfill-corejs2@npm:0.3.1" - dependencies: - "@babel/compat-data": ^7.13.11 - "@babel/helper-define-polyfill-provider": ^0.3.1 - semver: ^6.1.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ca873f14ccd6d2942013345a956de8165d0913556ec29756a748157140f5312f79eed487674e0ca562285880f05829b3712d72e1e4b412c2ce46bd6a50b4b975 - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs2@npm:^0.4.8": - version: 0.4.8 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" + version: 0.4.10 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10" dependencies: "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.5.0 + "@babel/helper-define-polyfill-provider": ^0.6.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 22857b87268b354e095452199464accba5fd8f690558a2f24b0954807ca2494b96da8d5c13507955802427582015160bce26a66893acf6da5dafbed8b336cf79 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.5.0": - version: 0.5.1 - resolution: "babel-plugin-polyfill-corejs3@npm:0.5.1" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.1 - core-js-compat: ^3.20.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a8945755a1c718c0a18d3137efd962b0555caab4f9186f257e47e95ea077262dfedc4ab6bbbc5d8c09e0455a49fc1d3a97cc24a49d33ca8a093344b9f1ae73e8 + checksum: 2c0e4868789152f50db306f4957fa7934876cefb51d5d86436595f0b091539e45ce0e9c0125b5db2d71f913b29cd48ae76b8e942ba28fcf2273e084f54664a1c languageName: node linkType: hard @@ -10262,17 +8422,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.3.0": - version: 0.3.1 - resolution: "babel-plugin-polyfill-regenerator@npm:0.3.1" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f1473df7b700d6795ca41301b1e65a0aff15ce6c1463fc0ce2cf0c821114b0330920f59d4cebf52976363ee817ba29ad2758544a4661a724b08191080b9fe1da - languageName: node - linkType: hard - "babel-plugin-polyfill-regenerator@npm:^0.5.5": version: 0.5.5 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" @@ -10285,23 +8434,17 @@ __metadata: linkType: hard "babel-plugin-styled-components@npm:>= 1": - version: 2.0.2 - resolution: "babel-plugin-styled-components@npm:2.0.2" + version: 2.1.4 + resolution: "babel-plugin-styled-components@npm:2.1.4" dependencies: - "@babel/helper-annotate-as-pure": ^7.16.0 - "@babel/helper-module-imports": ^7.16.0 - babel-plugin-syntax-jsx: ^6.18.0 - lodash: ^4.17.11 + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.22.5 + lodash: ^4.17.21 + picomatch: ^2.3.1 peerDependencies: styled-components: ">= 2" - checksum: 3de729e909506b8dda27567fa561aa2f50822f1151f0d321303790afa45ffc0698f0d6836b8c8fd5f24845f4e1b181f8c51532dd9c1fa7a15fa37033a445c137 - languageName: node - linkType: hard - -"babel-plugin-syntax-jsx@npm:^6.18.0": - version: 6.18.0 - resolution: "babel-plugin-syntax-jsx@npm:6.18.0" - checksum: 0c7ce5b81d6cfc01a7dd7a76a9a8f090ee02ba5c890310f51217ef1a7e6163fb7848994bbc14fd560117892e82240df9c7157ad0764da67ca5f2afafb73a7d27 + checksum: d791aed68d975dae4f73055f86cd47afa99cb402b8113acdaf5678c8b6fba2cbc15543f2debe8ed09becb198aae8be2adfe268ad41f4bca917288e073a622bf8 languageName: node linkType: hard @@ -10514,9 +8657,9 @@ __metadata: linkType: hard "big-integer@npm:^1.6.48": - version: 1.6.51 - resolution: "big-integer@npm:1.6.51" - checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518 + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b languageName: node linkType: hard @@ -10615,10 +8758,10 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1": - version: 5.2.0 - resolution: "bn.js@npm:5.2.0" - checksum: 6117170393200f68b35a061ecbf55d01dd989302e7b3c798a3012354fa638d124f0b2f79e63f77be5556be80322a09c40339eda6413ba7468524c0b6d4b4cb7a +"bn.js@npm:^5.0.0, bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 languageName: node linkType: hard @@ -10641,11 +8784,11 @@ __metadata: linkType: hard "body-parser@npm:^1.19.2": - version: 1.20.1 - resolution: "body-parser@npm:1.20.1" + version: 1.20.2 + resolution: "body-parser@npm:1.20.2" dependencies: bytes: 3.1.2 - content-type: ~1.0.4 + content-type: ~1.0.5 debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 @@ -10653,10 +8796,10 @@ __metadata: iconv-lite: 0.4.24 on-finished: 2.4.1 qs: 6.11.0 - raw-body: 2.5.1 + raw-body: 2.5.2 type-is: ~1.6.18 unpipe: 1.0.0 - checksum: f1050dbac3bede6a78f0b87947a8d548ce43f91ccc718a50dd774f3c81f2d8b04693e52acf62659fad23101827dd318da1fb1363444ff9a8482b886a3e4a5266 + checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737 languageName: node linkType: hard @@ -10682,49 +8825,49 @@ __metadata: linkType: hard "boolean@npm:^3.0.1": - version: 3.1.4 - resolution: "boolean@npm:3.1.4" - checksum: 9a48bce4799ccca861be0ec9564f47a96dd01535079624e37b06df45e5dc89d14dcefa04c56f1491a91f0827029f6d9e25690f0b308dfc248b9e64e15593aa35 + version: 3.2.0 + resolution: "boolean@npm:3.2.0" + checksum: fb29535b8bf710ef45279677a86d14f5185d604557204abd2ca5fa3fb2a5c80e04d695c8dbf13ab269991977a79bb6c04b048220a6b2a3849853faa94f4a7d77 languageName: node linkType: hard "botbuilder-lg@npm:^4.18.0": - version: 4.18.0 - resolution: "botbuilder-lg@npm:4.18.0" + version: 4.22.1 + resolution: "botbuilder-lg@npm:4.22.1" dependencies: - adaptive-expressions: 4.18.0 + adaptive-expressions: 4.22.1 antlr4ts: 0.5.0-alpha.3 lodash: ^4.17.19 uuid: ^8.3.2 - checksum: e86d2241688eb40a0967701c79460c018b604ad5074c9bc8ee5a313f4b2f301bfe8dbe28a53eb66218af9482d2ead67654492d90741cec888a23c396abfdac3e + checksum: 0a09a4f8a041263830b8ac6c73663e56a874f351d4919c5648cb3dbb60c627d4c5031a31da646b68e06dcfba1859022c83994a91b9472b3282eeb85d576a7c20 languageName: node linkType: hard -"botframework-directlinejs@npm:0.15.1": - version: 0.15.1 - resolution: "botframework-directlinejs@npm:0.15.1" +"botframework-directlinejs@npm:0.15.5": + version: 0.15.5 + resolution: "botframework-directlinejs@npm:0.15.5" dependencies: "@babel/runtime": 7.14.8 - botframework-streaming: 4.14.1 + botframework-streaming: 4.20.0 buffer: 6.0.3 core-js: 3.15.2 cross-fetch: ^3.1.5 jwt-decode: 3.1.2 rxjs: 5.5.12 url-search-params-polyfill: 8.1.1 - checksum: 003848f2e978c4c31e9358c8cffef75f463ba74bf92ce89082fbed3763d1cb48bbfbe074566e5a6d83865c912424a6b466918f09176bc47cd5d71759d9a95242 + checksum: 55348e1a36931f44e727389c989919830d0635844668569d5b2d49ec1dfdf9e2819331a6146fa97db0dd2b0107a0f98e6b4a5fae6520c97d8c1a51ef605cd86e languageName: node linkType: hard -"botframework-directlinespeech-sdk@npm:4.15.6": - version: 4.15.6 - resolution: "botframework-directlinespeech-sdk@npm:4.15.6" +"botframework-directlinespeech-sdk@npm:4.16.0": + version: 4.16.0 + resolution: "botframework-directlinespeech-sdk@npm:4.16.0" dependencies: "@babel/runtime": 7.19.0 abort-controller: 3.0.0 abort-controller-es5: 2.0.1 base64-arraybuffer: 1.0.2 - core-js: 3.25.3 + core-js: 3.32.1 event-as-promise: 1.0.5 event-target-shim: 6.0.2 math-random: 2.0.1 @@ -10732,82 +8875,87 @@ __metadata: p-defer: 4.0.0 p-defer-es5: 2.0.1 web-speech-cognitive-services: 7.1.3 - checksum: bd908710fd98610713fca9889ad082146766d2be1a0fb74c2694844e9a6e8f5b466aa7a0f05da95a43c2258159f864dbd9e789deaf31ff54a051f536914a2294 + checksum: 4c520c67243664e0402044b5aa36c1569b49ab7265fb14cd58dec8c30e8d5e2eca926c9a7d3f4991b33f244f8d877e1d38b39fb5a886ca3d084594adc887cfab languageName: node linkType: hard "botframework-schema@npm:^4.11.1": - version: 4.15.0 - resolution: "botframework-schema@npm:4.15.0" + version: 4.22.1 + resolution: "botframework-schema@npm:4.22.1" dependencies: + adaptivecards: 1.2.3 uuid: ^8.3.2 - zod: ~1.11.17 - checksum: 551d5eab99c32a30063a926485e78b546225aea047e72b2e54e66d330b550fd8e66c81a4e0241583a0038ff95ee7349f02b492ab8dbe3089a7cb06b29a61f6ee + zod: ^3.22.4 + checksum: ca4aa2efaf2e52dde28c4bb788708a6d639368911baea8493d126fba5c871f5988f0c4f276953555307aaf19f6073a881ad82d8fee105366f5507feb356cbe9f languageName: node linkType: hard -"botframework-streaming@npm:4.14.1": - version: 4.14.1 - resolution: "botframework-streaming@npm:4.14.1" +"botframework-streaming@npm:4.20.0": + version: 4.20.0 + resolution: "botframework-streaming@npm:4.20.0" dependencies: "@types/node": ^10.17.27 "@types/ws": ^6.0.3 uuid: ^8.3.2 ws: ^7.1.2 - checksum: fce06f813d0b96d1b7a5a3d8cf34b495c2fd3d2e60274fe249ea13cf9c726e203cb210f831285736f466c683acee1e9d1aff0ab27863767dfcbeb43af7fefbe3 + checksum: fd98d2b203e50c94d97600023d99a8a8fc1d0624a2792877a6398821399d77cf30c59c5633fc4da9c9fd6f89114527e9fbd583671835b8e6a92b18d350e230a6 languageName: node linkType: hard -"botframework-webchat-api@npm:4.15.6": - version: 4.15.6 - resolution: "botframework-webchat-api@npm:4.15.6" +"botframework-webchat-api@npm:4.16.0": + version: 4.16.0 + resolution: "botframework-webchat-api@npm:4.16.0" dependencies: - botframework-webchat-core: 4.15.6 + botframework-webchat-core: 4.16.0 globalize: 1.7.0 math-random: 2.0.1 prop-types: 15.8.1 - react-redux: 7.2.8 - redux: 4.2.0 + react-redux: 7.2.9 + redux: 4.2.1 simple-update-in: 2.2.0 peerDependencies: react: ">= 16.8.6" react-dom: ">= 16.8.6" - checksum: 2a82802e0ef3f1c8b8e2d4426831cb657a772aa379b72363f736af1c45c599b81316823c6f4032cdc18c22bbb534cb66f855da3620850b48f68b1984a3c563a7 + checksum: 8dcd3dde1c92c8da2be631892b423b579419e2e0a1ff38e33f967699a42aef9170913d11fd3cfeb75721f9517fa09ac647a6ef2f72c83368dc80044b506a81a6 languageName: node linkType: hard -"botframework-webchat-component@npm:4.15.6": - version: 4.15.6 - resolution: "botframework-webchat-component@npm:4.15.6" +"botframework-webchat-component@npm:4.16.0": + version: 4.16.0 + resolution: "botframework-webchat-component@npm:4.16.0" dependencies: - "@emotion/css": 11.10.0 + "@emotion/css": 11.11.2 base64-js: 1.5.1 - botframework-webchat-api: 4.15.6 - botframework-webchat-core: 4.15.6 + botframework-webchat-api: 4.16.0 + botframework-webchat-core: 4.16.0 classnames: 2.3.2 - compute-scroll-into-view: 1.0.17 + compute-scroll-into-view: 1.0.20 event-target-shim: 6.0.2 markdown-it: 13.0.1 math-random: 2.0.1 + mdast: 3.0.0 + mdast-util-from-markdown: 2.0.0 memoize-one: 6.0.0 + merge-refs: 1.2.1 prop-types: 15.8.1 react-dictate-button: 2.0.1 - react-film: 3.1.0 - react-redux: 7.2.8 + react-film: 3.1.1-main.df870ea + react-redux: 7.2.9 react-say: 2.1.0 react-scroll-to-bottom: 4.2.0 - redux: 4.2.0 + redux: 4.2.1 simple-update-in: 2.2.0 + use-ref-from: 0.0.2 peerDependencies: react: ">= 16.8.6" react-dom: ">= 16.8.6" - checksum: 2c76ae5091e6aef961a448ed8daab3e2f398928573e6c0a56960f4dae1314abefebe995ec722278ec5fb48dee40c148a0468b32e0253225dda87eae589c64ee7 + checksum: c4babc6bb3457b8f483babe67cc909e29173f8f1a51fdd8177cd74006b5a0cbfe5851f446497abf0bb7b572ebe6aa847274d1858b2b39163b02efb33fda45e84 languageName: node linkType: hard -"botframework-webchat-core@npm:4.15.6, botframework-webchat-core@npm:^4.15.6": - version: 4.15.6 - resolution: "botframework-webchat-core@npm:4.15.6" +"botframework-webchat-core@npm:4.16.0, botframework-webchat-core@npm:^4.15.6": + version: 4.16.0 + resolution: "botframework-webchat-core@npm:4.16.0" dependencies: "@babel/runtime": 7.19.0 jwt-decode: 3.1.2 @@ -10815,60 +8963,46 @@ __metadata: mime: 3.0.0 p-defer: 4.0.0 p-defer-es5: 2.0.1 - redux: 4.2.0 + redux: 4.2.1 redux-devtools-extension: 2.13.9 - redux-saga: 1.2.1 + redux-saga: 1.2.3 simple-update-in: 2.2.0 - checksum: 6d8efe185af3696e0359348c746fe2ff629ea84920db7887bc71b1df8a982828551c72e763effff9262de266e3bc539eba20fb539552c6bb86b53e95b9287de6 + checksum: 65fc9f64b9c7138503955f123c8f7e7e211443fa485628ab27fde8f68a72206112ec13cbc7630ebb564c8cff993c5155a5e0cd5f64ee8cbcc56b3fdbaac5f3a3 languageName: node linkType: hard "botframework-webchat@npm:^4.15.6": - version: 4.15.6 - resolution: "botframework-webchat@npm:4.15.6" + version: 4.16.0 + resolution: "botframework-webchat@npm:4.16.0" dependencies: "@babel/runtime": 7.19.0 adaptivecards: 2.11.1 - botframework-directlinejs: 0.15.1 - botframework-directlinespeech-sdk: 4.15.6 - botframework-webchat-api: 4.15.6 - botframework-webchat-component: 4.15.6 - botframework-webchat-core: 4.15.6 + botframework-directlinejs: 0.15.5 + botframework-directlinespeech-sdk: 4.16.0 + botframework-webchat-api: 4.16.0 + botframework-webchat-component: 4.16.0 + botframework-webchat-core: 4.16.0 classnames: 2.3.2 - core-js: 3.25.3 + core-js: 3.32.1 markdown-it: 13.0.1 - markdown-it-attrs: 4.1.4 + markdown-it-attrs: 4.1.6 markdown-it-attrs-es5: 2.0.2 markdown-it-for-inline: 0.1.1 math-random: 2.0.1 + mdast: 3.0.0 + mdast-util-from-markdown: 2.0.0 memoize-one: 6.0.0 microsoft-cognitiveservices-speech-sdk: 1.17.0 prop-types: 15.8.1 - sanitize-html: 2.7.2 - url-search-params-polyfill: 8.1.1 + sanitize-html: 2.11.0 + url-search-params-polyfill: 8.2.4 uuid: 8.3.2 web-speech-cognitive-services: 7.1.3 - whatwg-fetch: 3.6.2 + whatwg-fetch: 3.6.18 peerDependencies: react: ">= 16.8.6" react-dom: ">= 16.8.6" - checksum: e308b8532d2f4c4de550207738f5ef3b2d733a7b04a40706b00cf83affd9f1c109383f6a07b7799bafed3fd80ed4fbae2ab7f10638cf4a172f7a05e73bef964b - languageName: node - linkType: hard - -"boxen@npm:^5.0.0": - version: 5.1.2 - resolution: "boxen@npm:5.1.2" - 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 - checksum: 82d03e42a72576ff235123f17b7c505372fe05c83f75f61e7d4fa4bcb393897ec95ce766fecb8f26b915f0f7a7227d66e5ec7cef43f5b2bd9d3aeed47ec55877 + checksum: d2bc53be38116982bb78e45fdb94cf7ca13618560f391d4e24602cc39126bab8485a50adadd903b555de8cecbd8d63e9760576cdc020890a565751b45fefef92 languageName: node linkType: hard @@ -10900,7 +9034,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.1, braces@npm:^3.0.2, braces@npm:~3.0.2": +"braces@npm:^3.0.2, braces@npm:~3.0.2": version: 3.0.2 resolution: "braces@npm:3.0.2" dependencies: @@ -10923,7 +9057,7 @@ __metadata: languageName: node linkType: hard -"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4": +"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" dependencies: @@ -10967,7 +9101,7 @@ __metadata: languageName: node linkType: hard -"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1": +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": version: 4.1.0 resolution: "browserify-rsa@npm:4.1.0" dependencies: @@ -10978,19 +9112,20 @@ __metadata: linkType: hard "browserify-sign@npm:^4.0.0": - version: 4.2.1 - resolution: "browserify-sign@npm:4.2.1" + version: 4.2.3 + resolution: "browserify-sign@npm:4.2.3" dependencies: - bn.js: ^5.1.1 - browserify-rsa: ^4.0.1 + bn.js: ^5.2.1 + browserify-rsa: ^4.1.0 create-hash: ^1.2.0 create-hmac: ^1.1.7 - elliptic: ^6.5.3 + elliptic: ^6.5.5 + hash-base: ~3.0 inherits: ^2.0.4 - parse-asn1: ^5.1.5 - readable-stream: ^3.6.0 - safe-buffer: ^5.2.0 - checksum: 0221f190e3f5b2d40183fa51621be7e838d9caa329fe1ba773406b7637855f37b30f5d83e52ff8f244ed12ffe6278dd9983638609ed88c841ce547e603855707 + parse-asn1: ^5.1.7 + readable-stream: ^2.3.8 + safe-buffer: ^5.2.1 + checksum: 403a8061d229ae31266670345b4a7c00051266761d2c9bbeb68b1a9bcb05f68143b16110cf23a171a5d6716396a1f41296282b3e73eeec0a1871c77f0ff4ee6b languageName: node linkType: hard @@ -11013,17 +9148,16 @@ __metadata: linkType: hard "browserslist@npm:^4.16.5": - version: 4.19.1 - resolution: "browserslist@npm:4.19.1" + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" dependencies: - caniuse-lite: ^1.0.30001286 - electron-to-chromium: ^1.4.17 - escalade: ^3.1.1 - node-releases: ^2.0.1 - picocolors: ^1.0.0 + caniuse-lite: ^1.0.30001587 + electron-to-chromium: ^1.4.668 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.13 bin: browserslist: cli.js - checksum: c0777fd483691638fd6801e16c9d809e1d65f6d2b06db2e806654be51045cbab1452a89841a2c5caea2cbe19d621b4f1d391cffbb24512aa33280039ab345875 + checksum: 436f49e796782ca751ebab7edc010cfc9c29f68536f387666cd70ea22f7105563f04dd62c6ff89cb24cc3254d17cba385f979eeeb3484d43e012412ff7e75def languageName: node linkType: hard @@ -11157,12 +9291,12 @@ __metadata: linkType: hard "bufferutil@npm:^4.0.1": - version: 4.0.6 - resolution: "bufferutil@npm:4.0.6" + version: 4.0.8 + resolution: "bufferutil@npm:4.0.8" dependencies: node-gyp: latest node-gyp-build: ^4.3.0 - checksum: dd107560947445280af7820c3d0534127b911577d85d537e1d7e0aa30fd634853cef8a994d6e8aed3d81388ab1a20257de776164afe6a6af8e78f5f17968ebd6 + checksum: 7e9a46f1867dca72fda350966eb468eca77f4d623407b0650913fadf73d5750d883147d6e5e21c56f9d3b0bdc35d5474e80a600b9f31ec781315b4d2469ef087 languageName: node linkType: hard @@ -11284,6 +9418,26 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^18.0.0": + version: 18.0.2 + resolution: "cacache@npm:18.0.2" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: 0250df80e1ad0c828c956744850c5f742c24244e9deb5b7dc81bca90f8c10e011e132ecc58b64497cc1cad9a98968676147fb6575f4f94722f7619757b17a11b + languageName: node + linkType: hard + "cache-base@npm:^1.0.1": version: 1.0.1 resolution: "cache-base@npm:1.0.1" @@ -11323,21 +9477,6 @@ __metadata: languageName: node linkType: hard -"cacheable-request@npm:^6.0.0": - version: 6.1.0 - resolution: "cacheable-request@npm:6.1.0" - 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 - checksum: b510b237b18d17e89942e9ee2d2a077cb38db03f12167fd100932dfa8fc963424bfae0bfa1598df4ae16c944a5484e43e03df8f32105b04395ee9495e9e4e9f1 - languageName: node - linkType: hard - "cacheable-request@npm:^7.0.2": version: 7.0.4 resolution: "cacheable-request@npm:7.0.4" @@ -11354,23 +9493,13 @@ __metadata: linkType: hard "cachedir@npm:^2.3.0": - version: 2.3.0 - resolution: "cachedir@npm:2.3.0" - checksum: ec90cb0f2e6336e266aa748dbadf3da9e0b20e843e43f1591acab7a3f1451337dc2f26cb9dd833ae8cfefeffeeb43ef5b5ff62782a685f4e3c2305dd98482fcb - languageName: node - linkType: hard - -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" - dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + version: 2.4.0 + resolution: "cachedir@npm:2.4.0" + checksum: 43198514eaa61f65b5535ed29ad651f22836fba3868ed58a6a87731f05462f317d39098fa3ac778801c25455483c9b7f32a2fcad1f690a978947431f12a0f4d0 languageName: node linkType: hard -"call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" dependencies: @@ -11384,9 +9513,9 @@ __metadata: linkType: hard "call-me-maybe@npm:^1.0.1": - version: 1.0.1 - resolution: "call-me-maybe@npm:1.0.1" - checksum: d19e9d6ac2c6a83fb1215718b64c5e233f688ebebb603bdfe4af59cde952df1f2b648530fab555bf290ea910d69d7d9665ebc916e871e0e194f47c2e48e4886b + version: 1.0.2 + resolution: "call-me-maybe@npm:1.0.2" + checksum: 42ff2d0bed5b207e3f0122589162eaaa47ba618f79ad2382fe0ba14d9e49fbf901099a6227440acc5946f86a4953e8aa2d242b330b0a5de4d090bb18f8935cae languageName: node linkType: hard @@ -11447,9 +9576,9 @@ __metadata: linkType: hard "camelize@npm:^1.0.0": - version: 1.0.0 - resolution: "camelize@npm:1.0.0" - checksum: 769f8d10071f57b974d9a51dc02f589dd7fb07ea6a7ecde1a57b52ae68657ba61fe85c60d50661b76c7dbb76b6474fbfd3356aee33cf5f025cd7fd6fb2811b73 + version: 1.0.1 + resolution: "camelize@npm:1.0.1" + checksum: 91d8611d09af725e422a23993890d22b2b72b4cabf7239651856950c76b4bf53fe0d0da7c5e4db05180e898e4e647220e78c9fbc976113bd96d603d1fcbfcb99 languageName: node linkType: hard @@ -11465,17 +9594,17 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30000918, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001286": - version: 1.0.30001300 - resolution: "caniuse-lite@npm:1.0.30001300" - checksum: f8c981c0658e2ea67b5e106538a9f3b15d528a6679f2b6e7cb3f508a99e4f9f3f69c73d1b243c77e5ccb3bcef964a801a26a2ba6a13416b42baf314577e3172a +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30000918, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001587": + version: 1.0.30001597 + resolution: "caniuse-lite@npm:1.0.30001597" + checksum: ec6a2cf0fd49f37d16732e6595939fc80a125dcd188a950bc936c61b4ad53becc0fe51bf2d9a625415de7b1cb23bd835f220e8b68d8ab951a940edeea65476fd languageName: node linkType: hard "capture-stack-trace@npm:^1.0.0": - version: 1.0.1 - resolution: "capture-stack-trace@npm:1.0.1" - checksum: 493668211de1307009589aeba5c382dc8b1011a41ca02f033b5f5a489ee174323a4b31d5afdc4bd48f64e1dd23b2521ddda4dbdcd382767e140f94b555f8f332 + version: 1.0.2 + resolution: "capture-stack-trace@npm:1.0.2" + checksum: 13295e8176e8de74bcbe0e4fd938bed9eb4204b4cc200210ff46df91cb20b69e86f6ef42f408a59454f8b62e567ef0ee6ee5b5e7e16e686668bc77f2741542b4 languageName: node linkType: hard @@ -11525,7 +9654,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:2.4.2, chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.3.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:2.4.2, chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.3.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -11597,6 +9726,13 @@ __metadata: languageName: node linkType: hard +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + "character-reference-invalid@npm:^1.0.0": version: 1.1.4 resolution: "character-reference-invalid@npm:1.1.4" @@ -11649,8 +9785,8 @@ __metadata: linkType: hard "chokidar@npm:^3.4.0, chokidar@npm:^3.4.1, chokidar@npm:^3.5.2": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" dependencies: anymatch: ~3.1.2 braces: ~3.0.2 @@ -11663,7 +9799,7 @@ __metadata: dependenciesMeta: fsevents: optional: true - checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d languageName: node linkType: hard @@ -11695,17 +9831,10 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^2.0.0": - version: 2.0.0 - resolution: "ci-info@npm:2.0.0" - checksum: 3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 - languageName: node - linkType: hard - "ci-info@npm:^3.2.0": - version: 3.3.0 - resolution: "ci-info@npm:3.3.0" - checksum: c3d86fe374938ecda5093b1ba39acb535d8309185ba3f23587747c6a057e63f45419b406d880304dbc0e1d72392c9a33e42fe9a1e299209bc0ded5efaa232b66 + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 languageName: node linkType: hard @@ -11720,9 +9849,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.0.0": - version: 1.2.2 - resolution: "cjs-module-lexer@npm:1.2.2" - checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 + version: 1.2.3 + resolution: "cjs-module-lexer@npm:1.2.3" + checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a languageName: node linkType: hard @@ -11803,13 +9932,6 @@ __metadata: languageName: node linkType: hard -"cli-boxes@npm:^2.2.1": - version: 2.2.1 - resolution: "cli-boxes@npm:2.2.1" - checksum: be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585 - languageName: node - linkType: hard - "cli-cursor@npm:^2.1.0": version: 2.1.0 resolution: "cli-cursor@npm:2.1.0" @@ -11859,15 +9981,15 @@ __metadata: linkType: hard "cli-table3@npm:~0.6.0": - version: 0.6.1 - resolution: "cli-table3@npm:0.6.1" + version: 0.6.3 + resolution: "cli-table3@npm:0.6.3" dependencies: - colors: 1.4.0 + "@colors/colors": 1.5.0 string-width: ^4.2.0 dependenciesMeta: - colors: + "@colors/colors": optional: true - checksum: 956e175f8eb019c26465b9f1e51121c08d8978e2aab04be7f8520ea8a4e67906fcbd8516dfb77e386ae3730ef0281aa21a65613dffbfa3d62969263252bd25a9 + checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c languageName: node linkType: hard @@ -12007,7 +10129,7 @@ __metadata: languageName: node linkType: hard -"clone-response@npm:1.0.2, clone-response@npm:^1.0.2": +"clone-response@npm:1.0.2": version: 1.0.2 resolution: "clone-response@npm:1.0.2" dependencies: @@ -12016,6 +10138,15 @@ __metadata: languageName: node linkType: hard +"clone-response@npm:^1.0.2": + version: 1.0.3 + resolution: "clone-response@npm:1.0.3" + dependencies: + mimic-response: ^1.0.0 + checksum: 4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e + languageName: node + linkType: hard + "clone-stats@npm:^1.0.0": version: 1.0.0 resolution: "clone-stats@npm:1.0.0" @@ -12071,9 +10202,9 @@ __metadata: linkType: hard "collect-v8-coverage@npm:^1.0.0": - version: 1.0.1 - resolution: "collect-v8-coverage@npm:1.0.1" - checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da languageName: node linkType: hard @@ -12120,16 +10251,16 @@ __metadata: linkType: hard "color-string@npm:^1.6.0": - version: 1.9.0 - resolution: "color-string@npm:1.9.0" + version: 1.9.1 + resolution: "color-string@npm:1.9.1" dependencies: color-name: ^1.0.0 simple-swizzle: ^0.2.2 - checksum: 93c6678b847f8cfa47d19677fd19e1d4b19d7a33f100644400357c298266080b5bca64e5f874fa8ac8cc0aa0606ad44f7a838b4e6fd05e6affea190a68555bb4 + checksum: c13fe7cff7885f603f49105827d621ce87f4571d78ba28ef4a3f1a104304748f620615e6bf065ecd2145d0d9dad83a3553f52bb25ede7239d18e9f81622f1cc5 languageName: node linkType: hard -"color-support@npm:^1.1.2": +"color-support@npm:^1.1.2, color-support@npm:^1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" bin: @@ -12148,14 +10279,7 @@ __metadata: languageName: node linkType: hard -"colorette@npm:^2.0.16": - version: 2.0.16 - resolution: "colorette@npm:2.0.16" - checksum: cd55596a3a2d1071c1a28eee7fd8a5387593ff1bd10a3e8d0a6221499311fe34a9f2b9272d77c391e0e003dcdc8934fb2f8d106e7ef1f7516f8060c901d41a27 - languageName: node - linkType: hard - -"colorette@npm:^2.0.20": +"colorette@npm:^2.0.16, colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d @@ -12169,7 +10293,7 @@ __metadata: languageName: node linkType: hard -"colors@npm:1.4.0, colors@npm:^1.1.2": +"colors@npm:^1.1.2": version: 1.4.0 resolution: "colors@npm:1.4.0" checksum: 98aa2c2418ad87dedf25d781be69dc5fc5908e279d9d30c34d8b702e586a0474605b3a189511482b9d5ed0d20c867515d22749537f7bc546256c6014f3ebdcec @@ -12192,7 +10316,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:2, commander@npm:^2.11.0, commander@npm:^2.19.0, commander@npm:^2.20.0, commander@npm:^2.7.1": +"commander@npm:2, commander@npm:^2.11.0, commander@npm:^2.19.0, commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e @@ -12243,6 +10367,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^9.0.0, commander@npm:^9.4.1": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade + languageName: node + linkType: hard + "common-tags@npm:^1.8.0": version: 1.8.2 resolution: "common-tags@npm:1.8.2" @@ -12265,21 +10396,21 @@ __metadata: linkType: hard "component-emitter@npm:^1.2.1": - version: 1.3.0 - resolution: "component-emitter@npm:1.3.0" - checksum: b3c46de38ffd35c57d1c02488355be9f218e582aec72d72d1b8bbec95a3ac1b38c96cd6e03ff015577e68f550fbb361a3bfdbd9bb248be9390b7b3745691be6b + version: 1.3.1 + resolution: "component-emitter@npm:1.3.1" + checksum: 94550aa462c7bd5a61c1bc480e28554aa306066930152d1b1844a0dd3845d4e5db7e261ddec62ae184913b3e59b55a2ad84093b9d3596a8f17c341514d6c483d languageName: node linkType: hard -"compress-commons@npm:^4.1.0": - version: 4.1.1 - resolution: "compress-commons@npm:4.1.1" +"compress-commons@npm:^4.1.2": + version: 4.1.2 + resolution: "compress-commons@npm:4.1.2" dependencies: buffer-crc32: ^0.2.13 crc32-stream: ^4.0.2 normalize-path: ^3.0.0 readable-stream: ^3.6.0 - checksum: 0176483211a7304a4a8aa52dbcc149a4c9181ac8a04bfbcc3d1a379174bf5fa56c3b15cec19e5ae3d31f1b1ce35ebb275b792b867000c77bac7162ce4e0ca268 + checksum: b50c4b5d6b8917ea164eef81d414b1824f27e02427f9266926c80aad55f9e15f81f74c274770773c2b732c22d1081b81dedce4f133271a466151f7f36b8e9dc9 languageName: node linkType: hard @@ -12330,10 +10461,10 @@ __metadata: languageName: node linkType: hard -"compute-scroll-into-view@npm:1.0.17": - version: 1.0.17 - resolution: "compute-scroll-into-view@npm:1.0.17" - checksum: b20c05a10c37813c5a6e4bf053c00f65c88d23afed7a6bd7a2a69e05e2ffc2df3483ecfe407d36bf16b8cec8be21ae1966c9c523093a03117e567156cd79a51e +"compute-scroll-into-view@npm:1.0.20": + version: 1.0.20 + resolution: "compute-scroll-into-view@npm:1.0.20" + checksum: f15fab29221953620735393ac1866541aab0d27d28078bedbba071a291ee9c8cc1a72bee302cf0bc06ed83c5e55afb74ebcbd634a63671ba33cf1fb1c51d3308 languageName: node linkType: hard @@ -12359,22 +10490,8 @@ __metadata: yargs: ^17.7.2 bin: conc: dist/bin/concurrently.js - concurrently: dist/bin/concurrently.js - checksum: 8ac774df06869773438f1bf91025180c52d5b53139bc86cf47659136c0d97461d0579c515d848d1e945d4e3e0cafe646b2ea18af8d74259b46abddcfe39b2c6c - languageName: node - linkType: hard - -"configstore@npm:^5.0.1": - version: 5.0.1 - resolution: "configstore@npm:5.0.1" - 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 - checksum: 60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e + concurrently: dist/bin/concurrently.js + checksum: 8ac774df06869773438f1bf91025180c52d5b53139bc86cf47659136c0d97461d0579c515d848d1e945d4e3e0cafe646b2ea18af8d74259b46abddcfe39b2c6c languageName: node linkType: hard @@ -12429,10 +10546,10 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.4": - version: 1.0.4 - resolution: "content-type@npm:1.0.4" - checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0 +"content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 languageName: node linkType: hard @@ -12447,11 +10564,9 @@ __metadata: linkType: hard "convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.7.0": - version: 1.8.0 - resolution: "convert-source-map@npm:1.8.0" - dependencies: - safe-buffer: ~5.1.1 - checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 languageName: node linkType: hard @@ -12469,10 +10584,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:0.4.1": - version: 0.4.1 - resolution: "cookie@npm:0.4.1" - checksum: bd7c47f5d94ab70ccdfe8210cde7d725880d2fcda06d8e375afbdd82de0c8d3b73541996e9ce57d35f67f672c4ee6d60208adec06b3c5fc94cebb85196084cf8 +"cookie-signature@npm:1.0.7": + version: 1.0.7 + resolution: "cookie-signature@npm:1.0.7" + checksum: 1a62808cd30d15fb43b70e19829b64d04b0802d8ef00275b57d152de4ae6a3208ca05c197b6668d104c4d9de389e53ccc2d3bc6bcaaffd9602461417d8c40710 languageName: node linkType: hard @@ -12483,6 +10598,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 + languageName: node + linkType: hard + "copy-concurrently@npm:^1.0.0": version: 1.0.5 resolution: "copy-concurrently@npm:1.0.5" @@ -12522,26 +10644,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.20.0, core-js-compat@npm:^3.20.2": - version: 3.20.3 - resolution: "core-js-compat@npm:3.20.3" - dependencies: - browserslist: ^4.19.1 - semver: 7.0.0 - checksum: ebb7af23e798e87b9a5fc00cb304089160b5e259db7002a1026d81d928a74a32cd9c4adda4959526fa75382f074e635fedd6590d16bda60df751734d033988e6 - languageName: node - linkType: hard - -"core-js-compat@npm:^3.22.1": - version: 3.22.4 - resolution: "core-js-compat@npm:3.22.4" - dependencies: - browserslist: ^4.20.3 - semver: 7.0.0 - checksum: b58111ba60091ad99be7246ecbb806ff89f504a80f74d1ddd0f219fd51a8b9460db6043bd7fe046acd8bd1b4370c595cfadf70b18fca8520ad8fed52b1f837b5 - languageName: node - linkType: hard - "core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.34.0": version: 3.36.0 resolution: "core-js-compat@npm:3.36.0" @@ -12551,10 +10653,10 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.20.2": - version: 3.20.3 - resolution: "core-js-pure@npm:3.20.3" - checksum: a8ec44390849bcf0502f20e6349fa087944bb88ac83d796d7fd5ace837d242308aae54b247a6a56bec463e5ab9be08dfad48d389673c34e8e31cc0a661a17a95 +"core-js-pure@npm:^3.25.1, core-js-pure@npm:^3.30.2": + version: 3.36.0 + resolution: "core-js-pure@npm:3.36.0" + checksum: 12a0588981efdc710426c688f6d5f6abaee76858ff32d21c6d7b81bc81c39b7cebb2733f8e822862b2a7f329f8fe37065a33ff6c4fd9253b3a1ad3cf636e483e languageName: node linkType: hard @@ -12565,13 +10667,6 @@ __metadata: languageName: node linkType: hard -"core-js@npm:3.12.1": - version: 3.12.1 - resolution: "core-js@npm:3.12.1" - checksum: c112ffaf2f20d9ba849b688c320d1724200d9a7b304125714f25b101a4ae3b55aa07a23f318f1735178077700d42382b71cebd86afa34279f266320db88c9cf6 - languageName: node - linkType: hard - "core-js@npm:3.15.2": version: 3.15.2 resolution: "core-js@npm:3.15.2" @@ -12586,10 +10681,24 @@ __metadata: languageName: node linkType: hard -"core-js@npm:3.25.3": - version: 3.25.3 - resolution: "core-js@npm:3.25.3" - checksum: 26ca0a5e575e6da03dc30099f48bc00db50a1c0a3f81299165f111cb163869ae453de5e345f2cb7bc8be85a9adcee11fca94f0fbdbdf6d483c68e1c55a9efc5a +"core-js@npm:3.28.0": + version: 3.28.0 + resolution: "core-js@npm:3.28.0" + checksum: 3155fd0ec16d0089106b145e9595280a4ea4bde0d7ff26aa14364cd4f1c203baf6620c3025acd284f363d08b9f21104101692766ca9a36ffeee7307bdf3e1881 + languageName: node + linkType: hard + +"core-js@npm:3.32.1": + version: 3.32.1 + resolution: "core-js@npm:3.32.1" + checksum: e4af91d9c6be7b59235feb3f273d16705126ce09a0b4a787144d131d874f0cd10be3c24fc52e5eea7d7cb03ceabe4be7b255abcd9474b5eb1ff365d2c5611f9a + languageName: node + linkType: hard + +"core-js@npm:^1.0.0": + version: 1.2.7 + resolution: "core-js@npm:1.2.7" + checksum: 0b76371bfa98708351cde580f9287e2360d2209920e738ae950ae74ad08639a2e063541020bf666c28778956fc356ed9fe56d962129c88a87a6a4a0612526c75 languageName: node linkType: hard @@ -12601,9 +10710,9 @@ __metadata: linkType: hard "core-js@npm:^3.12.1": - version: 3.20.3 - resolution: "core-js@npm:3.20.3" - checksum: 2106cdfb1330abf9e27d577666fc0421feafe8c39bb5af90a63af16e9706c767a7e3a82edc21ce3ed6b9d806f3200d1cf6cc3d0597a8c0af12dbec287c781d65 + version: 3.36.0 + resolution: "core-js@npm:3.36.0" + checksum: 48c807d5055ad0424f52d13583e96ddca2efcdc4e3cd9c479d60f269c8fe225191cd4e26a4593f43f7ef6dba08d161091147ecf8ae0300c15bc648a4f555217b languageName: node linkType: hard @@ -12633,19 +10742,6 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^6.0.0": - version: 6.0.0 - resolution: "cosmiconfig@npm:6.0.0" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.1.0 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.7.2 - checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc - languageName: node - linkType: hard - "cosmiconfig@npm:^7.0.0": version: 7.1.0 resolution: "cosmiconfig@npm:7.1.0" @@ -12675,24 +10771,21 @@ __metadata: linkType: hard "crc-32@npm:^1.2.0": - version: 1.2.0 - resolution: "crc-32@npm:1.2.0" - dependencies: - exit-on-epipe: ~1.0.1 - printj: ~1.1.0 + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" bin: - crc32: ./bin/crc32.njs - checksum: 7bcde8bea262f6629ac3c70e20bdfa3d058dc77091705ce8620513f76f19b41fc273ddd65a716eef9b4e33fbb61ff7f9b266653d214319aef27e4223789c6b9e + crc32: bin/crc32.njs + checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 languageName: node linkType: hard "crc32-stream@npm:^4.0.2": - version: 4.0.2 - resolution: "crc32-stream@npm:4.0.2" + version: 4.0.3 + resolution: "crc32-stream@npm:4.0.3" dependencies: crc-32: ^1.2.0 readable-stream: ^3.4.0 - checksum: 1099559283b86e8a55390228b57ff4d57a74cac6aa8086aa4730f84317c9f93e914aeece115352f2d706a9df7ed75327ffacd86cfe23f040aef821231b528e76 + checksum: d44d0ec6f04d8a1bed899ac3e4fbb82111ed567ea6d506be39147362af45c747887fce1032f4beca1646b4824e5a9614cd3332bfa94bbc5577ca5445e7f75ddd languageName: node linkType: hard @@ -12788,15 +10881,15 @@ __metadata: linkType: hard "create-react-context@npm:^0.2.1": - version: 0.3.0 - resolution: "create-react-context@npm:0.3.0" + version: 0.2.3 + resolution: "create-react-context@npm:0.2.3" dependencies: + fbjs: ^0.8.0 gud: ^1.0.0 - warning: ^4.0.3 peerDependencies: prop-types: ^15.0.0 react: ^0.14.0 || ^15.0.0 || ^16.0.0 - checksum: e59b7a65671e59f5b11e06f67faadf0733ab6c33247d5631331aeb05450d180b8ae44d73817b9c02f1527654ba490ea3d3dd7320f8d6debb36776f10b0ae6a47 + checksum: c48829815c90dc8fcd80a1542c70920fe9a1ba18c5f226de42f2494a82701fc5ca5197a64a412dcf1bf6e54b9ea603a8d14ad38df7870ed798490a505b38ac89 languageName: node linkType: hard @@ -12813,11 +10906,11 @@ __metadata: linkType: hard "cross-fetch@npm:^3.1.5": - version: 3.1.5 - resolution: "cross-fetch@npm:3.1.5" + version: 3.1.8 + resolution: "cross-fetch@npm:3.1.8" dependencies: - node-fetch: 2.6.7 - checksum: f6b8c6ee3ef993ace6277fd789c71b6acf1b504fd5f5c7128df4ef2f125a429e29cd62dc8c127523f04a5f2fa4771ed80e3f3d9695617f441425045f505cf3bb + node-fetch: ^2.6.12 + checksum: 78f993fa099eaaa041122ab037fe9503ecbbcb9daef234d1d2e0b9230a983f64d645d088c464e21a247b825a08dc444a6e7064adfa93536d3a9454b4745b3632 languageName: node linkType: hard @@ -12874,13 +10967,6 @@ __metadata: languageName: node linkType: hard -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 - languageName: node - linkType: hard - "crypto@npm:^1.0.1": version: 1.0.1 resolution: "crypto@npm:1.0.1" @@ -13029,15 +11115,15 @@ __metadata: linkType: hard "css-select@npm:^4.1.3": - version: 4.2.1 - resolution: "css-select@npm:4.2.1" + version: 4.3.0 + resolution: "css-select@npm:4.3.0" dependencies: boolbase: ^1.0.0 - css-what: ^5.1.0 - domhandler: ^4.3.0 + css-what: ^6.0.1 + domhandler: ^4.3.1 domutils: ^2.8.0 nth-check: ^2.0.1 - checksum: 6617193ec7c332217204c4ea371d332c6845603fda415e36032e7e9e18206d7c368a14e3c57532082314d2689955b01122aa1097c1c52b6c1cab7ad90970d3c6 + checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0 languageName: node linkType: hard @@ -13086,17 +11172,6 @@ __metadata: languageName: node linkType: hard -"css@npm:^3.0.0": - version: 3.0.0 - resolution: "css@npm:3.0.0" - dependencies: - inherits: ^2.0.4 - source-map: ^0.6.1 - source-map-resolve: ^0.6.0 - checksum: 4273ac816ddf99b99acb9c1d1a27d86d266a533cc01118369d941d8e8a78277a83cad3315e267a398c509d930fbb86504e193ea1ebc620a4a4212e06fe76e8be - languageName: node - linkType: hard - "cssauron@npm:^1.1.0": version: 1.4.0 resolution: "cssauron@npm:1.4.0" @@ -13221,16 +11296,16 @@ __metadata: linkType: hard "csstype@npm:^2.2.0": - version: 2.6.19 - resolution: "csstype@npm:2.6.19" - checksum: 72b51ddd30ba308d08373cd890e79526efdc19a9762941845040055f75353992f2d8d4cf4db282a8e1d3d9d2a39c989c65fe32b7b2655f08d313660c4048d2d6 + version: 2.6.21 + resolution: "csstype@npm:2.6.21" + checksum: 2ce8bc832375146eccdf6115a1f8565a27015b74cce197c35103b4494955e9516b246140425ad24103864076aa3e1257ac9bab25a06c8d931dd87a6428c9dccf languageName: node linkType: hard "csstype@npm:^3.0.2": - version: 3.0.10 - resolution: "csstype@npm:3.0.10" - checksum: 20a8fa324f2b33ddf94aa7507d1b6ab3daa6f3cc308888dc50126585d7952f2471de69b2dbe0635d1fdc31223fef8e070842691877e725caf456e2378685a631 + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 languageName: node linkType: hard @@ -13607,13 +11682,13 @@ __metadata: languageName: node linkType: hard -"d@npm:1, d@npm:^1.0.1": - version: 1.0.1 - resolution: "d@npm:1.0.1" +"d@npm:1, d@npm:^1.0.1, d@npm:^1.0.2": + version: 1.0.2 + resolution: "d@npm:1.0.2" dependencies: - es5-ext: ^0.10.50 - type: ^1.0.1 - checksum: 49ca0639c7b822db670de93d4fbce44b4aa072cd848c76292c9978a8cd0fff1028763020ff4b0f147bd77bfe29b4c7f82e0f71ade76b2a06100543cdfd948d19 + es5-ext: ^0.10.64 + type: ^2.7.2 + checksum: 775db1e8ced6707cddf64a5840522fcf5475d38ef49a5d615be0ac47f86ef64d15f5a73de1522b09327cc466d4dc35ea83dbfeed456f7a0fdcab138deb800355 languageName: node linkType: hard @@ -13674,13 +11749,13 @@ __metadata: linkType: hard "data-view-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-length@npm:1.0.0" + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" dependencies: - call-bind: ^1.0.6 + call-bind: ^1.0.7 es-errors: ^1.3.0 is-data-view: ^1.0.1 - checksum: fe516c30d15019717ffad5262c74e600b017f8b36103f2e5fdd1f08520fd1a93d32bff76397bfc255f9d4122ddc0eddb82c445b271e2d940d931d1944020804f + checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 languageName: node linkType: hard @@ -13712,9 +11787,16 @@ __metadata: linkType: hard "dayjs@npm:^1.10.3, dayjs@npm:^1.10.4": - version: 1.10.7 - resolution: "dayjs@npm:1.10.7" - checksum: a0a4ca95abaa03d0702161dc2c35d16121188e342f5052b9c61cdf784dab68af766f477c04f87f71c6af666fd4d13db9b9853b87265850d6093b7b04e1bb1cd7 + version: 1.11.10 + resolution: "dayjs@npm:1.11.10" + checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 + languageName: node + linkType: hard + +"debounce@npm:^1.2.1": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e languageName: node linkType: hard @@ -13736,15 +11818,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": - version: 4.3.3 - resolution: "debug@npm:4.3.3" +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" dependencies: ms: 2.1.2 peerDependenciesMeta: supports-color: optional: true - checksum: 14472d56fe4a94dbcfaa6dbed2dd3849f1d72ba78104a1a328047bb564643ca49df0224c3a17fa63533fd11dd3d4c8636cd861191232a2c6735af00cc2d4de16 + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 languageName: node linkType: hard @@ -13757,19 +11839,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4.3.4, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"debug@npm:^3.1.0, debug@npm:^3.1.1, debug@npm:^3.2.5, debug@npm:^3.2.6, debug@npm:^3.2.7": +"debug@npm:^3.1.0, debug@npm:^3.2.5, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -13785,10 +11855,19 @@ __metadata: languageName: node linkType: hard +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: ^2.0.0 + checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.0": - version: 0.2.0 - resolution: "decode-uri-component@npm:0.2.0" - checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94 + version: 0.2.2 + resolution: "decode-uri-component@npm:0.2.2" + checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139 languageName: node linkType: hard @@ -13823,16 +11902,16 @@ __metadata: linkType: hard "deep-equal@npm:^1.0.1": - version: 1.1.1 - resolution: "deep-equal@npm:1.1.1" + version: 1.1.2 + resolution: "deep-equal@npm:1.1.2" dependencies: - is-arguments: ^1.0.4 - is-date-object: ^1.0.1 - is-regex: ^1.0.4 - object-is: ^1.0.1 + is-arguments: ^1.1.1 + is-date-object: ^1.0.5 + is-regex: ^1.1.4 + object-is: ^1.1.5 object-keys: ^1.1.1 - regexp.prototype.flags: ^1.2.0 - checksum: f92686f2c5bcdf714a75a5fa7a9e47cb374a8ec9307e717b8d1ce61f56a75aaebf5619c2a12b8087a705b5a2f60d0292c35f8b58cb1f72e3268a3a15cab9f78d + regexp.prototype.flags: ^1.5.1 + checksum: 2d50f27fff785fb272cdef038ee5365ee5a30ab1aab053976e6a6add44cc60abd99b38179a46a01ac52c5e54ebb220e8f1a3a1954da20678b79c46ef4d97c9db languageName: node linkType: hard @@ -13851,9 +11930,9 @@ __metadata: linkType: hard "deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 languageName: node linkType: hard @@ -13874,13 +11953,6 @@ __metadata: languageName: node linkType: hard -"defer-to-connect@npm:^1.0.1": - version: 1.1.3 - resolution: "defer-to-connect@npm:1.1.3" - checksum: 9491b301dcfa04956f989481ba7a43c2231044206269eb4ab64a52d6639ee15b1252262a789eb4239fb46ab63e44d4e408641bae8e0793d640aee55398cb3930 - languageName: node - linkType: hard - "defer-to-connect@npm:^2.0.0": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" @@ -13888,7 +11960,7 @@ __metadata: languageName: node linkType: hard -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.2, define-data-property@npm:^1.1.4": +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" dependencies: @@ -13899,26 +11971,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.2, define-properties@npm:^1.1.3": - version: 1.1.3 - resolution: "define-properties@npm:1.1.3" - dependencies: - object-keys: ^1.0.12 - checksum: da80dba55d0cd76a5a7ab71ef6ea0ebcb7b941f803793e4e0257b384cb772038faa0c31659d244e82c4342edef841c1a1212580006a05a5068ee48223d787317 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" - dependencies: - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b - languageName: node - linkType: hard - -"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.2, define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -14000,14 +12053,14 @@ __metadata: languageName: node linkType: hard -"depd@npm:^1.1.2, depd@npm:~1.1.2": +"depd@npm:~1.1.2": version: 1.1.2 resolution: "depd@npm:1.1.2" checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 languageName: node linkType: hard -"dequal@npm:^2.0.3": +"dequal@npm:^2.0.0, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 @@ -14015,12 +12068,12 @@ __metadata: linkType: hard "des.js@npm:^1.0.0": - version: 1.0.1 - resolution: "des.js@npm:1.0.1" + version: 1.1.0 + resolution: "des.js@npm:1.1.0" dependencies: inherits: ^2.0.1 minimalistic-assert: ^1.0.0 - checksum: 1ec2eedd7ed6bd61dd5e0519fd4c96124e93bb22de8a9d211b02d63e5dd152824853d919bb2090f965cc0e3eb9c515950a9836b332020d810f9c71feb0fd7df4 + checksum: 0e9c1584b70d31e20f20a613fc9ef60fbc6a147dfec9e448a168794a4b97ac04d8dc47ea008f1fa93b0f8aaf7c1ead632a5e59ce1913a6079d2d244c9f5ebe33 languageName: node linkType: hard @@ -14045,12 +12098,10 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^1.0.3": - version: 1.0.3 - resolution: "detect-libc@npm:1.0.3" - bin: - detect-libc: ./bin/detect-libc.js - checksum: daaaed925ffa7889bd91d56e9624e6c8033911bb60f3a50a74a87500680652969dbaab9526d1e200a4c94acf80fc862a22131841145a0a8482d60a99c24f4a3e +"detect-libc@npm:^2.0.0": + version: 2.0.2 + resolution: "detect-libc@npm:2.0.2" + checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d languageName: node linkType: hard @@ -14081,6 +12132,15 @@ __metadata: languageName: node linkType: hard +"devlop@npm:^1.0.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: ^2.0.0 + checksum: d2ff650bac0bb6ef08c48f3ba98640bb5fec5cce81e9957eb620408d1bab1204d382a45b785c6b3314dc867bb0684936b84c6867820da6db97cbb5d3c15dd185 + languageName: node + linkType: hard + "diagnostic-channel-publishers@npm:0.4.4": version: 0.4.4 resolution: "diagnostic-channel-publishers@npm:0.4.4" @@ -14106,13 +12166,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^27.4.0": - version: 27.4.0 - resolution: "diff-sequences@npm:27.4.0" - checksum: 66d04033e8632eeacdd029b4ecaf87d233d475e4b0cd1cee035eda99e70e1a7f803507d72f2677990ef526f28a2f6e5709af8d94dcdc0682b8884a3a646190a1 - languageName: node - linkType: hard - "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -14268,9 +12321,9 @@ __metadata: linkType: hard "dom-accessibility-api@npm:^0.5.6": - version: 0.5.10 - resolution: "dom-accessibility-api@npm:0.5.10" - checksum: c05949889b02f5313d100778e9f736f9bddfb1da47387d351833f0b5d60d6230d4fcb849e124a8a1591706b6200337fa40f0f4f3817dce1459309e075f48371c + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 languageName: node linkType: hard @@ -14284,13 +12337,24 @@ __metadata: linkType: hard "dom-serializer@npm:^1.0.1": - version: 1.3.2 - resolution: "dom-serializer@npm:1.3.2" + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" dependencies: domelementtype: ^2.0.1 domhandler: ^4.2.0 entities: ^2.0.0 - checksum: bff48714944d67b160db71ba244fb0f3fe72e77ef2ec8414e2eeb56f2d926e404a13456b8b83a5392e217ba47dec2ec0c368801b31481813e94d185276c3e964 + checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + languageName: node + linkType: hard + +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 languageName: node linkType: hard @@ -14301,19 +12365,28 @@ __metadata: languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": - version: 2.2.0 - resolution: "domelementtype@npm:2.2.0" - checksum: 24cb386198640cd58aa36f8c987f2ea61859929106d06ffcc8f547e70cb2ed82a6dc56dcb8252b21fba1f1ea07df6e4356d60bfe57f77114ca1aed6828362629 +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 languageName: node linkType: hard -"domhandler@npm:^4.0, domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.2.2, domhandler@npm:^4.3.0": - version: 4.3.0 - resolution: "domhandler@npm:4.3.0" +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" dependencies: domelementtype: ^2.2.0 - checksum: d2a2dbf40dd99abf936b65ad83c6b530afdb3605a87cad37a11b5d9220e68423ebef1b86c89e0f6d93ffaf315cc327cf1a988652e7a9a95cce539e3984f4c64d + checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + languageName: node + linkType: hard + +"domhandler@npm:^5.0, domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c languageName: node linkType: hard @@ -14328,6 +12401,17 @@ __metadata: languageName: node linkType: hard +"domutils@npm:^3.0.1, domutils@npm:^3.1.0": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + languageName: node + linkType: hard + "dot-prop@npm:^5.2.0": version: 5.3.0 resolution: "dot-prop@npm:5.3.0" @@ -14439,9 +12523,9 @@ __metadata: linkType: hard "duplexer3@npm:^0.1.4": - version: 0.1.4 - resolution: "duplexer3@npm:0.1.4" - checksum: c2fd6969314607d23439c583699aaa43c4100d66b3e161df55dccd731acc57d5c81a64bb4f250805fbe434ddb1d2623fee2386fb890f5886ca1298690ec53415 + version: 0.1.5 + resolution: "duplexer3@npm:0.1.5" + checksum: e677cb4c48f031ca728601d6a20bf6aed4c629d69ef9643cb89c67583d673c4ec9317cc6427501f38bd8c368d3a18f173987cc02bd99d8cf8fe3d94259a22a20 languageName: node linkType: hard @@ -14464,6 +12548,13 @@ __metadata: languageName: node linkType: hard +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + "ecc-jsbn@npm:~0.1.1": version: 0.1.2 resolution: "ecc-jsbn@npm:0.1.2" @@ -14501,13 +12592,13 @@ __metadata: linkType: hard "ejs@npm:^3.1.8": - version: 3.1.8 - resolution: "ejs@npm:3.1.8" + version: 3.1.9 + resolution: "ejs@npm:3.1.9" dependencies: jake: ^10.8.5 bin: ejs: bin/cli.js - checksum: 1d40d198ad52e315ccf37e577bdec06e24eefdc4e3c27aafa47751a03a0c7f0ec4310254c9277a5f14763c3cd4bbacce27497332b2d87c74232b9b1defef8efc + checksum: af6f10eb815885ff8a8cfacc42c6b6cf87daf97a4884f87a30e0c3271fedd85d76a3a297d9c33a70e735b97ee632887f85e32854b9cdd3a2d97edf931519a35f languageName: node linkType: hard @@ -14566,10 +12657,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.17": - version: 1.4.49 - resolution: "electron-to-chromium@npm:1.4.49" - checksum: 0527cc195c34b609f4ecad25584d238494d758c730d0aafdbd408a0ccce42cc6f05c1c0b76cc055a0a173700e29b1f3352d91b5cbeb91d063321690913afae84 +"electron-to-chromium@npm:^1.4.668": + version: 1.4.701 + resolution: "electron-to-chromium@npm:1.4.701" + checksum: dbecf8320a4db7c5b089c2786b32eb541ba20c5c8e71e8953476350caea097c40ccaac93962963be98d61ea09c8a88910e48704ce14838a7711ba96d87bc23a0 languageName: node linkType: hard @@ -14603,8 +12694,8 @@ __metadata: linkType: hard "elliptic@npm:^6.5.3": - version: 6.5.4 - resolution: "elliptic@npm:6.5.4" + version: 6.5.5 + resolution: "elliptic@npm:6.5.5" dependencies: bn.js: ^4.11.9 brorand: ^1.1.0 @@ -14613,7 +12704,7 @@ __metadata: inherits: ^2.0.4 minimalistic-assert: ^1.0.1 minimalistic-crypto-utils: ^1.0.1 - checksum: d56d21fd04e97869f7ffcc92e18903b9f67f2d4637a23c860492fbbff5a3155fd9ca0184ce0c865dd6eb2487d234ce9551335c021c376cd2d3b7cb749c7d10f4 + checksum: ec9105e4469eb3b32b0ee2579756c888ddf3f99d259aa0d65fccb906ee877768aaf8880caae73e3e669c9a4adeb3eb1945703aa974ec5000d2d33a239f4567eb languageName: node linkType: hard @@ -14675,7 +12766,7 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.12": +"encoding@npm:^0.1.11, encoding@npm:^0.1.12, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: @@ -14704,32 +12795,23 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.0.0": - version: 5.10.0 - resolution: "enhanced-resolve@npm:5.10.0" - dependencies: - graceful-fs: ^4.2.4 - tapable: ^2.2.0 - checksum: 0bb9830704db271610f900e8d79d70a740ea16f251263362b0c91af545576d09fe50103496606c1300a05e588372d6f9780a9bc2e30ce8ef9b827ec8f44687ff - languageName: node - linkType: hard - -"enhanced-resolve@npm:^5.7.0": - version: 5.8.3 - resolution: "enhanced-resolve@npm:5.8.3" +"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.7.0": + version: 5.16.0 + resolution: "enhanced-resolve@npm:5.16.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: d79fbe531106448b768bb0673fb623ec0202d7ee70373ab7d4f4745d5dfe0806f38c9db7e7da8c941288fe475ab3d538db3791fce522056eeea40ca398c9e287 + checksum: ccfd01850ecf2aa51e8554d539973319ff7d8a539ef1e0ba3460a0ccad6223c4ef6e19165ee64161b459cd8a48df10f52af4434c60023c65fde6afa32d475f7e languageName: node linkType: hard "enquirer@npm:^2.3.6": - version: 2.3.6 - resolution: "enquirer@npm:2.3.6" + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" dependencies: ansi-colors: ^4.1.1 - checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 + strip-ansi: ^6.0.1 + checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 languageName: node linkType: hard @@ -14740,7 +12822,14 @@ __metadata: languageName: node linkType: hard -"entities@npm:^3.0.1, entities@npm:~3.0.1": +"entities@npm:^4.2.0, entities@npm:^4.4.0, entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + +"entities@npm:~3.0.1": version: 3.0.1 resolution: "entities@npm:3.0.1" checksum: aaf7f12033f0939be91f5161593f853f2da55866db55ccbf72f45430b8977e2b79dbd58c53d0fdd2d00bd7d313b75b0968d09f038df88e308aa97e39f9456572 @@ -14797,66 +12886,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": - version: 1.19.1 - resolution: "es-abstract@npm:1.19.1" - dependencies: - call-bind: ^1.0.2 - es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 - get-intrinsic: ^1.1.1 - get-symbol-description: ^1.0.0 - has: ^1.0.3 - has-symbols: ^1.0.2 - internal-slot: ^1.0.3 - is-callable: ^1.2.4 - is-negative-zero: ^2.0.1 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.1 - is-string: ^1.0.7 - is-weakref: ^1.0.1 - object-inspect: ^1.11.0 - object-keys: ^1.1.1 - object.assign: ^4.1.2 - string.prototype.trimend: ^1.0.4 - string.prototype.trimstart: ^1.0.4 - unbox-primitive: ^1.0.1 - checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949 - languageName: node - linkType: hard - -"es-abstract@npm:^1.19.5": - version: 1.20.1 - resolution: "es-abstract@npm:1.20.1" - dependencies: - call-bind: ^1.0.2 - es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 - function.prototype.name: ^1.1.5 - get-intrinsic: ^1.1.1 - get-symbol-description: ^1.0.0 - has: ^1.0.3 - has-property-descriptors: ^1.0.0 - has-symbols: ^1.0.3 - internal-slot: ^1.0.3 - is-callable: ^1.2.4 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-weakref: ^1.0.2 - object-inspect: ^1.12.0 - object-keys: ^1.1.1 - object.assign: ^4.1.2 - regexp.prototype.flags: ^1.4.3 - string.prototype.trimend: ^1.0.5 - string.prototype.trimstart: ^1.0.5 - unbox-primitive: ^1.0.2 - checksum: 28da27ae0ed9c76df7ee8ef5c278df79dcfdb554415faf7068bb7c58f8ba8e2a16bfb59e586844be6429ab4c302ca7748979d48442224cb1140b051866d74b7f - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.22.4": +"es-abstract@npm:^1.17.2, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.22.4": version: 1.23.0 resolution: "es-abstract@npm:1.23.0" dependencies: @@ -14966,16 +12996,7 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": - version: 1.0.0 - resolution: "es-shim-unscopables@npm:1.0.0" - dependencies: - has: ^1.0.3 - checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.0.2": +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -14995,14 +13016,15 @@ __metadata: languageName: node linkType: hard -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50": - version: 0.10.53 - resolution: "es5-ext@npm:0.10.53" +"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50, es5-ext@npm:^0.10.62, es5-ext@npm:^0.10.64, es5-ext@npm:~0.10.14": + version: 0.10.64 + resolution: "es5-ext@npm:0.10.64" dependencies: - es6-iterator: ~2.0.3 - es6-symbol: ~3.1.3 - next-tick: ~1.0.0 - checksum: 24ec22369260cf98605cb2f51eae9d7df5dc621bc5d3b311f6f5c3d0fcdb7bafae888270f3083ee6e9af27350a5ea49f1fe2dd6406a9017247ca40f091f529b2 + es6-iterator: ^2.0.3 + es6-symbol: ^3.1.3 + esniff: ^2.0.1 + next-tick: ^1.1.0 + checksum: 01179fab0769fdbef213062222f99d0346724dbaccf04b87c0e6ee7f0c97edabf14be647ca1321f0497425ea7145de0fd278d1b3f3478864b8933e7136a5c645 languageName: node linkType: hard @@ -15013,7 +13035,7 @@ __metadata: languageName: node linkType: hard -"es6-iterator@npm:~2.0.3": +"es6-iterator@npm:^2.0.3": version: 2.0.3 resolution: "es6-iterator@npm:2.0.3" dependencies: @@ -15040,323 +13062,200 @@ __metadata: languageName: node linkType: hard -"es6-symbol@npm:^3.1.1, es6-symbol@npm:~3.1.3": - version: 3.1.3 - resolution: "es6-symbol@npm:3.1.3" +"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": + version: 3.1.4 + resolution: "es6-symbol@npm:3.1.4" dependencies: - d: ^1.0.1 - ext: ^1.1.2 - checksum: cd49722c2a70f011eb02143ef1c8c70658d2660dead6641e160b94619f408b9cf66425515787ffe338affdf0285ad54f4eae30ea5bd510e33f8659ec53bcaa70 + d: ^1.0.2 + ext: ^1.7.0 + checksum: 52125ec4b5d1b6b93b8d3d42830bb19f8da21080ffcf45253b614bc6ff3e31349be202fb745d4d1af6778cdf5e38fea30e0c7e7dc37e2aecd44acc43502055f9 languageName: node linkType: hard -"esbuild-android-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-android-64@npm:0.14.38" +"esbuild-android-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-android-64@npm:0.14.54" conditions: os=android & cpu=x64 languageName: node linkType: hard -"esbuild-android-arm64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-android-arm64@npm:0.14.11" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-android-arm64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-android-arm64@npm:0.14.38" +"esbuild-android-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-android-arm64@npm:0.14.54" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"esbuild-darwin-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-darwin-64@npm:0.14.11" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"esbuild-darwin-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-darwin-64@npm:0.14.38" +"esbuild-darwin-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-darwin-64@npm:0.14.54" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"esbuild-darwin-arm64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-darwin-arm64@npm:0.14.11" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-darwin-arm64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-darwin-arm64@npm:0.14.38" +"esbuild-darwin-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-darwin-arm64@npm:0.14.54" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"esbuild-freebsd-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-freebsd-64@npm:0.14.11" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"esbuild-freebsd-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-freebsd-64@npm:0.14.38" +"esbuild-freebsd-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-freebsd-64@npm:0.14.54" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"esbuild-freebsd-arm64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-freebsd-arm64@npm:0.14.11" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-freebsd-arm64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-freebsd-arm64@npm:0.14.38" +"esbuild-freebsd-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-freebsd-arm64@npm:0.14.54" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"esbuild-linux-32@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-32@npm:0.14.11" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"esbuild-linux-32@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-32@npm:0.14.38" +"esbuild-linux-32@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-32@npm:0.14.54" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"esbuild-linux-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-64@npm:0.14.11" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"esbuild-linux-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-64@npm:0.14.38" +"esbuild-linux-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-64@npm:0.14.54" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"esbuild-linux-arm64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-arm64@npm:0.14.11" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-linux-arm64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-arm64@npm:0.14.38" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-linux-arm@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-arm@npm:0.14.11" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"esbuild-linux-arm@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-arm@npm:0.14.38" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"esbuild-linux-mips64le@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-mips64le@npm:0.14.11" - conditions: os=linux & cpu=mips64el +"esbuild-linux-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-arm64@npm:0.14.54" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"esbuild-linux-mips64le@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-mips64le@npm:0.14.38" - conditions: os=linux & cpu=mips64el +"esbuild-linux-arm@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-arm@npm:0.14.54" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"esbuild-linux-ppc64le@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-ppc64le@npm:0.14.11" - conditions: os=linux & cpu=ppc64 +"esbuild-linux-mips64le@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-mips64le@npm:0.14.54" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"esbuild-linux-ppc64le@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-ppc64le@npm:0.14.38" +"esbuild-linux-ppc64le@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-ppc64le@npm:0.14.54" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"esbuild-linux-riscv64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-riscv64@npm:0.14.38" +"esbuild-linux-riscv64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-riscv64@npm:0.14.54" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"esbuild-linux-s390x@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-linux-s390x@npm:0.14.11" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"esbuild-linux-s390x@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-linux-s390x@npm:0.14.38" +"esbuild-linux-s390x@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-linux-s390x@npm:0.14.54" conditions: os=linux & cpu=s390x languageName: node linkType: hard "esbuild-loader@npm:^2.8.0": - version: 2.18.0 - resolution: "esbuild-loader@npm:2.18.0" + version: 2.21.0 + resolution: "esbuild-loader@npm:2.21.0" dependencies: - esbuild: ^0.14.6 + esbuild: ^0.16.17 joycon: ^3.0.1 json5: ^2.2.0 loader-utils: ^2.0.0 tapable: ^2.2.0 - webpack-sources: ^2.2.0 + webpack-sources: ^1.4.3 peerDependencies: webpack: ^4.40.0 || ^5.0.0 - checksum: 744b9f8c8fadece3feb3eb50d4dcacafd9e528be0f4c345188ba9f549a6384bd34e3fba66d22df25ec240bb7edbff4da2787d621299f134255f22c868196d091 - languageName: node - linkType: hard - -"esbuild-netbsd-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-netbsd-64@npm:0.14.11" - conditions: os=netbsd & cpu=x64 + checksum: a0456ed7794e2c220a6068e92d739bc19765bff352bf7e44442aa8127631cc517ecd02a3ee969e31fa6b6a91befeac928296488c95e3818a776cd3b11d46348c languageName: node linkType: hard -"esbuild-netbsd-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-netbsd-64@npm:0.14.38" +"esbuild-netbsd-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-netbsd-64@npm:0.14.54" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"esbuild-openbsd-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-openbsd-64@npm:0.14.11" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"esbuild-openbsd-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-openbsd-64@npm:0.14.38" +"esbuild-openbsd-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-openbsd-64@npm:0.14.54" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"esbuild-sunos-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-sunos-64@npm:0.14.11" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"esbuild-sunos-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-sunos-64@npm:0.14.38" +"esbuild-sunos-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-sunos-64@npm:0.14.54" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"esbuild-windows-32@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-windows-32@npm:0.14.11" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"esbuild-windows-32@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-windows-32@npm:0.14.38" +"esbuild-windows-32@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-windows-32@npm:0.14.54" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"esbuild-windows-64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-windows-64@npm:0.14.11" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"esbuild-windows-64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-windows-64@npm:0.14.38" +"esbuild-windows-64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-windows-64@npm:0.14.54" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"esbuild-windows-arm64@npm:0.14.11": - version: 0.14.11 - resolution: "esbuild-windows-arm64@npm:0.14.11" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"esbuild-windows-arm64@npm:0.14.38": - version: 0.14.38 - resolution: "esbuild-windows-arm64@npm:0.14.38" +"esbuild-windows-arm64@npm:0.14.54": + version: 0.14.54 + resolution: "esbuild-windows-arm64@npm:0.14.54" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard "esbuild@npm:^0.14.23": - version: 0.14.38 - resolution: "esbuild@npm:0.14.38" - dependencies: - esbuild-android-64: 0.14.38 - esbuild-android-arm64: 0.14.38 - esbuild-darwin-64: 0.14.38 - esbuild-darwin-arm64: 0.14.38 - esbuild-freebsd-64: 0.14.38 - esbuild-freebsd-arm64: 0.14.38 - esbuild-linux-32: 0.14.38 - esbuild-linux-64: 0.14.38 - esbuild-linux-arm: 0.14.38 - esbuild-linux-arm64: 0.14.38 - esbuild-linux-mips64le: 0.14.38 - esbuild-linux-ppc64le: 0.14.38 - esbuild-linux-riscv64: 0.14.38 - esbuild-linux-s390x: 0.14.38 - esbuild-netbsd-64: 0.14.38 - esbuild-openbsd-64: 0.14.38 - esbuild-sunos-64: 0.14.38 - esbuild-windows-32: 0.14.38 - esbuild-windows-64: 0.14.38 - esbuild-windows-arm64: 0.14.38 + version: 0.14.54 + resolution: "esbuild@npm:0.14.54" + dependencies: + "@esbuild/linux-loong64": 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 dependenciesMeta: + "@esbuild/linux-loong64": + optional: true esbuild-android-64: optional: true esbuild-android-arm64: @@ -15399,86 +13298,91 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: d7523a36bd28016c010829c527386dbc0c6b9f514920abf5ac8003f346665161aa61026fd6822c5091fc1c1af52fe26c9281a81740fc06f2994cdbb7c2880297 - languageName: node - linkType: hard - -"esbuild@npm:^0.14.6": - version: 0.14.11 - resolution: "esbuild@npm:0.14.11" - dependencies: - esbuild-android-arm64: 0.14.11 - esbuild-darwin-64: 0.14.11 - esbuild-darwin-arm64: 0.14.11 - esbuild-freebsd-64: 0.14.11 - esbuild-freebsd-arm64: 0.14.11 - esbuild-linux-32: 0.14.11 - esbuild-linux-64: 0.14.11 - esbuild-linux-arm: 0.14.11 - esbuild-linux-arm64: 0.14.11 - esbuild-linux-mips64le: 0.14.11 - esbuild-linux-ppc64le: 0.14.11 - esbuild-linux-s390x: 0.14.11 - esbuild-netbsd-64: 0.14.11 - esbuild-openbsd-64: 0.14.11 - esbuild-sunos-64: 0.14.11 - esbuild-windows-32: 0.14.11 - esbuild-windows-64: 0.14.11 - esbuild-windows-arm64: 0.14.11 + checksum: 49e360b1185c797f5ca3a7f5f0a75121494d97ddf691f65ed1796e6257d318f928342a97f559bb8eced6a90cf604dd22db4a30e0dbbf15edd9dbf22459b639af + languageName: node + linkType: hard + +"esbuild@npm:^0.16.17": + version: 0.16.17 + resolution: "esbuild@npm:0.16.17" + dependencies: + "@esbuild/android-arm": 0.16.17 + "@esbuild/android-arm64": 0.16.17 + "@esbuild/android-x64": 0.16.17 + "@esbuild/darwin-arm64": 0.16.17 + "@esbuild/darwin-x64": 0.16.17 + "@esbuild/freebsd-arm64": 0.16.17 + "@esbuild/freebsd-x64": 0.16.17 + "@esbuild/linux-arm": 0.16.17 + "@esbuild/linux-arm64": 0.16.17 + "@esbuild/linux-ia32": 0.16.17 + "@esbuild/linux-loong64": 0.16.17 + "@esbuild/linux-mips64el": 0.16.17 + "@esbuild/linux-ppc64": 0.16.17 + "@esbuild/linux-riscv64": 0.16.17 + "@esbuild/linux-s390x": 0.16.17 + "@esbuild/linux-x64": 0.16.17 + "@esbuild/netbsd-x64": 0.16.17 + "@esbuild/openbsd-x64": 0.16.17 + "@esbuild/sunos-x64": 0.16.17 + "@esbuild/win32-arm64": 0.16.17 + "@esbuild/win32-ia32": 0.16.17 + "@esbuild/win32-x64": 0.16.17 dependenciesMeta: - esbuild-android-arm64: + "@esbuild/android-arm": optional: true - esbuild-darwin-64: + "@esbuild/android-arm64": optional: true - esbuild-darwin-arm64: + "@esbuild/android-x64": optional: true - esbuild-freebsd-64: + "@esbuild/darwin-arm64": optional: true - esbuild-freebsd-arm64: + "@esbuild/darwin-x64": optional: true - esbuild-linux-32: + "@esbuild/freebsd-arm64": optional: true - esbuild-linux-64: + "@esbuild/freebsd-x64": optional: true - esbuild-linux-arm: + "@esbuild/linux-arm": optional: true - esbuild-linux-arm64: + "@esbuild/linux-arm64": optional: true - esbuild-linux-mips64le: + "@esbuild/linux-ia32": optional: true - esbuild-linux-ppc64le: + "@esbuild/linux-loong64": optional: true - esbuild-linux-s390x: + "@esbuild/linux-mips64el": optional: true - esbuild-netbsd-64: + "@esbuild/linux-ppc64": optional: true - esbuild-openbsd-64: + "@esbuild/linux-riscv64": optional: true - esbuild-sunos-64: + "@esbuild/linux-s390x": optional: true - esbuild-windows-32: + "@esbuild/linux-x64": optional: true - esbuild-windows-64: + "@esbuild/netbsd-x64": optional: true - esbuild-windows-arm64: + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": optional: true bin: esbuild: bin/esbuild - checksum: dd034f76fa180ae947a458d84cd3ad4989f1630bc55f092f35d562c18480e56ed0ede99752ffc13d341434ff09063110c765243a4d46244ea2422f2683dbd822 + checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c languageName: node linkType: hard "escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 - languageName: node - linkType: hard - -"escape-goat@npm:^2.0.0": - version: 2.1.1 - resolution: "escape-goat@npm:2.1.1" - checksum: ce05c70c20dd7007b60d2d644b625da5412325fdb57acf671ba06cb2ab3cd6789e2087026921a05b665b0a03fadee2955e7fc0b9a67da15a6551a980b260eba7 + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 languageName: node linkType: hard @@ -15765,7 +13669,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^5.0.0": +"eslint-scope@npm:^5.0.0, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -15903,6 +13807,18 @@ __metadata: languageName: node linkType: hard +"esniff@npm:^2.0.1": + version: 2.0.1 + resolution: "esniff@npm:2.0.1" + dependencies: + d: ^1.0.1 + es5-ext: ^0.10.62 + event-emitter: ^0.3.5 + type: ^2.7.2 + checksum: d814c0e5c39bce9925b2e65b6d8767af72c9b54f35a65f9f3d6e8c606dce9aebe35a9599d30f15b0807743f88689f445163cfb577a425de4fb8c3c5bc16710cc + languageName: node + linkType: hard + "espree@npm:^6.1.2": version: 6.2.1 resolution: "espree@npm:6.2.1" @@ -15935,16 +13851,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.0.1": - version: 1.4.0 - resolution: "esquery@npm:1.4.0" - dependencies: - estraverse: ^5.1.0 - checksum: a0807e17abd7fbe5fbd4fab673038d6d8a50675cdae6b04fbaa520c34581be0c5fa24582990e8acd8854f671dd291c78bb2efb9e0ed5b62f33bac4f9cf820210 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": +"esquery@npm:^1.0.1, esquery@npm:^1.4.2": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -15997,6 +13904,16 @@ __metadata: languageName: node linkType: hard +"event-emitter@npm:^0.3.5": + version: 0.3.5 + resolution: "event-emitter@npm:0.3.5" + dependencies: + d: 1 + es5-ext: ~0.10.14 + checksum: 27c1399557d9cd7e0aa0b366c37c38a4c17293e3a10258e8b692a847dd5ba9fb90429c3a5a1eeff96f31f6fa03ccbd31d8ad15e00540b22b22f01557be706030 + languageName: node + linkType: hard + "event-target-shim@npm:6.0.2": version: 6.0.2 resolution: "event-target-shim@npm:6.0.2" @@ -16012,9 +13929,9 @@ __metadata: linkType: hard "eventemitter2@npm:^6.4.3": - version: 6.4.5 - resolution: "eventemitter2@npm:6.4.5" - checksum: 84504f9cf0cc30205cdd46783fe9df3733435e5097f13070b678023110b5ef07847651808ae280cd94c42cd5976880211c7a40321a8ff8fa56f7c5f9c5c11960 + version: 6.4.9 + resolution: "eventemitter2@npm:6.4.9" + checksum: be59577c1e1c35509c7ba0e2624335c35bbcfd9485b8a977384c6cc6759341ea1a98d3cb9dbaa5cea4fff9b687e504504e3f9c2cc1674cf3bd8a43a7c74ea3eb languageName: node linkType: hard @@ -16046,6 +13963,13 @@ __metadata: languageName: node linkType: hard +"eventsource@npm:^2.0.2": + version: 2.0.2 + resolution: "eventsource@npm:2.0.2" + checksum: c0072d972753e10c705d9b2285b559184bf29d011bc208973dde9c8b6b8b7b6fdad4ef0846cecb249f7b1585e860fdf324cbd2ac854a76bc53649e797496e99a + languageName: node + linkType: hard + "evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": version: 1.0.3 resolution: "evp_bytestokey@npm:1.0.3" @@ -16147,13 +14071,6 @@ __metadata: languageName: node linkType: hard -"exit-on-epipe@npm:~1.0.1": - version: 1.0.1 - resolution: "exit-on-epipe@npm:1.0.1" - checksum: e8ab4940416d19f311b3c9226e3725c6c4c6026fe682266ecc0ff33a455d585fe3e4ee757857c7bf1d0491b478cb232b8e395dfb438e65ac87317eda47304c32 - languageName: node - linkType: hard - "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -16185,7 +14102,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.7.0": +"expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -16198,6 +14115,13 @@ __metadata: languageName: node linkType: hard +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + "express-serve-static-core@npm:0.1.1": version: 0.1.1 resolution: "express-serve-static-core@npm:0.1.1" @@ -16206,18 +14130,18 @@ __metadata: linkType: hard "express-session@npm:^1.17.0": - version: 1.17.2 - resolution: "express-session@npm:1.17.2" + version: 1.18.0 + resolution: "express-session@npm:1.18.0" dependencies: - cookie: 0.4.1 - cookie-signature: 1.0.6 + cookie: 0.6.0 + cookie-signature: 1.0.7 debug: 2.6.9 depd: ~2.0.0 on-headers: ~1.0.2 parseurl: ~1.3.3 safe-buffer: 5.2.1 uid-safe: ~2.1.5 - checksum: 9e05cff29865c039f2b3a623325a66707a6229598a33f6e6f082c1581b0afa0bf9196d93c70445883e610138a36698842ff9ddeccdafc9c3ef65ff2a6e237d83 + checksum: 56e52e4f5e09f77b201069f5f977e8c301d1feb324ac545f043e251745bb17ab0b05c6d7b3653f20ae548179afd76eeda9f44c9872ac9ce82d7c2a917a88d885 languageName: node linkType: hard @@ -16259,12 +14183,12 @@ __metadata: languageName: node linkType: hard -"ext@npm:^1.1.2": - version: 1.6.0 - resolution: "ext@npm:1.6.0" +"ext@npm:^1.7.0": + version: 1.7.0 + resolution: "ext@npm:1.7.0" dependencies: - type: ^2.5.0 - checksum: ca3ef4619e838f441a92238a98b77ac873da2175ace746c64303ffe2c3208e79a3acf3bf7004e40b720f3c2a83bf0143e6dd4a7cdfae6e73f54a3bfc7a14b5c2 + type: ^2.7.2 + checksum: ef481f9ef45434d8c867cfd09d0393b60945b7c8a1798bedc4514cb35aac342ccb8d8ecb66a513e6a2b4ec1e294a338e3124c49b29736f8e7c735721af352c31 languageName: node linkType: hard @@ -16381,9 +14305,9 @@ __metadata: linkType: hard "fast-diff@npm:^1.1.2": - version: 1.2.0 - resolution: "fast-diff@npm:1.2.0" - checksum: 1b5306eaa9e826564d9e5ffcd6ebd881eb5f770b3f977fcbf38f05c824e42172b53c79920e8429c54eb742ce15a0caf268b0fdd5b38f6de52234c4a8368131ae + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 languageName: node linkType: hard @@ -16401,16 +14325,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9": - version: 3.2.11 - resolution: "fast-glob@npm:3.2.11" +"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" 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 - checksum: f473105324a7780a20c06de842e15ddbb41d3cb7e71d1e4fe6e8373204f22245d54f5ab9e2061e6a1c613047345954d29b022e0e76f5c28b1df9858179a0e6d7 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard @@ -16428,41 +14352,34 @@ __metadata: languageName: node linkType: hard -"fast-memoize@npm:^2.5.1": - version: 2.5.2 - resolution: "fast-memoize@npm:2.5.2" - checksum: 79fa759719ba4eac7e8c22fb3b0eb3f18f4a31e218c00b1eb4a5b53c5781921133a6b84472d59ec5a6ea8f26ad57b43cd99a350c0547ccce51489bc9a5f0b28d - languageName: node - linkType: hard - "fast-text-encoding@npm:^1.0.3": - version: 1.0.3 - resolution: "fast-text-encoding@npm:1.0.3" - checksum: 3e51365896f06d0dcab128092d095a0037d274deec419fecbd2388bc236d7b387610e0c72f920c6126e00c885ab096fbfaa3645712f5b98f721bef6b064916a8 + version: 1.0.6 + resolution: "fast-text-encoding@npm:1.0.6" + checksum: 9d58f694314b3283e785bf61954902536da228607ad246905e30256f9ab8331f780ac987e7222c9f5eafd04168d07e12b8054c85cedb76a2c05af0e82387a903 languageName: node linkType: hard -"fast-xml-parser@npm:^3.19.0": - version: 3.21.1 - resolution: "fast-xml-parser@npm:3.21.1" +"fast-xml-parser@npm:^4.2.5": + version: 4.3.5 + resolution: "fast-xml-parser@npm:4.3.5" dependencies: - strnum: ^1.0.4 + strnum: ^1.0.5 bin: - xml2js: cli.js - checksum: 73b9c907a424cc2f9b11a8a2f1b7448d936f1db6fa574b85cbe4be9739c2f77d99a827bb27d738a0db0047b20c71a5d663f64937fbdb9c38977fc6cd145221d2 + fxparser: src/cli/cli.js + checksum: 852064985ca56aa2078be02c92509a675408b57bb9862f696689301bf7df786f9ce9116b812b032c627979a4de5755f9cbfeecc4b90ed9d56be76deccd97c0c6 languageName: node linkType: hard "fastq@npm:^1.6.0": - version: 1.13.0 - resolution: "fastq@npm:1.13.0" + version: 1.17.1 + resolution: "fastq@npm:1.17.1" dependencies: reusify: ^1.0.4 - checksum: 32cf15c29afe622af187d12fc9cd93e160a0cb7c31a3bb6ace86b7dea3b28e7b72acde89c882663f307b2184e14782c6c664fa315973c03626c7d4bff070bb0b + checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 languageName: node linkType: hard -"faye-websocket@npm:^0.11.3, faye-websocket@npm:~0.11.1": +"faye-websocket@npm:^0.11.3, faye-websocket@npm:^0.11.4, faye-websocket@npm:~0.11.1": version: 0.11.4 resolution: "faye-websocket@npm:0.11.4" dependencies: @@ -16472,11 +14389,26 @@ __metadata: linkType: hard "fb-watchman@npm:^2.0.0": - version: 2.0.1 - resolution: "fb-watchman@npm:2.0.1" + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" dependencies: bser: 2.1.1 - checksum: 8510230778ab3a51c27dffb1b76ef2c24fab672a42742d3c0a45c2e9d1e5f20210b1fbca33486088da4a9a3958bde96b5aec0a63aac9894b4e9df65c88b2cbd6 + checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 + languageName: node + linkType: hard + +"fbjs@npm:^0.8.0": + version: 0.8.18 + resolution: "fbjs@npm:0.8.18" + dependencies: + core-js: ^1.0.0 + isomorphic-fetch: ^2.1.1 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^0.7.30 + checksum: 668731b946a765908c9cbe51d5160f973abb78004b3d122587c3e930e3e1ddcc0ce2b17f2a8637dc9d733e149aa580f8d3035a35cc2d3bc78b78f1b19aab90e2 languageName: node linkType: hard @@ -16551,12 +14483,12 @@ __metadata: languageName: node linkType: hard -"filelist@npm:^1.0.1": - version: 1.0.2 - resolution: "filelist@npm:1.0.2" +"filelist@npm:^1.0.4": + version: 1.0.4 + resolution: "filelist@npm:1.0.4" dependencies: - minimatch: ^3.0.4 - checksum: 4d6953cb6f76c5345a52fc50222949e244946f485462ab6bae977176fff64fe5200cc1f44db175c27fc887f91cead401504c22eefcdcc064012ee44759947561 + minimatch: ^5.0.1 + checksum: a303573b0821e17f2d5e9783688ab6fbfce5d52aaac842790ae85e704a6f5e4e3538660a63183d6453834dedf1e0f19a9dadcebfa3e926c72397694ea11f5160 languageName: node linkType: hard @@ -16782,12 +14714,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0": - version: 1.14.7 - resolution: "follow-redirects@npm:1.14.7" + version: 1.15.5 + resolution: "follow-redirects@npm:1.15.5" peerDependenciesMeta: debug: optional: true - checksum: f6d03e5e30877431065bca0d1b2e3db93949eb799d368a5c07ea8a4b71205f0349a3f8f0191bf13a07c93885522834dca1dc8e527dc99a772c6911fba24edc5f + checksum: 5ca49b5ce6f44338cbfc3546823357e7a70813cecc9b7b768158a1d32c1e62e7407c944402a918ea8c38ae2e78266312d617dc68783fac502cbb55e1047b34ec languageName: node linkType: hard @@ -16823,6 +14755,16 @@ __metadata: languageName: node linkType: hard +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + "forever-agent@npm:~0.6.1": version: 0.6.1 resolution: "forever-agent@npm:0.6.1" @@ -16846,17 +14788,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:*, form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c - languageName: node - linkType: hard - "form-data@npm:^2.3.2, form-data@npm:^2.3.3, form-data@npm:^2.5.0": version: 2.5.1 resolution: "form-data@npm:2.5.1" @@ -16879,6 +14810,17 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + languageName: node + linkType: hard + "form-data@npm:~2.3.2": version: 2.3.3 resolution: "form-data@npm:2.3.3" @@ -16911,13 +14853,6 @@ __metadata: languageName: node linkType: hard -"format-message-estree-util@npm:^6.1.0": - version: 6.1.0 - resolution: "format-message-estree-util@npm:6.1.0" - checksum: a922a439e5912f3c3d291626c7e938fa2f6a74a02c68e44b68142d3c0c871f4e09bc86b801690264400bc940ef3879a7eb633b48d56834a26076ddc5fb1b02e4 - languageName: node - linkType: hard - "format-message-estree-util@npm:^6.2.4": version: 6.2.4 resolution: "format-message-estree-util@npm:6.2.4" @@ -16932,18 +14867,7 @@ __metadata: languageName: node linkType: hard -"format-message-generate-id@npm:^6.2.3": - version: 6.2.3 - resolution: "format-message-generate-id@npm:6.2.3" - dependencies: - crc32: ^0.2.2 - format-message-parse: ^6.2.3 - format-message-print: ^6.2.3 - checksum: 88e1910bae2ccdb30a55bcc3751d4a140ae50275712f756e8d041fe35c79aba96e0d22572c47f972bfeab436e8afdb7c0c58074efd62eb14510e5e4a242226b1 - languageName: node - linkType: hard - -"format-message-generate-id@npm:^6.2.4": +"format-message-generate-id@npm:^6.2.3, format-message-generate-id@npm:^6.2.4": version: 6.2.4 resolution: "format-message-generate-id@npm:6.2.4" dependencies: @@ -16964,13 +14888,6 @@ __metadata: languageName: node linkType: hard -"format-message-parse@npm:^6.2.3": - version: 6.2.3 - resolution: "format-message-parse@npm:6.2.3" - checksum: f667791bfa90ebb4dfc3f8cca6022af18190d597433c1ac89927d3593791d03f12f43238a83ecacd0c5a2c31d28e2865d5b42a789ac0aefb3bdabbb37be8a72f - languageName: node - linkType: hard - "format-message-parse@npm:^6.2.4": version: 6.2.4 resolution: "format-message-parse@npm:6.2.4" @@ -16978,13 +14895,6 @@ __metadata: languageName: node linkType: hard -"format-message-print@npm:^6.2.3": - version: 6.2.3 - resolution: "format-message-print@npm:6.2.3" - checksum: 79277afd339867993e5adb497409aac6ff1061186e8fdf5bebbc1869bace1e178db6ee01f356746b419ddf871dde85eb94de884b25d78557d3ab40de11c2f5a3 - languageName: node - linkType: hard - "format-message-print@npm:^6.2.4": version: 6.2.4 resolution: "format-message-print@npm:6.2.4" @@ -17062,18 +14972,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.0.0": - version: 10.0.0 - resolution: "fs-extra@npm:10.0.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: 5285a3d8f34b917cf2b66af8c231a40c1623626e9d701a20051d3337be16c6d7cac94441c8b3732d47a92a2a027886ca93c69b6a4ae6aee3c89650d2a8880c0a - languageName: node - linkType: hard - -"fs-extra@npm:^10.1.0": +"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" dependencies: @@ -17161,6 +15060,15 @@ __metadata: languageName: node linkType: hard +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + "fs-readdir-recursive@npm:^1.1.0": version: 1.1.0 resolution: "fs-readdir-recursive@npm:1.1.0" @@ -17199,11 +15107,11 @@ __metadata: linkType: hard "fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard @@ -17219,21 +15127,14 @@ __metadata: linkType: hard "fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" dependencies: node-gyp: latest conditions: os=darwin languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a - languageName: node - linkType: hard - "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -17241,19 +15142,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.6": +"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": version: 1.1.6 resolution: "function.prototype.name@npm:1.1.6" dependencies: @@ -17272,7 +15161,7 @@ __metadata: languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -17280,9 +15169,9 @@ __metadata: linkType: hard "fuse.js@npm:^6.4.0": - version: 6.5.3 - resolution: "fuse.js@npm:6.5.3" - checksum: f7c14f4422000e7f7e3515c66f7cefdfc38adec4cf380097f4146a201ea438af60b67dc5849b3c0de0115ce3f9bc5afad6fc6570c08dcfcef5bf6e95eb8e6d6f + version: 6.6.2 + resolution: "fuse.js@npm:6.6.2" + checksum: 17ae758ce205276ebd88bd9c9f088a100be0b4896abac9f6b09847151269d1690f41d7f98ff5813d4a58973162dbd99d0072ce807020fee6f9de60170f6b08eb languageName: node linkType: hard @@ -17303,20 +15192,19 @@ __metadata: languageName: node linkType: hard -"gauge@npm:^4.0.0": - version: 4.0.0 - resolution: "gauge@npm:4.0.0" +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" dependencies: - ansi-regex: ^5.0.1 aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.2 - console-control-strings: ^1.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 has-unicode: ^2.0.1 - signal-exit: ^3.0.0 + signal-exit: ^3.0.7 string-width: ^4.2.3 strip-ansi: ^6.0.1 - wide-align: ^1.1.2 - checksum: 637b34c84f518defa89319dbef68211a24e9302182ad2a619e3be1be5b7dcf2a962c8359e889294af667440f4722e7e6e61671859e00bd8ec280a136ded89b25 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d languageName: node linkType: hard @@ -17341,18 +15229,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": - version: 1.1.1 - resolution: "get-intrinsic@npm:1.1.1" - dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 - has-symbols: ^1.0.1 - checksum: a9fe2ca8fa3f07f9b0d30fb202bcd01f3d9b9b6b732452e79c48e79f7d6d8d003af3f9e38514250e3553fdc83c61650851cb6870832ac89deaaceb08e3721a17 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" dependencies: @@ -17446,7 +15323,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^4.0.0, get-stream@npm:^4.1.0": +"get-stream@npm:^4.0.0": version: 4.1.0 resolution: "get-stream@npm:4.1.0" dependencies: @@ -17478,16 +15355,6 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 - languageName: node - linkType: hard - "get-symbol-description@npm:^1.0.2": version: 1.0.2 resolution: "get-symbol-description@npm:1.0.2" @@ -17543,7 +15410,17 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^3.1.0, glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": +"glob-parent@npm:^3.1.0": + version: 3.1.0 + resolution: "glob-parent@npm:3.1.0" + dependencies: + is-glob: ^3.1.0 + path-dirname: ^1.0.0 + checksum: 653d559237e89a11b9934bef3f392ec42335602034c928590544d383ff5ef449f7b12f3cfa539708e74bc0a6c28ab1fe51d663cc07463cdf899ba92afd85a855 + languageName: node + linkType: hard + +"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: @@ -17582,6 +15459,21 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.5 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + languageName: node + linkType: hard + "glob@npm:^5.0.15": version: 5.0.15 resolution: "glob@npm:5.0.15" @@ -17595,21 +15487,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.0.5, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": - version: 7.2.0 - resolution: "glob@npm:7.2.0" - 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 - checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134 - languageName: node - linkType: hard - -"glob@npm:^7.2.0": +"glob@npm:^7.0.0, glob@npm:^7.0.3, glob@npm:^7.0.5, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -17638,11 +15516,11 @@ __metadata: linkType: hard "global-dirs@npm:^3.0.0": - version: 3.0.0 - resolution: "global-dirs@npm:3.0.0" + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" dependencies: ini: 2.0.0 - checksum: 953c17cf14bf6ee0e2100ae82a0d779934eed8a3ec5c94a7a4f37c5b3b592c31ea015fb9a15cf32484de13c79f4a814f3015152f3e1d65976cfbe47c1bfe4a88 + checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 languageName: node linkType: hard @@ -17724,16 +15602,7 @@ __metadata: languageName: node linkType: hard -"globalthis@npm:^1.0.1": - version: 1.0.2 - resolution: "globalthis@npm:1.0.2" - dependencies: - define-properties: ^1.1.3 - checksum: 5a5f3c7ab94708260a98106b35946b74bb57f6b2013e39668dc9e8770b80a3418103b63a2b4aa01c31af15fdf6a2940398ffc0a408573c34c2304f928895adff - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": +"globalthis@npm:^1.0.1, globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" dependencies: @@ -17743,16 +15612,16 @@ __metadata: linkType: hard "globby@npm:*": - version: 12.2.0 - resolution: "globby@npm:12.2.0" + version: 14.0.1 + resolution: "globby@npm:14.0.1" dependencies: - array-union: ^3.0.1 - dir-glob: ^3.0.1 - fast-glob: ^3.2.7 - ignore: ^5.1.9 - merge2: ^1.4.1 - slash: ^4.0.0 - checksum: 2539379a7fff3473d3e7c68b4540ba38f36970f43f760e36e301515d5cb98a0c5736554957d90390906bee632327beb2f9518d1acd6911f61e436db11b0da5b5 + "@sindresorhus/merge-streams": ^2.1.0 + fast-glob: ^3.3.2 + ignore: ^5.2.4 + path-type: ^5.0.0 + slash: ^5.1.0 + unicorn-magic: ^0.1.0 + checksum: 33568444289afb1135ad62d52d5e8412900cec620e3b6ece533afa46d004066f14b97052b643833d7cf4ee03e7fac571430130cde44c333df91a45d313105170 languageName: node linkType: hard @@ -17892,43 +15761,17 @@ __metadata: lowercase-keys: ^1.0.0 mimic-response: ^1.0.0 p-cancelable: ^0.4.0 - p-timeout: ^2.0.1 - pify: ^3.0.0 - safe-buffer: ^5.1.1 - timed-out: ^4.0.1 - url-parse-lax: ^3.0.0 - url-to-options: ^1.0.1 - checksum: ab05bfcb6de86dc0c3fba8d25cc51cb2b09851ff3f6f899c86cde8c63b30269f8823d69dbbc6d03f7c58bb069f55a3c5f60aba74aad6721938652d8f35fd3165 - languageName: node - linkType: hard - -"got@npm:^9.6.0": - version: 9.6.0 - resolution: "got@npm:9.6.0" - 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 + p-timeout: ^2.0.1 + pify: ^3.0.0 + safe-buffer: ^5.1.1 + timed-out: ^4.0.1 url-parse-lax: ^3.0.0 - checksum: 941807bd9704bacf5eb401f0cc1212ffa1f67c6642f2d028fd75900471c221b1da2b8527f4553d2558f3faeda62ea1cf31665f8b002c6137f5de8732f07370b0 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.4, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": - version: 4.2.9 - resolution: "graceful-fs@npm:4.2.9" - checksum: 68ea4e07ff2c041ada184f9278b830375f8e0b75154e3f080af6b70f66172fabb4108d19b3863a96b53fc068a310b9b6493d86d1291acc5f3861eb4b79d26ad6 + url-to-options: ^1.0.1 + checksum: ab05bfcb6de86dc0c3fba8d25cc51cb2b09851ff3f6f899c86cde8c63b30269f8823d69dbbc6d03f7c58bb069f55a3c5f60aba74aad6721938652d8f35fd3165 languageName: node linkType: hard -"graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.4, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -18049,14 +15892,7 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.1": - version: 1.0.1 - resolution: "has-bigints@npm:1.0.1" - checksum: 44ab55868174470065d2e0f8f6def1c990d12b82162a8803c679699fa8a39f966e336f2a33c185092fe8aea7e8bf2e85f1c26add5f29d98f2318bd270096b183 - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.2": +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b @@ -18084,16 +15920,7 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" - dependencies: - get-intrinsic: ^1.1.1 - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.1, has-property-descriptors@npm:^1.0.2": +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": version: 1.0.2 resolution: "has-property-descriptors@npm:1.0.2" dependencies: @@ -18116,14 +15943,7 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2": - version: 1.0.2 - resolution: "has-symbols@npm:1.0.2" - checksum: 2309c426071731be792b5be43b3da6fb4ed7cbe8a9a6bcfca1862587709f01b33d575ce8f5c264c1eaad09fca2f9a8208c0a2be156232629daa2dd0c0740976b - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 @@ -18139,16 +15959,7 @@ __metadata: languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-tostringtag@npm:1.0.0" - dependencies: - has-symbols: ^1.0.2 - checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -18203,19 +16014,10 @@ __metadata: languageName: node linkType: hard -"has-yarn@npm:^2.1.0": - version: 2.1.0 - resolution: "has-yarn@npm:2.1.0" - checksum: 5eb1d0bb8518103d7da24532bdbc7124ffc6d367b5d3c10840b508116f2f1bcbcf10fd3ba843ff6e2e991bdf9969fd862d42b2ed58aade88343326c950b7e7f7 - languageName: node - linkType: hard - -"has@npm:^1.0.0, has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 +"has@npm:^1.0.0": + version: 1.0.4 + resolution: "has@npm:1.0.4" + checksum: 8a11ba062e0627c9578a1d08285401e39f1d071a9692ddf793199070edb5648b21c774dd733e2a181edd635bf6862731885f476f4ccf67c998d7a5ff7cef2550 languageName: node linkType: hard @@ -18230,6 +16032,16 @@ __metadata: languageName: node linkType: hard +"hash-base@npm:~3.0": + version: 3.0.4 + resolution: "hash-base@npm:3.0.4" + dependencies: + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + checksum: 878465a0dfcc33cce195c2804135352c590d6d10980adc91a9005fd377e77f2011256c2b7cfce472e3f2e92d561d1bf3228d2da06348a9017ce9a258b3b49764 + languageName: node + linkType: hard + "hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": version: 1.1.7 resolution: "hash.js@npm:1.1.7" @@ -18241,11 +16053,11 @@ __metadata: linkType: hard "hasown@npm:^2.0.0, hasown@npm:^2.0.1": - version: 2.0.1 - resolution: "hasown@npm:2.0.1" + version: 2.0.2 + resolution: "hasown@npm:2.0.2" dependencies: function-bind: ^1.1.2 - checksum: 9081c382a4fe8a62639a8da5c7d3322b203c319147e48783763dd741863d9f2dcaa743574fe2a1283871c445d8ba99ea45d5fff384e5ad27ca9dd7a367d79de0 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db languageName: node linkType: hard @@ -18377,7 +16189,7 @@ __metadata: languageName: node linkType: hard -"html-escaper@npm:^2.0.0": +"html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 @@ -18437,16 +16249,15 @@ __metadata: linkType: hard "html-to-react@npm:^1.3.4": - version: 1.4.7 - resolution: "html-to-react@npm:1.4.7" + version: 1.7.0 + resolution: "html-to-react@npm:1.7.0" dependencies: - domhandler: ^4.0 - htmlparser2: ^7.0 + domhandler: ^5.0 + htmlparser2: ^9.0 lodash.camelcase: ^4.3.0 - ramda: ^0.27.1 peerDependencies: - react: ^16.0 || ^17.0 - checksum: 1ff0aa8062844eeb5212dbad59573e7273aae676fc19a21a94b963e645d24d43858a6245de36ec28aabe50911e7ad42a2d653d3bbc3aef91645af3c906b238b7 + react: ^0.13.0 || ^0.14.0 || >=15 + checksum: 2366ba0f3eb05b4f83fc46ff5dad9813c28506ece8b70cccdaac202fef51675e110ca467ed78d29f347a41e0f89efb6d825db2db0715f00105b414e0120f4447 languageName: node linkType: hard @@ -18509,15 +16320,27 @@ __metadata: languageName: node linkType: hard -"htmlparser2@npm:^7.0": - version: 7.2.0 - resolution: "htmlparser2@npm:7.2.0" +"htmlparser2@npm:^8.0.0": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.2.2 - domutils: ^2.8.0 - entities: ^3.0.1 - checksum: 96563d9965729cfcb3f5f19c26d013c6831b4cb38d79d8c185e9cd669ea6a9ffe8fb9ccc74d29a068c9078aa0e2767053ed6b19aa32723c41550340d0094bea0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 + languageName: node + linkType: hard + +"htmlparser2@npm:^9.0": + version: 9.1.0 + resolution: "htmlparser2@npm:9.1.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.1.0 + entities: ^4.5.0 + checksum: e5f8d5193967e4a500226f37bdf2c0f858cecb39dde14d0439f24bf2c461a4342778740d988fbaba652b0e4cb6052f7f2e99e69fc1a329a86c629032bb76e7c8 languageName: node linkType: hard @@ -18528,10 +16351,10 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 languageName: node linkType: hard @@ -18590,9 +16413,9 @@ __metadata: linkType: hard "http-parser-js@npm:>=0.5.1": - version: 0.5.5 - resolution: "http-parser-js@npm:0.5.5" - checksum: 85e67f12d99d67565be6c82dd86d4cf71939825fdf9826e10047b2443460bfef13235859ca67c0235d54e553db242204ec813febc86f11f83ed8ebd3cd475b65 + version: 0.5.8 + resolution: "http-parser-js@npm:0.5.8" + checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d languageName: node linkType: hard @@ -18628,6 +16451,16 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 + languageName: node + linkType: hard + "http-proxy-middleware@npm:0.19.1": version: 0.19.1 resolution: "http-proxy-middleware@npm:0.19.1" @@ -18674,9 +16507,9 @@ __metadata: linkType: hard "http-status-codes@npm:^2.1.4": - version: 2.2.0 - resolution: "http-status-codes@npm:2.2.0" - checksum: 31e1d730856210445da0907d9b484629e69e4fe92ac032478a7aa4d89e5b215e2b4e75d7ebce40d0537b6850bd281b2f65c7cc36cc2677e5de056d6cea1045ce + version: 2.3.0 + resolution: "http-status-codes@npm:2.3.0" + checksum: dae3b99e0155441b6df28e8265ff27c56a45f82c6092f736414233e9ccf063d5ea93c1e1279e8b499c4642e2538b37995c76b1640ed3f615d0e2883d3a1dcfd5 languageName: node linkType: hard @@ -18718,12 +16551,22 @@ __metadata: linkType: hard "https-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "https-proxy-agent@npm:5.0.0" + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" dependencies: agent-base: 6 debug: 4 - checksum: 165bfb090bd26d47693597661298006841ab733d0c7383a8cb2f17373387a94c903a3ac687090aa739de05e379ab6f868bae84ab4eac288ad85c328cd1ec9e53 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.4 + resolution: "https-proxy-agent@npm:7.0.4" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: daaab857a967a2519ddc724f91edbbd388d766ff141b9025b629f92b9408fc83cee8a27e11a907aede392938e9c398e240d643e178408a59e4073539cde8cfe9 languageName: node linkType: hard @@ -18852,14 +16695,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1, ignore@npm:^5.1.9, ignore@npm:^5.2.0": - version: 5.2.0 - resolution: "ignore@npm:5.2.0" - checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77 - languageName: node - linkType: hard - -"ignore@npm:^5.2.4": +"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 @@ -18874,9 +16710,9 @@ __metadata: linkType: hard "immer@npm:^9.0.6": - version: 9.0.12 - resolution: "immer@npm:9.0.12" - checksum: bcbec6d76dac65e49068eb67ece4d407116e62b8cde3126aa89c801e408f5047763ba0aeb62f1938c1aa704bb6612f1d8302bb2a86fa1fc60fcc12d8b25dc895 + version: 9.0.21 + resolution: "immer@npm:9.0.21" + checksum: 70e3c274165995352f6936695f0ef4723c52c92c92dd0e9afdfe008175af39fa28e76aafb3a2ca9d57d1fb8f796efc4dd1e1cc36f18d33fa5b74f3dfb0375432 languageName: node linkType: hard @@ -18908,7 +16744,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -18927,13 +16763,6 @@ __metadata: languageName: node linkType: hard -"import-lazy@npm:^2.1.0": - version: 2.1.0 - resolution: "import-lazy@npm:2.1.0" - checksum: 05294f3b9dd4971d3a996f0d2f176410fb6745d491d6e73376429189f5c1c3d290548116b2960a7cf3e89c20cdf11431739d1d2d8c54b84061980795010e803a - languageName: node - linkType: hard - "import-local@npm:^2.0.0": version: 2.0.0 resolution: "import-local@npm:2.0.0" @@ -19017,13 +16846,6 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2.0.1": - version: 2.0.1 - resolution: "inherits@npm:2.0.1" - checksum: 6536b9377296d4ce8ee89c5c543cb75030934e61af42dba98a428e7d026938c5985ea4d1e3b87743a5b834f40ed1187f89c2d7479e9d59e41d2d1051aefba07b - languageName: node - linkType: hard - "inherits@npm:2.0.3": version: 2.0.3 resolution: "inherits@npm:2.0.3" @@ -19106,17 +16928,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3": - version: 1.0.3 - resolution: "internal-slot@npm:1.0.3" - dependencies: - get-intrinsic: ^1.1.0 - has: ^1.0.3 - side-channel: ^1.0.4 - checksum: 1944f92e981e47aebc98a88ff0db579fd90543d937806104d0b96557b10c1f170c51fb777b97740a8b6ddeec585fca8c39ae99fd08a8e058dfc8ab70937238bf - languageName: node - linkType: hard - "internal-slot@npm:^1.0.5, internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" @@ -19154,6 +16965,16 @@ __metadata: languageName: node linkType: hard +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: 1.1.0 + sprintf-js: ^1.1.3 + checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc + languageName: node + linkType: hard + "ip-regex@npm:^2.1.0": version: 2.1.0 resolution: "ip-regex@npm:2.1.0" @@ -19162,9 +16983,9 @@ __metadata: linkType: hard "ip@npm:^1.1.0, ip@npm:^1.1.5": - version: 1.1.5 - resolution: "ip@npm:1.1.5" - checksum: 30133981f082a060a32644f6a7746e9ba7ac9e2bc07ecc8bbdda3ee8ca9bec1190724c390e45a1ee7695e7edfd2a8f7dda2c104ec5f7ac5068c00648504c7e5a + version: 1.1.9 + resolution: "ip@npm:1.1.9" + checksum: b6d91fd45a856e3bd6d4f601ea0619d90f3517638f6918ebd079f959a8a6308568d8db5ef4fdf037e0d9cfdcf264f46833dfeea81ca31309cf0a7eb4b1307b84 languageName: node linkType: hard @@ -19189,21 +17010,12 @@ __metadata: languageName: node linkType: hard -"is-accessor-descriptor@npm:^0.1.6": - version: 0.1.6 - resolution: "is-accessor-descriptor@npm:0.1.6" - dependencies: - kind-of: ^3.0.2 - checksum: 3d629a086a9585bc16a83a8e8a3416f400023301855cafb7ccc9a1d63145b7480f0ad28877dcc2cce09492c4ec1c39ef4c071996f24ee6ac626be4217b8ffc8a - languageName: node - linkType: hard - -"is-accessor-descriptor@npm:^1.0.0": - version: 1.0.0 - resolution: "is-accessor-descriptor@npm:1.0.0" +"is-accessor-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-accessor-descriptor@npm:1.0.1" dependencies: - kind-of: ^6.0.0 - checksum: 8e475968e9b22f9849343c25854fa24492dbe8ba0dea1a818978f9f1b887339190b022c9300d08c47fe36f1b913d70ce8cbaca00369c55a56705fdb7caed37fe + hasown: ^2.0.0 + checksum: 8db44c02230a5e9b9dec390a343178791f073d5d5556a400527d2fd67a72d93b226abab2bd4123305c268f5dc22831bfdbd38430441fda82ea9e0b95ddc6b267 languageName: node linkType: hard @@ -19224,7 +17036,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4": +"is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -19311,31 +17123,13 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": - version: 1.2.4 - resolution: "is-callable@npm:1.2.4" - checksum: 1a28d57dc435797dae04b173b65d6d1e77d4f16276e9eff973f994eadcfdc30a017e6a597f092752a083c1103cceb56c91e3dadc6692fedb9898dfaba701575f - languageName: node - linkType: hard - -"is-callable@npm:^1.2.7": +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac languageName: node linkType: hard -"is-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-ci@npm:2.0.0" - dependencies: - ci-info: ^2.0.0 - bin: - is-ci: bin.js - checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 - languageName: node - linkType: hard - "is-ci@npm:^3.0.0": version: 3.0.1 resolution: "is-ci@npm:3.0.1" @@ -19361,7 +17155,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -19370,39 +17164,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": - version: 2.9.0 - resolution: "is-core-module@npm:2.9.0" - dependencies: - has: ^1.0.3 - checksum: b27034318b4b462f1c8f1dfb1b32baecd651d891a4e2d1922135daeff4141dfced2b82b07aef83ef54275c4a3526aa38da859223664d0868ca24182badb784ce - languageName: node - linkType: hard - -"is-core-module@npm:^2.8.0": - version: 2.8.1 - resolution: "is-core-module@npm:2.8.1" - dependencies: - has: ^1.0.3 - checksum: 418b7bc10768a73c41c7ef497e293719604007f88934a6ffc5f7c78702791b8528102fb4c9e56d006d69361549b3d9519440214a74aefc7e0b79e5e4411d377f - languageName: node - linkType: hard - -"is-data-descriptor@npm:^0.1.4": - version: 0.1.4 - resolution: "is-data-descriptor@npm:0.1.4" - dependencies: - kind-of: ^3.0.2 - checksum: 5c622e078ba933a78338ae398a3d1fc5c23332b395312daf4f74bab4afb10d061cea74821add726cb4db8b946ba36217ee71a24fe71dd5bca4632edb7f6aad87 - languageName: node - linkType: hard - -"is-data-descriptor@npm:^1.0.0": - version: 1.0.0 - resolution: "is-data-descriptor@npm:1.0.0" +"is-data-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-descriptor@npm:1.0.1" dependencies: - kind-of: ^6.0.0 - checksum: e705e6816241c013b05a65dc452244ee378d1c3e3842bd140beabe6e12c0d700ef23c91803f971aa7b091fb0573c5da8963af34a2b573337d87bc3e1f53a4e6d + hasown: ^2.0.0 + checksum: fc6da5be5177149d554c5612cc382e9549418ed72f2d3ed5a3e6511b03dd119ae1b2258320ca94931df50b7e9ee012894eccd4ca45bbcadf0d5b27da6faeb15a languageName: node linkType: hard @@ -19439,24 +17206,22 @@ __metadata: linkType: hard "is-descriptor@npm:^0.1.0": - version: 0.1.6 - resolution: "is-descriptor@npm:0.1.6" + version: 0.1.7 + resolution: "is-descriptor@npm:0.1.7" dependencies: - is-accessor-descriptor: ^0.1.6 - is-data-descriptor: ^0.1.4 - kind-of: ^5.0.0 - checksum: 0f780c1b46b465f71d970fd7754096ffdb7b69fd8797ca1f5069c163eaedcd6a20ec4a50af669075c9ebcfb5266d2e53c8b227e485eefdb0d1fee09aa1dd8ab6 + is-accessor-descriptor: ^1.0.1 + is-data-descriptor: ^1.0.1 + checksum: 45743109f0bb03f9fa989c34d31ece87cc15792649f147b896a7c4db2906a02fca685867619f4d312e024d7bbd53b945a47c6830d01f5e73efcc6388ac211963 languageName: node linkType: hard "is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": - version: 1.0.2 - resolution: "is-descriptor@npm:1.0.2" + version: 1.0.3 + resolution: "is-descriptor@npm:1.0.3" dependencies: - is-accessor-descriptor: ^1.0.0 - is-data-descriptor: ^1.0.0 - kind-of: ^6.0.2 - checksum: 2ed623560bee035fb67b23e32ce885700bef8abe3fbf8c909907d86507b91a2c89a9d3a4d835a4d7334dd5db0237a0aeae9ca109c1e4ef1c0e7b577c0846ab5a + is-accessor-descriptor: ^1.0.1 + is-data-descriptor: ^1.0.1 + checksum: 316153b2fd86ac23b0a2f28b77744ae0a4e3c7a54fe52fa70b125d0971eb0a3bcfb562fa8e74537af0dad5bc405cc606726eb501fc748a241c10910deea89cfb languageName: node linkType: hard @@ -19492,7 +17257,7 @@ __metadata: languageName: node linkType: hard -"is-extglob@npm:^2.1.1": +"is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 @@ -19554,6 +17319,15 @@ __metadata: languageName: node linkType: hard +"is-glob@npm:^3.1.0": + version: 3.1.0 + resolution: "is-glob@npm:3.1.0" + dependencies: + is-extglob: ^2.1.0 + checksum: 9d483bca84f16f01230f7c7c8c63735248fe1064346f292e0f6f8c76475fd20c6f50fc19941af5bec35f85d6bf26f4b7768f39a48a5f5fdc72b408dc74e07afc + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -19577,7 +17351,7 @@ __metadata: languageName: node linkType: hard -"is-installed-globally@npm:^0.4.0, is-installed-globally@npm:~0.4.0": +"is-installed-globally@npm:~0.4.0": version: 0.4.0 resolution: "is-installed-globally@npm:0.4.0" dependencies: @@ -19594,17 +17368,10 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1": - version: 2.0.2 - resolution: "is-map@npm:2.0.2" - checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.1, is-negative-zero@npm:^2.0.2": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a +"is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc languageName: node linkType: hard @@ -19615,19 +17382,12 @@ __metadata: languageName: node linkType: hard -"is-npm@npm:^5.0.0": - version: 5.0.0 - resolution: "is-npm@npm:5.0.0" - checksum: 9baff02b0c69a3d3c79b162cb2f9e67fb40ef6d172c16601b2e2471c21e9a4fa1fc9885a308d7bc6f3a3cd2a324c27fa0bf284c133c3349bb22571ab70d041cc - languageName: node - linkType: hard - "is-number-object@npm:^1.0.4": - version: 1.0.6 - resolution: "is-number-object@npm:1.0.6" + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" dependencies: has-tostringtag: ^1.0.0 - checksum: c697704e8fc2027fc41cb81d29805de4e8b6dc9c3efee93741dbf126a8ecc8443fef85adbc581415ae7e55d325e51d0a942324ae35c829131748cce39cba55f3 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 languageName: node linkType: hard @@ -19737,7 +17497,7 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.0.4, is-regex@npm:^1.1.4": +"is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -19784,30 +17544,14 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.1": - version: 2.0.2 - resolution: "is-set@npm:2.0.2" - checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "is-shared-array-buffer@npm:1.0.1" - checksum: 2ffb92533e64e2876e6cfe6906871d28400b6f1a53130fe652ec8007bc0e5044d05e7af8e31bdc992fbba520bd92938cfbeedd0f286be92f250c7c76191c4d90 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a +"is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.3": +"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "is-shared-array-buffer@npm:1.0.3" dependencies: @@ -19816,7 +17560,7 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^1.0.0, is-stream@npm:^1.1.0": +"is-stream@npm:^1.0.0, is-stream@npm:^1.0.1, is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae @@ -19885,14 +17629,14 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.1": - version: 2.0.1 - resolution: "is-weakmap@npm:2.0.1" - checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d languageName: node linkType: hard -"is-weakref@npm:^1.0.1, is-weakref@npm:^1.0.2": +"is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" dependencies: @@ -19901,13 +17645,13 @@ __metadata: languageName: node linkType: hard -"is-weakset@npm:^2.0.1": - version: 2.0.2 - resolution: "is-weakset@npm:2.0.2" +"is-weakset@npm:^2.0.3": + version: 2.0.3 + resolution: "is-weakset@npm:2.0.3" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 + call-bind: ^1.0.7 + get-intrinsic: ^1.2.4 + checksum: 8b6a20ee9f844613ff8f10962cfee49d981d584525f2357fee0a04dfbcde9fd607ed60cb6dab626dbcc470018ae6392e1ff74c0c1aced2d487271411ad9d85ae languageName: node linkType: hard @@ -19941,13 +17685,6 @@ __metadata: languageName: node linkType: hard -"is-yarn-global@npm:^0.3.0": - version: 0.3.0 - resolution: "is-yarn-global@npm:0.3.0" - checksum: bca013d65fee2862024c9fbb3ba13720ffca2fe750095174c1c80922fdda16402b5c233f5ac9e265bc12ecb5446e7b7f519a32d9541788f01d4d44e24d2bf481 - languageName: node - linkType: hard - "isarray@npm:0.0.1, isarray@npm:~0.0.1": version: 0.0.1 resolution: "isarray@npm:0.0.1" @@ -19978,14 +17715,7 @@ __metadata: languageName: node linkType: hard -"isbinaryfile@npm:^4.0.0": - version: 4.0.8 - resolution: "isbinaryfile@npm:4.0.8" - checksum: 606e3bb648d1a0dee23459d1d937bb2560e66a5281ec7c9ff50e585402d73321ac268d0f34cb7393125b3ebc4c7962d39e50a01cdb8904b52fce08b7ccd2bf9f - languageName: node - linkType: hard - -"isbinaryfile@npm:^4.0.10": +"isbinaryfile@npm:^4.0.0, isbinaryfile@npm:^4.0.10": version: 4.0.10 resolution: "isbinaryfile@npm:4.0.10" checksum: a6b28db7e23ac7a77d3707567cac81356ea18bd602a4f21f424f862a31d0e7ab4f250759c98a559ece35ffe4d99f0d339f1ab884ffa9795172f632ab8f88e686 @@ -19999,6 +17729,13 @@ __metadata: languageName: node linkType: hard +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + "isobject@npm:^2.0.0": version: 2.1.0 resolution: "isobject@npm:2.1.0" @@ -20015,6 +17752,16 @@ __metadata: languageName: node linkType: hard +"isomorphic-fetch@npm:^2.1.1": + version: 2.2.1 + resolution: "isomorphic-fetch@npm:2.2.1" + dependencies: + node-fetch: ^1.0.1 + whatwg-fetch: ">=0.10.0" + checksum: bb5daa7c3785d6742f4379a81e55b549a469503f7c9bf9411b48592e86632cf5e8fe8ea878dba185c0f33eb7c510c23abdeb55aebfdf5d3c70f031ced68c5424 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -20023,22 +17770,22 @@ __metadata: linkType: hard "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.0 - resolution: "istanbul-lib-coverage@npm:3.2.0" - checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 languageName: node linkType: hard "istanbul-lib-instrument@npm:^5.0.4": - version: 5.1.0 - resolution: "istanbul-lib-instrument@npm:5.1.0" + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: "@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 - checksum: 8b82e733c69fe9f94d2e21f3e5760c9bedb110329aa75df4bd40df95f1cac3bf38767e43f35b125cc547ceca7376b72ce7d95cc5238b7e9088345c7b589233d3 + checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 languageName: node linkType: hard @@ -20056,13 +17803,13 @@ __metadata: linkType: hard "istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" dependencies: istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 + make-dir: ^4.0.0 supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 languageName: node linkType: hard @@ -20078,12 +17825,12 @@ __metadata: linkType: hard "istanbul-reports@npm:^3.1.3": - version: 3.1.3 - resolution: "istanbul-reports@npm:3.1.3" + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: ef6e0d9ed05ecab1974c6eb46cc2a12d8570911934192db4ed40cf1978449240ea80aae32c4dd5555b67407cdf860212d1a9e415443af69641aa57ed1da5ebbb + checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 languageName: node linkType: hard @@ -20121,17 +17868,30 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + languageName: node + linkType: hard + "jake@npm:^10.8.5": - version: 10.8.5 - resolution: "jake@npm:10.8.5" + version: 10.8.7 + resolution: "jake@npm:10.8.7" dependencies: async: ^3.2.3 chalk: ^4.0.2 - filelist: ^1.0.1 - minimatch: ^3.0.4 + filelist: ^1.0.4 + minimatch: ^3.1.2 bin: - jake: ./bin/cli.js - checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba + jake: bin/cli.js + checksum: a23fd2273fb13f0d0d845502d02c791fd55ef5c6a2d207df72f72d8e1eac6d2b8ffa6caf660bc8006b3242e0daaa88a3ecc600194d72b5c6016ad56e9cd43553 languageName: node linkType: hard @@ -20261,19 +18021,7 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^27.0.0, jest-diff@npm:^27.0.2": - version: 27.4.6 - resolution: "jest-diff@npm:27.4.6" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^27.4.0 - jest-get-type: ^27.4.0 - pretty-format: ^27.4.6 - checksum: cf6b7e80e3c64a7c71ab209c0325bbda175991aed985ecee7652df9d6540e4959089038e208c04ab05391c9ddf07adc72f0c8c26cc4cee6fa17f76f500e2bf43 - languageName: node - linkType: hard - -"jest-diff@npm:^29.7.0": +"jest-diff@npm:^29.2.0, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" dependencies: @@ -20328,13 +18076,6 @@ __metadata: languageName: node linkType: hard -"jest-get-type@npm:^27.4.0": - version: 27.4.0 - resolution: "jest-get-type@npm:27.4.0" - checksum: bb9b70e420009fdaed3026d5bccd01569f92c7500f9f544d862796d4f4efa93ced5484864b2f272c7748bfb5bfd3268d48868b169c51ab45fe5b45b9519b6e46 - languageName: node - linkType: hard - "jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" @@ -20425,14 +18166,14 @@ __metadata: linkType: hard "jest-pnp-resolver@npm:^1.2.2": - version: 1.2.2 - resolution: "jest-pnp-resolver@npm:1.2.2" + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" peerDependencies: jest-resolve: "*" peerDependenciesMeta: jest-resolve: optional: true - checksum: bd85dcc0e76e0eb0c3d56382ec140f08d25ff4068cda9d0e360bb78fb176cb726d0beab82dc0e8694cafd09f55fee7622b8bcb240afa5fad301f4ed3eebb4f47 + checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 languageName: node linkType: hard @@ -20602,12 +18343,12 @@ __metadata: linkType: hard "jest-websocket-mock@npm:^2.2.0": - version: 2.3.0 - resolution: "jest-websocket-mock@npm:2.3.0" + version: 2.5.0 + resolution: "jest-websocket-mock@npm:2.5.0" dependencies: - jest-diff: ^27.0.2 - mock-socket: ^9.1.0 - checksum: 5ab122960d2b71f8a70f05feb0ac04a4744fd9004c30cc65c2b1792e901a8424832b049032d563225d9b47ccd6dc39131f8d0adba78771d2259095b7321f02b8 + jest-diff: ^29.2.0 + mock-socket: ^9.3.0 + checksum: df52989d62f59aea3408d37089ab56490efdfa75d81c851dde65758474844e273a9a4ebd9c13db49d226b87d8272896cabd91173dd8cc56b96beec309d46554d languageName: node linkType: hard @@ -20716,6 +18457,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 + languageName: node + linkType: hard + "jsbn@npm:~0.1.0": version: 0.1.1 resolution: "jsbn@npm:0.1.1" @@ -20881,11 +18629,14 @@ __metadata: linkType: hard "json-stable-stringify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify@npm:1.0.1" + version: 1.1.1 + resolution: "json-stable-stringify@npm:1.1.1" dependencies: - jsonify: ~0.0.0 - checksum: 65d6cbf0fca72a4136999f65f4401cf39a129f7aeff0fdd987ac3d3423a2113659294045fb8377e6e20d865cac32b1b8d70f3d87346c9786adcee60661d96ca5 + call-bind: ^1.0.5 + isarray: ^2.0.5 + jsonify: ^0.0.1 + object-keys: ^1.1.1 + checksum: e1ba06600fd278767eeff53f28e408e29c867e79abf564e7aadc3ce8f31f667258f8db278ef28831e45884dd687388fa1910f46e599fc19fb94c9afbbe3a4de8 languageName: node linkType: hard @@ -20896,7 +18647,7 @@ __metadata: languageName: node linkType: hard -"json3@npm:^3.3.2, json3@npm:^3.3.3": +"json3@npm:^3.3.2": version: 3.3.3 resolution: "json3@npm:3.3.3" checksum: 55eda204a4c70d11b7d5caa5cb64c76a3aa54d5df72d07bdf446b922fd7cb8657b0732f68e0c36790f55e195e0a429c299144ff05430bbe93bc2a7c81ad3472b @@ -20924,9 +18675,9 @@ __metadata: linkType: hard "jsonc-parser@npm:^3.0.0": - version: 3.0.0 - resolution: "jsonc-parser@npm:3.0.0" - checksum: 1df2326f1f9688de30c70ff19c5b2a83ba3b89a1036160da79821d1361090775e9db502dc57a67c11b56e1186fc1ed70b887f25c5febf9a3ec4f91435836c99d + version: 3.2.1 + resolution: "jsonc-parser@npm:3.2.1" + checksum: 656d9027b91de98d8ab91b3aa0d0a4cab7dc798a6830845ca664f3e76c82d46b973675bbe9b500fae1de37fd3e81aceacbaa2a57884bf2f8f29192150d2d1ef7 languageName: node linkType: hard @@ -20967,10 +18718,10 @@ __metadata: languageName: node linkType: hard -"jsonify@npm:~0.0.0": - version: 0.0.0 - resolution: "jsonify@npm:0.0.0" - checksum: d8d4ed476c116e6987a460dcb82f22284686caae9f498ac87b0502c1765ac1522f4f450a4cad4cc368d202fd3b27a3860735140a82867fc6d558f5f199c38bce +"jsonify@npm:^0.0.1": + version: 0.0.1 + resolution: "jsonify@npm:0.0.1" + checksum: 027287e1c0294fce15f18c0ff990cfc2318e7f01fb76515f784d5cd0784abfec6fc5c2355c3a2f2cb0ad7f4aa2f5b74ebbfe4e80476c35b2d13cabdb572e1134 languageName: node linkType: hard @@ -20989,14 +18740,20 @@ __metadata: linkType: hard "jsonwebtoken@npm:^9.0.0": - version: 9.0.0 - resolution: "jsonwebtoken@npm:9.0.0" + version: 9.0.2 + resolution: "jsonwebtoken@npm:9.0.2" dependencies: jws: ^3.2.2 - lodash: ^4.17.21 + lodash.includes: ^4.3.0 + lodash.isboolean: ^3.0.3 + lodash.isinteger: ^4.0.4 + lodash.isnumber: ^3.0.3 + lodash.isplainobject: ^4.0.6 + lodash.isstring: ^4.0.1 + lodash.once: ^4.0.0 ms: ^2.1.1 - semver: ^7.3.8 - checksum: b9181cecf9df99f1dc0253f91ba000a1aa4d91f5816d1608c0dba61a5623726a0bfe200b51df25de18c1a6000825d231ad7ce2788aa54fd48dcb760ad9eb9514 + semver: ^7.5.4 + checksum: fc739a6a8b33f1974f9772dca7f8493ca8df4cc31c5a09dcfdb7cff77447dcf22f4236fb2774ef3fe50df0abeb8e1c6f4c41eba82f500a804ab101e2fbc9d61a languageName: node linkType: hard @@ -21031,17 +18788,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": - version: 3.3.2 - resolution: "jsx-ast-utils@npm:3.3.2" - dependencies: - array-includes: ^3.1.5 - object.assign: ^4.1.2 - checksum: 61d4596d44480afc03ae0a7ebb272aa6603dc4c3645805dea0fc8d9f0693542cd0959f3ba7c0c9b16c13dd5a900c7c4310108bada273132a8355efe3fed22064 - languageName: node - linkType: hard - -"jsx-ast-utils@npm:^3.3.5": +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" dependencies: @@ -21127,15 +18874,6 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^3.0.0": - version: 3.1.0 - resolution: "keyv@npm:3.1.0" - dependencies: - json-buffer: 3.0.0 - checksum: bb7e8f3acffdbafbc2dd5b63f377fe6ec4c0e2c44fc82720449ef8ab54f4a7ce3802671ed94c0f475ae0a8549703353a2124561fcf3317010c141b32ca1ce903 - languageName: node - linkType: hard - "keyv@npm:^4.0.0, keyv@npm:^4.5.3": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -21167,9 +18905,9 @@ __metadata: linkType: hard "klona@npm:^2.0.3": - version: 2.0.5 - resolution: "klona@npm:2.0.5" - checksum: 8c976126ea252b766e648a4866e1bccff9d3b08432474ad80c559f6c7265cf7caede2498d463754d8c88c4759895edd8210c85c0d3155e6aae4968362889466f + version: 2.0.6 + resolution: "klona@npm:2.0.6" + checksum: ac9ee3732e42b96feb67faae4d27cf49494e8a3bf3fa7115ce242fe04786788e0aff4741a07a45a2462e2079aa983d73d38519c85d65b70ef11447bbc3c58ce7 languageName: node linkType: hard @@ -21208,15 +18946,6 @@ __metadata: languageName: node linkType: hard -"latest-version@npm:^5.1.0": - version: 5.1.0 - resolution: "latest-version@npm:5.1.0" - dependencies: - package-json: ^6.3.0 - checksum: fbc72b071eb66c40f652441fd783a9cca62f08bf42433651937f078cd9ef94bf728ec7743992777826e4e89305aef24f234b515e6030503a2cbee7fc9bdc2c0f - languageName: node - linkType: hard - "lazy-ass@npm:^1.6.0": version: 1.6.0 resolution: "lazy-ass@npm:1.6.0" @@ -21471,11 +19200,11 @@ __metadata: linkType: hard "locate-path@npm:^7.1.0": - version: 7.1.0 - resolution: "locate-path@npm:7.1.0" + version: 7.2.0 + resolution: "locate-path@npm:7.2.0" dependencies: p-locate: ^6.0.0 - checksum: 17d5eb6c04ff31856f8a6ae4ee3e3091d41485657428d1a91bd5f66aa1fcd7a90db3de6e8ffb905c2ff1a0014b77509b98dd6410424505efc08b1726d50bcbfc + checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8 languageName: node linkType: hard @@ -21556,6 +19285,13 @@ __metadata: languageName: node linkType: hard +"lodash.includes@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.includes@npm:4.3.0" + checksum: 71092c130515a67ab3bd928f57f6018434797c94def7f46aafa417771e455ce3a4834889f4267b17887d7f75297dfabd96231bf704fd2b8c5096dc4a913568b6 + languageName: node + linkType: hard + "lodash.isarguments@npm:^3.0.0": version: 3.1.0 resolution: "lodash.isarguments@npm:3.1.0" @@ -21570,6 +19306,13 @@ __metadata: languageName: node linkType: hard +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 + languageName: node + linkType: hard + "lodash.isequal@npm:^4.5.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" @@ -21577,6 +19320,20 @@ __metadata: languageName: node linkType: hard +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 6034821b3fc61a2ffc34e7d5644bb50c5fd8f1c0121c554c21ac271911ee0c0502274852845005f8651d51e199ee2e0cfebfe40aaa49c7fe617f603a8a0b1691 + languageName: node + linkType: hard + +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 + languageName: node + linkType: hard + "lodash.isplainobject@npm:^4.0.6": version: 4.0.6 resolution: "lodash.isplainobject@npm:4.0.6" @@ -21584,6 +19341,13 @@ __metadata: languageName: node linkType: hard +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 + languageName: node + linkType: hard + "lodash.keys@npm:^3.0.0": version: 3.1.2 resolution: "lodash.keys@npm:3.1.2" @@ -21609,7 +19373,7 @@ __metadata: languageName: node linkType: hard -"lodash.once@npm:^4.1.1": +"lodash.once@npm:^4.0.0, lodash.once@npm:^4.1.1": version: 4.1.1 resolution: "lodash.once@npm:4.1.1" checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 @@ -21726,9 +19490,9 @@ __metadata: linkType: hard "loglevel@npm:^1.6.8": - version: 1.8.0 - resolution: "loglevel@npm:1.8.0" - checksum: 41aeea17de24aba8dba68084a31fe9189648bce4f39c1277e021bb276c3c53a75b0d337395919cf271068ad40ecefabad0e4fdeb4a8f11908beee532b898f4a7 + version: 1.9.1 + resolution: "loglevel@npm:1.9.1" + checksum: e1c8586108c4d566122e91f8a79c8df728920e3a714875affa5120566761a24077ec8ec9e5fc388b022e39fc411ec6e090cde1b5775871241b045139771eeb06 languageName: node linkType: hard @@ -21764,7 +19528,7 @@ __metadata: languageName: node linkType: hard -"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": +"lowercase-keys@npm:^1.0.0": version: 1.0.1 resolution: "lowercase-keys@npm:1.0.1" checksum: 4d045026595936e09953e3867722e309415ff2c80d7701d067546d75ef698dac218a4f53c6d1d0e7368b47e45fd7529df47e6cb56fbb90523ba599f898b3d147 @@ -21778,6 +19542,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.2.0 + resolution: "lru-cache@npm:10.2.0" + checksum: eee7ddda4a7475deac51ac81d7dd78709095c6fa46e8350dc2d22462559a1faa3b81ed931d5464b13d48cbd7e08b46100b6f768c76833912bc444b99c37e25db + languageName: node + linkType: hard + "lru-cache@npm:^4.0.1": version: 4.1.5 resolution: "lru-cache@npm:4.1.5" @@ -21817,12 +19588,12 @@ __metadata: linkType: hard "lru-memoizer@npm:^2.1.2": - version: 2.1.4 - resolution: "lru-memoizer@npm:2.1.4" + version: 2.2.0 + resolution: "lru-memoizer@npm:2.2.0" dependencies: lodash.clonedeep: ^4.5.0 lru-cache: ~4.0.0 - checksum: 8dd076e39afeb2e079287758344ba87cde278f630447e823650320e41a9e3dd8bd91ed375fa7585af95c4ae0473ba18e2fe6f12cbde7f69fc109f2ddd60423b3 + checksum: 555f672b3ff6b4fec63792ca1cda7b585fc54f5e8f0b73166e6d513cc4103032cd69f5d40b32700807c9ca94671728e9108a3fe0803fc3f1b08716946c5a6098 languageName: node linkType: hard @@ -21856,11 +19627,11 @@ __metadata: linkType: hard "lz-string@npm:^1.4.4": - version: 1.4.4 - resolution: "lz-string@npm:1.4.4" + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" bin: lz-string: bin/bin.js - checksum: 54e31238a61a84d8f664d9860a9fba7310c5b97a52c444f80543069bc084815eff40b8d4474ae1d93992fdf6c252dca37cf27f6adbeb4dbc3df2f3ac773d0e61 + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d languageName: node linkType: hard @@ -21883,6 +19654,15 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + "make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" @@ -21890,6 +19670,25 @@ __metadata: languageName: node linkType: hard +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" + dependencies: + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 + http-cache-semantics: ^4.1.1 + is-lambda: ^1.0.1 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + ssri: ^10.0.0 + checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af + languageName: node + linkType: hard + "make-fetch-happen@npm:^9.1.0": version: 9.1.0 resolution: "make-fetch-happen@npm:9.1.0" @@ -21958,12 +19757,12 @@ __metadata: languageName: node linkType: hard -"markdown-it-attrs@npm:4.1.4": - version: 4.1.4 - resolution: "markdown-it-attrs@npm:4.1.4" +"markdown-it-attrs@npm:4.1.6": + version: 4.1.6 + resolution: "markdown-it-attrs@npm:4.1.6" peerDependencies: markdown-it: ">= 9.0.0" - checksum: c4980619ab190d5c05a99c85bf501207d8105b46556bb7d260d44f3322c9fa4a5cfba9c7b79d92281ab6acc6d25abfd8837b4330a6c3886750aee17262a65e47 + checksum: 3487fab315a5955f1882edcb29b5362fcdc9a369c4cd1c38688b3d32a145254094d2d8389bdd6887c3af66f9a9a75143f167d88421dcf201e54ec587675756a0 languageName: node linkType: hard @@ -22025,6 +19824,26 @@ __metadata: languageName: node linkType: hard +"mdast-util-from-markdown@npm:2.0.0": + version: 2.0.0 + resolution: "mdast-util-from-markdown@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + mdast-util-to-string: ^4.0.0 + micromark: ^4.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-decode-string: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-stringify-position: ^4.0.0 + checksum: 4e8d8a46b4b588486c41b80c39da333a91593bc8d60cd7421c6cd3c22003b8e5a62478292fb7bc97b9255b6301a2250cca32340ef43c309156e215453c5b92be + languageName: node + linkType: hard + "mdast-util-from-markdown@npm:^0.8.0": version: 0.8.5 resolution: "mdast-util-from-markdown@npm:0.8.5" @@ -22045,6 +19864,22 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" + dependencies: + "@types/mdast": ^4.0.0 + checksum: 35489fb5710d58cbc2d6c8b6547df161a3f81e0f28f320dfb3548a9393555daf07c310c0c497708e67ed4dfea4a06e5655799e7d631ca91420c288b4525d6c29 + languageName: node + linkType: hard + +"mdast@npm:3.0.0": + version: 3.0.0 + resolution: "mdast@npm:3.0.0" + checksum: 410594c6535d09a96c01384c21ff7ef4909f1b634836e9cda93b67627ed833e81511d5a420d6d2e4cb91123548c5926ca5fa0d3dadf04ab81b67a07c96d08966 + languageName: node + linkType: hard + "mdn-data@npm:2.0.14": version: 2.0.14 resolution: "mdn-data@npm:2.0.14" @@ -22183,6 +20018,15 @@ __metadata: languageName: node linkType: hard +"merge-refs@npm:1.2.1": + version: 1.2.1 + resolution: "merge-refs@npm:1.2.1" + dependencies: + "@types/react": "*" + checksum: 22b1177105b112f34753eb6b899a9c1f7ad06f47c06b16173d16ba3f183f37c557a2f837fea69d3997e0f8c0643d942f3068138993790c800601bae62acde070 + languageName: node + linkType: hard + "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -22218,6 +20062,242 @@ __metadata: languageName: node linkType: hard +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-core-commonmark@npm:2.0.0" + dependencies: + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + micromark-factory-destination: ^2.0.0 + micromark-factory-label: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-factory-title: ^2.0.0 + micromark-factory-whitespace: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-classify-character: ^2.0.0 + micromark-util-html-tag-name: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-subtokenize: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 9c12fb580cf4ce71f60872043bd2794efe129f44d7b2b73afa155bbc0a66b7bc35655ba8cef438a6bd068441837ed3b6dc6ad7e5a18f815462c1750793e03a42 + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-destination@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: d36e65ed1c072ff4148b016783148ba7c68a078991154625723e24bda3945160268fb91079fb28618e1613c2b6e70390a8ddc544c45410288aa27b413593071a + languageName: node + linkType: hard + +"micromark-factory-label@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-label@npm:2.0.0" + dependencies: + devlop: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: c021dbd0ed367610d35f2bae21209bc804d1a6d1286ffce458fd6a717f4d7fe581a7cba7d5c2d7a63757c44eb927c80d6a571d6ea7969fae1b48ab6461d109c4 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-space@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 4ffdcdc2f759887bbb356500cb460b3915ecddcb5d85c3618d7df68ad05d13ed02b1153ee1845677b7d8126df8f388288b84fcf0d943bd9c92bcc71cd7222e37 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-title@npm:2.0.0" + dependencies: + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 39e1ac23af3554e6e652e56065579bc7faf21ade7b8704b29c175871b4152b7109b790bb3cae0f7e088381139c6bac9553b8400772c3d322e4fa635f813a3578 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-whitespace@npm:2.0.0" + dependencies: + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 9587c2546d1a58b4d5472b42adf05463f6212d0449455285662d63cd8eaed89c6b159ac82713fcee5f9dd88628c24307d9533cccd8971a2f3f4d48702f8f850a + languageName: node + linkType: hard + +"micromark-util-character@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-util-character@npm:2.1.0" + dependencies: + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 36ee910f84077cf16626fa618cfe46ac25956b3242e3166b8e8e98c5a8c524af7e5bf3d70822264b1fd2d297a36104a7eb7e3462c19c28353eaca7b0d8717594 + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-chunked@npm:2.0.0" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: 324f95cccdae061332a8241936eaba6ef0782a1e355bac5c607ad2564fd3744929be7dc81651315a2921535747a33243e6a5606bcb64b7a56d49b6d74ea1a3d4 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-classify-character@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 086e52904deffebb793fb1c08c94aabb8901f76958142dfc3a6282890ebaa983b285e69bd602b9d507f1b758ed38e75a994d2ad9fbbefa7de2584f67a16af405 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-combine-extensions@npm:2.0.0" + dependencies: + micromark-util-chunked: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 107c47700343f365b4ed81551e18bc3458b573c500e56ac052b2490bd548adc475216e41d2271633a8867fac66fc22ba3e0a2d74a31ed79b9870ca947eb4e3ba + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: 9512507722efd2033a9f08715eeef787fbfe27e23edf55db21423d46d82ab46f76c89b4f960be3f5e50a2d388d89658afc0647989cf256d051e9ea01277a1adb + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-decode-string@npm:2.0.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-symbol: ^2.0.0 + checksum: a75daf32a4a6b549e9f19b4d833ebfeb09a32a9a1f9ce50f35dec6b6a3e4f9f121f49024ba7f9c91c55ebe792f7c7a332fc9604795181b6a612637df0df5b959 + languageName: node + linkType: hard + +"micromark-util-encode@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-encode@npm:2.0.0" + checksum: 853a3f33fce72aaf4ffa60b7f2b6fcfca40b270b3466e1b96561b02185d2bd8c01dd7948bc31a24ac014f4cc854e545ca9a8e9cf7ea46262f9d24c9e88551c66 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-html-tag-name@npm:2.0.0" + checksum: d786d4486f93eb0ac5b628779809ca97c5dc60f3c9fc03eb565809831db181cf8cb7f05f9ac76852f3eb35461af0f89fa407b46f3a03f4f97a96754d8dc540d8 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-normalize-identifier@npm:2.0.0" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: b36da2d3fd102053dadd953ce5c558328df12a63a8ac0e5aad13d4dda8e43b6a5d4a661baafe0a1cd8a260bead4b4a8e6e0e74193dd651e8484225bd4f4e68aa + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-resolve-all@npm:2.0.0" + dependencies: + micromark-util-types: ^2.0.0 + checksum: 31fe703b85572cb3f598ebe32750e59516925c7ff1f66cfe6afaebe0771a395a9eaa770787f2523d3c46082ea80e6c14f83643303740b3d650af7c96ebd30ccc + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-sanitize-uri@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-encode: ^2.0.0 + micromark-util-symbol: ^2.0.0 + checksum: ea4c28bbffcf2430e9aff2d18554296789a8b0a1f54ac24020d1dde76624a7f93e8f2a83e88cd5a846b6d2c4287b71b1142d1b89fa7f1b0363a9b33711a141fe + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-subtokenize@npm:2.0.0" + dependencies: + devlop: ^1.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 77d9c7d59c05a20468d49ce2a3640e9cb268c083ccad02322f26c84e1094c25b44f4b8139ef0a247ca11a4fef7620c5bf82fbffd98acdb2989e79cbe7bd8f1db + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-symbol@npm:2.0.0" + checksum: fa4a05bff575d9fbf0ad96a1013003e3bb6087ed6b34b609a141b6c0d2137b57df594aca409a95f4c5fda199f227b56a7d8b1f82cea0768df161d8a3a3660764 + languageName: node + linkType: hard + +"micromark-util-types@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-types@npm:2.0.0" + checksum: 819fef3ab5770c37893d2a60381fb2694396c8d22803b6e103c830c3a1bc1490363c2b0470bb2acaaddad776dfbc2fc1fcfde39cb63c4f54d95121611672e3d0 + languageName: node + linkType: hard + +"micromark@npm:^4.0.0": + version: 4.0.0 + resolution: "micromark@npm:4.0.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-encode: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-subtokenize: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: b84ab5ab1a0b28c063c52e9c2c9d7d44b954507235c10c9492d66e0b38f7de24bf298f914a1fbdf109f2a57a88cf0412de217c84cfac5fd60e3e42a74dbac085 + languageName: node + linkType: hard + "micromark@npm:~2.11.0": version: 2.11.4 resolution: "micromark@npm:2.11.4" @@ -22228,7 +20308,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.5": +"micromatch@npm:4.0.5, micromatch@npm:^4.0.0, micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -22259,16 +20339,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.0, micromatch@npm:^4.0.4": - version: 4.0.4 - resolution: "micromatch@npm:4.0.4" - dependencies: - braces: ^3.0.1 - picomatch: ^2.2.3 - checksum: ef3d1c88e79e0a68b0e94a03137676f3324ac18a908c245a9e5936f838079fcc108ac7170a5fadc265a9c2596963462e402841406bda1a4bb7b68805601d631c - languageName: node - linkType: hard - "microsoft-cognitiveservices-speech-sdk@npm:1.17.0": version: 1.17.0 resolution: "microsoft-cognitiveservices-speech-sdk@npm:1.17.0" @@ -22299,30 +20369,14 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.51.0, mime-db@npm:>= 1.43.0 < 2": - version: 1.51.0 - resolution: "mime-db@npm:1.51.0" - checksum: 613b1ac9d6e725cc24444600b124a7f1ce6c60b1baa654f39a3e260d0995a6dffc5693190217e271af7e2a5612dae19f2a73f3e316707d797a7391165f7ef423 - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": +"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": version: 1.52.0 resolution: "mime-db@npm:1.52.0" checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24": - version: 2.1.34 - resolution: "mime-types@npm:2.1.34" - dependencies: - mime-db: 1.51.0 - checksum: 67013de9e9d6799bde6d669d18785b7e18bcd212e710d3e04a4727f92f67a8ad4e74aee24be28b685adb794944814bde649119b58ee3282ffdbee58f9278d9f3 - languageName: node - linkType: hard - -"mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -22379,7 +20433,7 @@ __metadata: languageName: node linkType: hard -"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": +"mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" checksum: 034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 @@ -22451,20 +20505,20 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:~0.0.8": - version: 1.2.6 - resolution: "minimist@npm:1.2.6" - checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb - languageName: node - linkType: hard - -"minimist@npm:^1.2.8": +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 languageName: node linkType: hard +"minimist@npm:~0.0.8": + version: 0.0.10 + resolution: "minimist@npm:0.0.10" + checksum: f7b2cb17af165d042bb3d2803f5e6c38d137f0c36a62230fdb643058c25b56749d2c335b17d4de0b0f08f19cb868cac40df207ff7a4c59fd0771e8762e9b783c + languageName: node + linkType: hard + "minipass-collect@npm:^1.0.2": version: 1.0.2 resolution: "minipass-collect@npm:1.0.2" @@ -22474,6 +20528,15 @@ __metadata: languageName: node linkType: hard +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + "minipass-fetch@npm:^1.3.2": version: 1.4.1 resolution: "minipass-fetch@npm:1.4.1" @@ -22489,6 +20552,21 @@ __metadata: languageName: node linkType: hard +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + languageName: node + linkType: hard + "minipass-flush@npm:^1.0.5": version: 1.0.5 resolution: "minipass-flush@npm:1.0.5" @@ -22517,15 +20595,29 @@ __metadata: linkType: hard "minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3": - version: 3.1.6 - resolution: "minipass@npm:3.1.6" + version: 3.3.6 + resolution: "minipass@npm:3.3.6" dependencies: yallist: ^4.0.0 - checksum: 57a04041413a3531a65062452cb5175f93383ef245d6f4a2961d34386eb9aa8ac11ac7f16f791f5e8bbaf1dfb1ef01596870c88e8822215db57aa591a5bb0a77 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 languageName: node linkType: hard -"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1": +"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" dependencies: @@ -22566,13 +20658,13 @@ __metadata: linkType: hard "mkdirp@npm:^0.5.2": - version: 0.5.5 - resolution: "mkdirp@npm:0.5.5" + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" dependencies: - minimist: ^1.2.5 + minimist: ^1.2.6 bin: mkdirp: bin/cmd.js - checksum: 3bce20ea525f9477befe458ab85284b0b66c8dc3812f94155af07c827175948cdd8114852ac6c6d82009b13c1048c37f6d98743eb019651ee25c39acc8aabe7d + checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 languageName: node linkType: hard @@ -22614,17 +20706,17 @@ __metadata: languageName: node linkType: hard -"mock-socket@npm:^9.1.0": - version: 9.1.0 - resolution: "mock-socket@npm:9.1.0" - checksum: 19b16017da9810bbdcc2bc8e7e2b3ff0c7aa57d0f1edf5ab354e468457c1bace8d3d15c885123a614aa9cf916f6b40de5075b94f56b314a53a0ed2fbdff02e14 +"mock-socket@npm:^9.3.0": + version: 9.3.1 + resolution: "mock-socket@npm:9.3.1" + checksum: cb2dde4fc5dde280dd5ccb78eaaa223382ee16437f46b86558017655584ad08c22e733bde2dd5cc86927def506b6caeb0147e3167b9a62d70d5cf19d44103853 languageName: node linkType: hard "moment@npm:^2.15.1, moment@npm:^2.24.0, moment@npm:^2.29.1": - version: 2.29.4 - resolution: "moment@npm:2.29.4" - checksum: 0ec3f9c2bcba38dc2451b1daed5daded747f17610b92427bebe1d08d48d8b7bdd8d9197500b072d14e326dd0ccf3e326b9e3d07c5895d3d49e39b6803b76e80e + version: 2.30.1 + resolution: "moment@npm:2.30.1" + checksum: 859236bab1e88c3e5802afcf797fc801acdbd0ee509d34ea3df6eea21eb6bcc2abd4ae4e4e64aa7c986aa6cba563c6e62806218e6412a765010712e5fa121ba6 languageName: node linkType: hard @@ -22674,10 +20766,10 @@ __metadata: languageName: node linkType: hard -"mrmime@npm:^1.0.0": - version: 1.0.0 - resolution: "mrmime@npm:1.0.0" - checksum: 2c72a40942af7c53bc97d1e9e9c5cb0e6541d18f736811c3a1b46fa2a2b2362480d687daa8ae8372523acaacd82426a4f7ce34b0bf1825ea83b3983e8cb91afd +"mrmime@npm:^2.0.0": + version: 2.0.0 + resolution: "mrmime@npm:2.0.0" + checksum: f6fe11ec667c3d96f1ce5fd41184ed491d5f0a5f4045e82446a471ccda5f84c7f7610dff61d378b73d964f73a320bd7f89788f9e6b9403e32cc4be28ba99f569 languageName: node linkType: hard @@ -22703,11 +20795,11 @@ __metadata: linkType: hard "msal@npm:^1.4.4": - version: 1.4.15 - resolution: "msal@npm:1.4.15" + version: 1.4.18 + resolution: "msal@npm:1.4.18" dependencies: tslib: ^1.9.3 - checksum: a83839f1ac41a419e68e830b93ccb86356010a3a41ebb6e771c6a1064a796bb475a87c0f1e68b404fbc6a645c09ae87f82e65ed9968be9a00f1fe983421c4579 + checksum: 113a3ddb9e1d8fa3d356bd76e6ac541ec590377ed527e9e451a6b95aa81eeb07d5019fb6b5d8116f5bfd2d60bdb4e6dd104871786d5d6fb44db8333b9ae39bec languageName: node linkType: hard @@ -22782,11 +20874,11 @@ __metadata: linkType: hard "nan@npm:^2.12.1": - version: 2.15.0 - resolution: "nan@npm:2.15.0" + version: 2.19.0 + resolution: "nan@npm:2.19.0" dependencies: node-gyp: latest - checksum: 33e1bb4dfca447fe37d4bb5889be55de154828632c8d38646db67293a21afd61ed9909cdf1b886214a64707d935926c4e60e2b09de9edfc2ad58de31d6ce8f39 + checksum: 29a894a003c1954c250d690768c30e69cd91017e2e5eb21b294380f7cace425559508f5ffe3e329a751307140b0bd02f83af040740fa4def1a3869be6af39600 languageName: node linkType: hard @@ -22797,21 +20889,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.1.3, nanoid@npm:^3.1.30": - version: 3.2.0 - resolution: "nanoid@npm:3.2.0" - bin: - nanoid: bin/nanoid.cjs - checksum: 3d1d5a69fea84e538057cf64106e713931c4ef32af344068ecff153ff91252f39b0f2b472e09b0dfff43ac3cf520c92938d90e6455121fe93976e23660f4fccc - languageName: node - linkType: hard - -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" +"nanoid@npm:^3.1.3, nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -22834,6 +20917,13 @@ __metadata: languageName: node linkType: hard +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -22850,14 +20940,7 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:0.6.2, negotiator@npm:^0.6.2": - version: 0.6.2 - resolution: "negotiator@npm:0.6.2" - checksum: dfddaff6c06792f1c4c3809e29a427b8daef8cd437c83b08dd51d7ee11bbd1c29d9512d66b801144d6c98e910ffd8723f2432e0cbf8b18d41d2a09599c975ab3 - languageName: node - linkType: hard - -"negotiator@npm:0.6.3": +"negotiator@npm:0.6.3, negotiator@npm:^0.6.2, negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 @@ -22871,10 +20954,10 @@ __metadata: languageName: node linkType: hard -"next-tick@npm:~1.0.0": - version: 1.0.0 - resolution: "next-tick@npm:1.0.0" - checksum: 83fcb3d4f8d9380210b1c2b8a610463602d80283f0c0c8571c1688e1ad6cbf3a16b345f5bb7212617d4898bedcfa10dff327dc09ec20a112a5bf43a0271375fb +"next-tick@npm:^1.1.0": + version: 1.1.0 + resolution: "next-tick@npm:1.1.0" + checksum: 83b5cf36027a53ee6d8b7f9c0782f2ba87f4858d977342bfc3c20c21629290a2111f8374d13a81221179603ffc4364f38374b5655d17b6a8f8a8c77bdea4fe8b languageName: node linkType: hard @@ -22912,7 +20995,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:2.6.7, node-fetch@npm:^2.1.2, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.5": +"node-fetch@npm:2.6.7": version: 2.6.7 resolution: "node-fetch@npm:2.6.7" dependencies: @@ -22926,25 +21009,49 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^1.0.1": + version: 1.7.3 + resolution: "node-fetch@npm:1.7.3" + dependencies: + encoding: ^0.1.11 + is-stream: ^1.0.1 + checksum: 3bb0528c05d541316ebe52770d71ee25a6dce334df4231fd55df41a644143e07f068637488c18a5b0c43f05041dbd3346752f9e19b50df50569a802484544d5b + languageName: node + linkType: hard + +"node-fetch@npm:^2.1.2, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 + languageName: node + linkType: hard + "node-forge@npm:^0.10.0": - version: 1.3.0 - resolution: "node-forge@npm:1.3.0" - checksum: 3d8124168dd82006fafbb079f40a529afa0de5bf4d77e6a5a471877e9d39bece31fdc8339e8aee30d5480dc79ffcd1059cfcb21983d350dd3f2a9f226db6ca85 + version: 0.10.0 + resolution: "node-forge@npm:0.10.0" + checksum: 5aa6dc9922e424a20ef101d2f517418e2bc9cfc0255dd22e0701c0fad1568445f510ee67f6f3fcdf085812c4ca1b847b8ba45683b34776828e41f5c1794e42e1 languageName: node linkType: hard "node-gyp-build@npm:^4.3.0": - version: 4.3.0 - resolution: "node-gyp-build@npm:4.3.0" + version: 4.8.0 + resolution: "node-gyp-build@npm:4.8.0" bin: node-gyp-build: bin.js node-gyp-build-optional: optional.js node-gyp-build-test: build-test.js - checksum: 1ecab16d9f275174d516e223f60f65ebe07540347d5c04a6a7d6921060b7f2e3af4f19463d9d1dcedc452e275c2ae71354a99405e55ebd5b655bb2f38025c728 + checksum: b82a56f866034b559dd3ed1ad04f55b04ae381b22ec2affe74b488d1582473ca6e7f85fccf52da085812d3de2b0bf23109e752a57709ac7b9963951c710fea40 languageName: node linkType: hard -"node-gyp@npm:^8.0.0, node-gyp@npm:latest": +"node-gyp@npm:^8.0.0": version: 8.4.1 resolution: "node-gyp@npm:8.4.1" dependencies: @@ -22964,6 +21071,26 @@ __metadata: languageName: node linkType: hard +"node-gyp@npm:latest": + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 + graceful-fs: ^4.2.6 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^3.0.0 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^4.0.0 + bin: + node-gyp: bin/node-gyp.js + checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f + languageName: node + linkType: hard + "node-int64@npm:^0.4.0": version: 0.4.0 resolution: "node-int64@npm:0.4.0" @@ -23002,30 +21129,30 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.1": - version: 2.0.1 - resolution: "node-releases@npm:2.0.1" - checksum: b20dd8d4bced11f75060f0387e05e76b9dc4a0451f7bb3516eade6f50499ea7768ba95d8a60d520c193402df1e58cb3fe301510cc1c1ad68949c3d57b5149866 +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 languageName: node linkType: hard "nodemon@npm:^2.0.3": - version: 2.0.15 - resolution: "nodemon@npm:2.0.15" + version: 2.0.22 + resolution: "nodemon@npm:2.0.22" dependencies: chokidar: ^3.5.2 debug: ^3.2.7 ignore-by-default: ^1.0.1 - minimatch: ^3.0.4 + minimatch: ^3.1.2 pstree.remy: ^1.1.8 semver: ^5.7.1 + simple-update-notifier: ^1.0.7 supports-color: ^5.5.0 touch: ^3.1.0 undefsafe: ^2.0.5 - update-notifier: ^5.1.0 bin: nodemon: bin/nodemon.js - checksum: 0569b09b713fdcc76f06734d7cc106950e69e02069cbf44bda3fae8d266926bdfa003aeddd22f8fcdf46ea6ff51ca64f5528f8006536e79820a26e648ef346cf + checksum: 9c987e139748f5b5c480c6c9080bdc97304ee7d29172b7b3da1a7db590b1323ad57b96346304e9b522b0e445c336dc393ccd3f9f45c73b20d476d2347890dcd0 languageName: node linkType: hard @@ -23050,6 +21177,17 @@ __metadata: languageName: node linkType: hard +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" + dependencies: + abbrev: ^2.0.0 + bin: + nopt: bin/nopt.js + checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 + languageName: node + linkType: hard + "nopt@npm:~1.0.10": version: 1.0.10 resolution: "nopt@npm:1.0.10" @@ -23138,7 +21276,7 @@ __metadata: languageName: node linkType: hard -"normalize-url@npm:^4.1.0, normalize-url@npm:^4.5.1": +"normalize-url@npm:^4.5.1": version: 4.5.1 resolution: "normalize-url@npm:4.5.1" checksum: 9a9dee01df02ad23e171171893e56e22d752f7cff86fb96aafeae074819b572ea655b60f8302e2d85dbb834dc885c972cc1c573892fea24df46b2765065dd05a @@ -23195,11 +21333,11 @@ __metadata: linkType: hard "npm-run-path@npm:^5.1.0": - version: 5.1.0 - resolution: "npm-run-path@npm:5.1.0" + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" dependencies: path-key: ^4.0.0 - checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 + checksum: ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 languageName: node linkType: hard @@ -23216,23 +21354,23 @@ __metadata: linkType: hard "npmlog@npm:^6.0.0": - version: 6.0.0 - resolution: "npmlog@npm:6.0.0" + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" dependencies: - are-we-there-yet: ^2.0.0 + are-we-there-yet: ^3.0.0 console-control-strings: ^1.1.0 - gauge: ^4.0.0 + gauge: ^4.0.3 set-blocking: ^2.0.0 - checksum: 33d8a7fe3d63bf83b16655b6588ae7ba10b5f37b067a661e7cab6508660d7c3204ae716ee2c5ce4eb9626fd1489cf2fa7645d789bc3b704f8c3ccb04a532a50b + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a languageName: node linkType: hard "nth-check@npm:^2.0.1": - version: 2.0.1 - resolution: "nth-check@npm:2.0.1" + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" dependencies: boolbase: ^1.0.0 - checksum: 5386d035c48438ff304fe687704d93886397349d1bed136de97aeae464caba10e8ffac55a04b215b86b3bc8897f33e0a5aa1045a9d8b2f251ae61b2a3ad3e450 + checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 languageName: node linkType: hard @@ -23275,20 +21413,6 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.11.0, object-inspect@npm:^1.9.0": - version: 1.12.0 - resolution: "object-inspect@npm:1.12.0" - checksum: 2b36d4001a9c921c6b342e2965734519c9c58c355822243c3207fbf0aac271f8d44d30d2d570d450b2cc6f0f00b72bcdba515c37827d2560e5f22b1899a31cf4 - languageName: node - linkType: hard - -"object-inspect@npm:^1.12.0": - version: 1.12.2 - resolution: "object-inspect@npm:1.12.2" - checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 - languageName: node - linkType: hard - "object-inspect@npm:^1.13.1": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" @@ -23296,17 +21420,17 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.0.1": - version: 1.1.5 - resolution: "object-is@npm:1.1.5" +"object-is@npm:^1.1.5": + version: 1.1.6 + resolution: "object-is@npm:1.1.6" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe + call-bind: ^1.0.7 + define-properties: ^1.2.1 + checksum: 3ea22759967e6f2380a2cbbd0f737b42dc9ddb2dfefdb159a1b927fea57335e1b058b564bfa94417db8ad58cddab33621a035de6f5e5ad56d89f2dd03e66c6a1 languageName: node linkType: hard -"object-keys@npm:^1.0.12, object-keys@npm:^1.1.1": +"object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a @@ -23329,19 +21453,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.0, object.assign@npm:^4.1.2": - version: 4.1.2 - resolution: "object.assign@npm:4.1.2" - dependencies: - call-bind: ^1.0.0 - define-properties: ^1.1.3 - has-symbols: ^1.0.1 - object-keys: ^1.1.1 - checksum: d621d832ed7b16ac74027adb87196804a500d80d9aca536fccb7ba48d33a7e9306a75f94c1d29cbfa324bc091bfc530bc24789568efdaee6a47fcfa298993814 - languageName: node - linkType: hard - -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": +"object.assign@npm:^4.1.0, object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -23375,14 +21487,16 @@ __metadata: languageName: node linkType: hard -"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.0, object.getownpropertydescriptors@npm:^2.1.1": - version: 2.1.3 - resolution: "object.getownpropertydescriptors@npm:2.1.3" +"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.0, object.getownpropertydescriptors@npm:^2.1.6": + version: 2.1.7 + resolution: "object.getownpropertydescriptors@npm:2.1.7" dependencies: + array.prototype.reduce: ^1.0.6 call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: 1467873456fd367a0eb91350caff359a8f05ceb069b4535a1846aa1f74f477a49ae704f6c89c0c14cc0ae1518ee3a0aa57c7f733a8e7b2b06b34a818e9593d2f + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + safe-array-concat: ^1.0.0 + checksum: 8e7ae1d522a3874d2d23a3d0fb75828cbcee60958b65c2ad8e58ce227f4efba8cc2b59c7431a0fd48b20d9e04ec075bc0e0d694b1d2c2296e534daf558beb10b languageName: node linkType: hard @@ -23418,18 +21532,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.0": - version: 1.1.5 - resolution: "object.values@npm:1.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: 0f17e99741ebfbd0fa55ce942f6184743d3070c61bd39221afc929c8422c4907618c8da694c6915bc04a83ab3224260c779ba37fc07bb668bdc5f33b66a902a4 - languageName: node - linkType: hard - -"object.values@npm:^1.1.6, object.values@npm:^1.1.7": +"object.values@npm:^1.1.0, object.values@npm:^1.1.6, object.values@npm:^1.1.7": version: 1.1.7 resolution: "object.values@npm:1.1.7" dependencies: @@ -23641,13 +21744,6 @@ __metadata: languageName: node linkType: hard -"p-cancelable@npm:^1.0.0": - version: 1.1.0 - resolution: "p-cancelable@npm:1.1.0" - checksum: 2db3814fef6d9025787f30afaee4496a8857a28be3c5706432cbad76c688a6db1874308f48e364a42f5317f5e41e8e7b4f2ff5c8ff2256dbb6264bc361704ece - languageName: node - linkType: hard - "p-cancelable@npm:^2.0.0": version: 2.1.1 resolution: "p-cancelable@npm:2.1.1" @@ -23844,18 +21940,6 @@ __metadata: languageName: node linkType: hard -"package-json@npm:^6.3.0": - version: 6.5.0 - resolution: "package-json@npm:6.5.0" - dependencies: - got: ^9.6.0 - registry-auth-token: ^4.0.0 - registry-url: ^5.0.0 - semver: ^6.2.0 - checksum: cc9f890d3667d7610e6184decf543278b87f657d1ace0deb4a9c9155feca738ef88f660c82200763d3348010f4e42e9c7adc91e96ab0f86a770955995b5351e2 - languageName: node - linkType: hard - "paged-request@npm:^2.0.1": version: 2.0.2 resolution: "paged-request@npm:2.0.2" @@ -23897,16 +21981,17 @@ __metadata: languageName: node linkType: hard -"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5": - version: 5.1.6 - resolution: "parse-asn1@npm:5.1.6" +"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7": + version: 5.1.7 + resolution: "parse-asn1@npm:5.1.7" dependencies: - asn1.js: ^5.2.0 - browserify-aes: ^1.0.0 - evp_bytestokey: ^1.0.0 - pbkdf2: ^3.0.3 - safe-buffer: ^5.1.1 - checksum: 9243311d1f88089bc9f2158972aa38d1abd5452f7b7cabf84954ed766048fe574d434d82c6f5a39b988683e96fb84cd933071dda38927e03469dc8c8d14463c7 + asn1.js: ^4.10.1 + browserify-aes: ^1.2.0 + evp_bytestokey: ^1.0.3 + hash-base: ~3.0 + pbkdf2: ^3.1.2 + safe-buffer: ^5.2.1 + checksum: 93c7194c1ed63a13e0b212d854b5213ad1aca0ace41c66b311e97cca0519cf9240f79435a0306a3b412c257f0ea3f1953fd0d9549419a0952c9e995ab361fd6c languageName: node linkType: hard @@ -23992,12 +22077,12 @@ __metadata: linkType: hard "password-prompt@npm:^1.0.7": - version: 1.1.2 - resolution: "password-prompt@npm:1.1.2" + version: 1.1.3 + resolution: "password-prompt@npm:1.1.3" dependencies: - ansi-escapes: ^3.1.0 - cross-spawn: ^6.0.5 - checksum: 4763ec1b48cb311d60df37186e31f1b85ec3249a21cc17bbf8407d66c5b55cffe34b4eb529ebd044ed4ced7f3ea3fad744fe15e30a5de31645433e94cd444266 + ansi-escapes: ^4.3.2 + cross-spawn: ^7.0.3 + checksum: 9a5fdbd7360db896809704c141acfe9258450a9982c4c177b82a1e6c69d204800cdab6064abac6736bd7d31142c80108deedf4484146594747cb3ce776816e97 languageName: node linkType: hard @@ -24008,6 +22093,13 @@ __metadata: languageName: node linkType: hard +"path-dirname@npm:^1.0.0": + version: 1.0.2 + resolution: "path-dirname@npm:1.0.2" + checksum: 0d2f6604ae05a252a0025318685f290e2764ecf9c5436f203cdacfc8c0b17c24cdedaa449d766beb94ab88cc7fc70a09ec21e7933f31abc2b719180883e5e33f + languageName: node + linkType: hard + "path-exists@npm:^2.0.0": version: 2.1.0 resolution: "path-exists@npm:2.1.0" @@ -24080,10 +22172,20 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + "path-to-regexp@npm:*, path-to-regexp@npm:^6.1.0": - version: 6.2.0 - resolution: "path-to-regexp@npm:6.2.0" - checksum: a6aca74d2d6e2e7594d812f653cf85e9cb5054d3a8d80f099722a44ef6ad22639b02078e5ea83d11db16321c3e4359e3f1ab0274fa78dad0754a6e53f630b0fc + version: 6.2.1 + resolution: "path-to-regexp@npm:6.2.1" + checksum: f0227af8284ea13300f4293ba111e3635142f976d4197f14d5ad1f124aebd9118783dd2e5f1fe16f7273743cc3dbeddfb7493f237bb27c10fdae07020cc9b698 languageName: node linkType: hard @@ -24110,6 +22212,13 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 + languageName: node + linkType: hard + "path@npm:^0.12.7": version: 0.12.7 resolution: "path@npm:0.12.7" @@ -24127,7 +22236,7 @@ __metadata: languageName: node linkType: hard -"pbkdf2@npm:^3.0.3": +"pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" dependencies: @@ -24239,10 +22348,10 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.4": - version: 4.0.4 - resolution: "pirates@npm:4.0.4" - checksum: 6b7187d526fd025a2b91e8fd289c78d88c4adc3ea947b9facbe9cb300a896b0ec00f3e77b36a043001695312a8debbf714453495283bd8a4eaad3bc0c38df425 +"pirates@npm:^4.0.4, pirates@npm:^4.0.6": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 languageName: node linkType: hard @@ -24283,12 +22392,13 @@ __metadata: linkType: hard "plist@npm:^3.0.6": - version: 3.0.6 - resolution: "plist@npm:3.0.6" + version: 3.1.0 + resolution: "plist@npm:3.1.0" dependencies: + "@xmldom/xmldom": ^0.8.8 base64-js: ^1.5.1 xmlbuilder: ^15.1.1 - checksum: e21390fab8a3c388f8f51b76c0aa187242a40537119ce865d8637630e7d7df79b21f841ec6a4668e7c68d409a6f584d696619099a6125d28011561639c0823b8 + checksum: c8ea013da8646d4c50dff82f9be39488054621cc229957621bb00add42b5d4ce3657cf58d4b10c50f7dea1a81118f825838f838baeb4e6f17fab453ecf91d424 languageName: node linkType: hard @@ -24326,18 +22436,7 @@ __metadata: languageName: node linkType: hard -"portfinder@npm:^1.0.26": - version: 1.0.28 - resolution: "portfinder@npm:1.0.28" - dependencies: - async: ^2.6.2 - debug: ^3.1.1 - mkdirp: ^0.5.5 - checksum: 91fef602f13f8f4c64385d0ad2a36cc9dc6be0b8d10a2628ee2c3c7b9917ab4fefb458815b82cea2abf4b785cd11c9b4e2d917ac6fa06f14b6fa880ca8f8928c - languageName: node - linkType: hard - -"portfinder@npm:^1.0.32": +"portfinder@npm:^1.0.26, portfinder@npm:^1.0.32": version: 1.0.32 resolution: "portfinder@npm:1.0.32" dependencies: @@ -25091,12 +23190,12 @@ __metadata: linkType: hard "postcss-selector-parser@npm:^6.0.0, postcss-selector-parser@npm:^6.0.2": - version: 6.0.9 - resolution: "postcss-selector-parser@npm:6.0.9" + version: 6.0.15 + resolution: "postcss-selector-parser@npm:6.0.15" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: f8161ab4d3e5c76b8467189c6d164ba0f6b6e74677435f29e34caa1df01e052b582b4ae4f7468b2243c4befdd8bdcdb7685542d1b2fca8deae21b3e849c78802 + checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 languageName: node linkType: hard @@ -25157,25 +23256,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.0.2": - version: 8.4.5 - resolution: "postcss@npm:8.4.5" - dependencies: - nanoid: ^3.1.30 - picocolors: ^1.0.0 - source-map-js: ^1.0.1 - checksum: b78abdd89c10f7b48f4bdcd376104a19d6e9c7495ab521729bdb3df315af6c211360e9f06887ad3bc0ab0f61a04b91d68ea11462997c79cced58b9ccd66fac07 - languageName: node - linkType: hard - -"postcss@npm:^8.3.11": - version: 8.4.16 - resolution: "postcss@npm:8.4.16" +"postcss@npm:^8.0.2, postcss@npm:^8.3.11": + version: 8.4.35 + resolution: "postcss@npm:8.4.35" dependencies: - nanoid: ^3.3.4 + nanoid: ^3.3.7 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 10eee25efd77868036403858577da0cefaf2e0905feeaba5770d5438ccdddba3d01cba8063e96b8aac4c6daa0ed413dd5ae0554a433a3c4db38df1d134cffc1f + checksum: cf3c3124d3912a507603f6d9a49b3783f741075e9aa73eb592a6dd9194f9edab9d20a8875d16d137d4f779fe7b6fbd1f5727e39bfd1c3003724980ee4995e1da languageName: node linkType: hard @@ -25254,18 +23342,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.0, pretty-format@npm:^27.4.6": - version: 27.4.6 - resolution: "pretty-format@npm:27.4.6" - dependencies: - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: 5eda32e4e47ddd1a9e8fe9ebef519b217ba403eb8bcb804ba551dfb37f87e674472013fcf78480ab535844fdddcc706fac94511eba349bfb94a138a02d1a7a59 - languageName: node - linkType: hard - -"pretty-format@npm:^29.7.0": +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" dependencies: @@ -25276,12 +23353,10 @@ __metadata: languageName: node linkType: hard -"printj@npm:~1.1.0": - version: 1.1.2 - resolution: "printj@npm:1.1.2" - bin: - printj: ./bin/printj.njs - checksum: 1c0c66844545415e339356ad62009cdc467819817b1e0341aba428087a1414d46b84089edb4e77ef24705829f8aae6349724b9c7bd89d8690302b2de7a89b315 +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 languageName: node linkType: hard @@ -25332,6 +23407,15 @@ __metadata: languageName: node linkType: hard +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: ~2.0.3 + checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1 + languageName: node + linkType: hard + "promisify-function@npm:^1.3.2": version: 1.3.2 resolution: "promisify-function@npm:1.3.2" @@ -25402,10 +23486,10 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28": - version: 1.8.0 - resolution: "psl@npm:1.8.0" - checksum: 6150048ed2da3f919478bee8a82f3828303bc0fc730fb015a48f83c9977682c7b28c60ab01425a72d82a2891a1681627aa530a991d50c086b48a3be27744bde7 +"psl@npm:^1.1.28, psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d languageName: node linkType: hard @@ -25471,14 +23555,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:1.3.2": - version: 1.3.2 - resolution: "punycode@npm:1.3.2" - checksum: b8807fd594b1db33335692d1f03e8beeddde6fda7fbb4a2e32925d88d20a3aa4cd8dcc0c109ccaccbd2ba761c208dfaaada83007087ea8bfb0129c9ef1b99ed6 - languageName: node - linkType: hard - -"punycode@npm:^1.2.4": +"punycode@npm:^1.2.4, punycode@npm:^1.4.1": version: 1.4.1 resolution: "punycode@npm:1.4.1" checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 @@ -25486,18 +23563,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 - languageName: node - linkType: hard - -"pupa@npm:^2.1.1": - version: 2.1.1 - resolution: "pupa@npm:2.1.1" - dependencies: - escape-goat: ^2.0.0 - checksum: 49529e50372ffdb0cccf0efa0f3b3cb0a2c77805d0d9cc2725bd2a0f6bb414631e61c93a38561b26be1259550b7bb6c2cb92315aa09c8bf93f3bdcb49f2b2fb7 + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard @@ -25531,6 +23599,24 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.11.2": + version: 6.12.0 + resolution: "qs@npm:6.12.0" + dependencies: + side-channel: ^1.0.6 + checksum: ba007fb2488880b9c6c3df356fe6888b9c1f4c5127552edac214486cfe83a332de09a5c40d490d79bb27bef977ba1085a8497512ff52eaac72e26564f77ce908 + languageName: node + linkType: hard + +"qs@npm:~6.10.3": + version: 6.10.4 + resolution: "qs@npm:6.10.4" + dependencies: + side-channel: ^1.0.4 + checksum: 31e4fedd759d01eae52dde6692abab175f9af3e639993c5caaa513a2a3607b34d8058d3ae52ceeccf37c3025f22ed5e90e9ddd6c2537e19c0562ddd10dc5b1eb + languageName: node + linkType: hard + "qs@npm:~6.5.2": version: 6.5.3 resolution: "qs@npm:6.5.3" @@ -25578,13 +23664,6 @@ __metadata: languageName: node linkType: hard -"querystring@npm:0.2.0": - version: 0.2.0 - resolution: "querystring@npm:0.2.0" - checksum: 8258d6734f19be27e93f601758858c299bdebe71147909e367101ba459b95446fbe5b975bf9beb76390156a592b6f4ac3a68b6087cea165c259705b8b4e56a69 - languageName: node - linkType: hard - "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -25622,7 +23701,7 @@ __metadata: languageName: node linkType: hard -"ramda@npm:^0.27.1, ramda@npm:~0.27.1": +"ramda@npm:~0.27.1": version: 0.27.2 resolution: "ramda@npm:0.27.2" checksum: 28d6735dd1eea1a796c56cf6111f3673c6105bbd736e521cdd7826c46a18eeff337c2dba4668f6eed990d539b9961fd6db19aa46ccc1530ba67a396c0a9f580d @@ -25674,19 +23753,19 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.5.1": - version: 2.5.1 - resolution: "raw-body@npm:2.5.1" +"raw-body@npm:2.5.2": + version: 2.5.2 + resolution: "raw-body@npm:2.5.2" dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - checksum: 5362adff1575d691bb3f75998803a0ffed8c64eabeaa06e54b4ada25a0cd1b2ae7f4f5ec46565d1bec337e08b5ac90c76eaa0758de6f72a633f025d754dec29e + checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676 languageName: node linkType: hard -"rc@npm:^1.0.1, rc@npm:^1.1.6, rc@npm:^1.2.8": +"rc@npm:^1.0.1, rc@npm:^1.1.6": version: 1.2.8 resolution: "rc@npm:1.2.8" dependencies: @@ -25701,14 +23780,12 @@ __metadata: linkType: hard "re-resizable@npm:^6.9.0": - version: 6.9.1 - resolution: "re-resizable@npm:6.9.1" - dependencies: - fast-memoize: ^2.5.1 + version: 6.9.11 + resolution: "re-resizable@npm:6.9.11" peerDependencies: - react: ^16.13.1 || ^17.0.0 - react-dom: ^16.13.1 || ^17.0.0 - checksum: b164f6b956dc1f45b6c2603f0f402b04df8306017c59d68a9a71a2c857049a314a01c3fb7aedba66d8c60c4ccf9aa182c345276825eed745e5b847b6f104d78e + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + checksum: 04be62e2985caff8ff082664b9b66d7c49df383a9560e691f32f583cba75ce51077be8b718c5cda5a1fa07e701337102cbd9ff5b03a58541d9092f25753f47f7 languageName: node linkType: hard @@ -25726,8 +23803,8 @@ __metadata: linkType: hard "react-beautiful-dnd@npm:^13.0.0": - version: 13.1.0 - resolution: "react-beautiful-dnd@npm:13.1.0" + version: 13.1.1 + resolution: "react-beautiful-dnd@npm:13.1.1" dependencies: "@babel/runtime": ^7.9.2 css-box-model: ^1.2.0 @@ -25737,9 +23814,9 @@ __metadata: redux: ^4.0.4 use-memo-one: ^1.1.1 peerDependencies: - react: ^16.8.5 || ^17.0.0 - react-dom: ^16.8.5 || ^17.0.0 - checksum: 12b7e9fbe872783e0f899e03f2e80deee085aa1e2cec3d556c1d06bdbafbda7a3c9cf7a3a6b26544617eb2e50d0e3518001bd8300370704bf5a8c9c21f54ec90 + react: ^16.8.5 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0 + checksum: 5f90f7c0ab77a14dfcd496cbd94bbde457612f380c6fc815f3bba7b52effd75132948fcaa661a902a184bb1e6ae5896dcf5b0c77c4ddf809a2c65288f3eed5a7 languageName: node linkType: hard @@ -25824,26 +23901,27 @@ __metadata: linkType: hard "react-error-overlay@npm:^6.0.3": - version: 6.0.10 - resolution: "react-error-overlay@npm:6.0.10" - checksum: e7384f086a0162eecac8e081fe3c79b32f4ac8690c56bde35ab6b6380d10e6c8375bbb689a450902b6615261fcf6c95ea016fc0b200934667089ca83536bc4a7 + version: 6.0.11 + resolution: "react-error-overlay@npm:6.0.11" + checksum: ce7b44c38fadba9cedd7c095cf39192e632daeccf1d0747292ed524f17dcb056d16bc197ddee5723f9dd888f0b9b19c3b486c430319e30504289b9296f2d2c42 languageName: node linkType: hard -"react-film@npm:3.1.0": - version: 3.1.0 - resolution: "react-film@npm:3.1.0" +"react-film@npm:3.1.1-main.df870ea": + version: 3.1.1-main.df870ea + resolution: "react-film@npm:3.1.1-main.df870ea" dependencies: - "@emotion/css": 11.1.3 - classnames: 2.3.1 - core-js: 3.12.1 + "@babel/runtime-corejs3": 7.20.13 + "@emotion/css": 11.10.6 + classnames: 2.3.2 + core-js: 3.28.0 math-random: 2.0.1 - memoize-one: 5.2.1 - prop-types: 15.7.2 + memoize-one: 6.0.0 + prop-types: 15.8.1 peerDependencies: react: ">= 16.8.6" react-dom: ">= 16.8.6" - checksum: 7097ffcf4dc78cf00f046e024592563706099d0afb7154b3dd3182a95619df2988834e7e14139d07de5381159cbf15ddb2d906bcd4fa20bea9d7e51b5319d02c + checksum: b5e632c4a3165de663c3c38a58dda6ed7be09938d4db3ce1bc00b9465a06c8376d48aef55a493e200062f46fa43f1b477207b91f676949d62a76508e0e4dcf22 languageName: node linkType: hard @@ -25922,9 +24000,9 @@ __metadata: languageName: node linkType: hard -"react-redux@npm:7.2.8": - version: 7.2.8 - resolution: "react-redux@npm:7.2.8" +"react-redux@npm:7.2.9, react-redux@npm:^7.2.0": + version: 7.2.9 + resolution: "react-redux@npm:7.2.9" dependencies: "@babel/runtime": ^7.15.4 "@types/react-redux": ^7.1.20 @@ -25939,28 +24017,7 @@ __metadata: optional: true react-native: optional: true - checksum: ecf1933e91013f2d41bfc781515b536bf81eb1f70ff228607841094c8330fe77d522372b359687e51c0b52b9888dba73db9ac0486aace1896ab9eb9daec102d5 - languageName: node - linkType: hard - -"react-redux@npm:^7.2.0": - version: 7.2.6 - resolution: "react-redux@npm:7.2.6" - dependencies: - "@babel/runtime": ^7.15.4 - "@types/react-redux": ^7.1.20 - hoist-non-react-statics: ^3.3.2 - loose-envify: ^1.4.0 - prop-types: ^15.7.2 - react-is: ^17.0.2 - peerDependencies: - react: ^16.8.3 || ^17 - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 0bf142ce0d0b80aef955650fd5e9489fca32d94f19ee23893b332f1b01ceee7bd3623337c942cbda642667d1dc9de5ac869c3c1946afa6cf2046407b57d24741 + checksum: 369a2bdcf87915659af9e5c55abfd9f52a84e43e0d12dcc108ed17dbe6933558b7b7fc12caa9c10c1a10a8be7df89454b6c96989d8573fedec1a772c94a1f145 languageName: node linkType: hard @@ -26107,9 +24164,9 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" +"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" dependencies: core-util-is: ~1.0.0 inherits: ~2.0.3 @@ -26118,18 +24175,18 @@ __metadata: safe-buffer: ~5.1.1 string_decoder: ~1.1.1 util-deprecate: ~1.0.1 - checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 languageName: node linkType: hard "readable-stream@npm:2 || 3, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d languageName: node linkType: hard @@ -26166,12 +24223,12 @@ __metadata: languageName: node linkType: hard -"readdir-glob@npm:^1.0.0": - version: 1.1.1 - resolution: "readdir-glob@npm:1.1.1" +"readdir-glob@npm:^1.1.2": + version: 1.1.3 + resolution: "readdir-glob@npm:1.1.3" dependencies: - minimatch: ^3.0.4 - checksum: 8dc4ff606aa9ac8f6ac628dfad918aed6514c8b427922928f2ef380a1be106d5b6f1d106af34607955ad504f89f39d83a9b42c5316ed8b96b5f75391e33a6afc + minimatch: ^5.1.0 + checksum: 1dc0f7440ff5d9378b593abe9d42f34ebaf387516615e98ab410cf3a68f840abbf9ff1032d15e0a0dbffa78f9e2c46d4fafdbaac1ca435af2efe3264e3f21874 languageName: node linkType: hard @@ -26265,30 +24322,21 @@ __metadata: languageName: node linkType: hard -"redux-saga@npm:1.2.1": - version: 1.2.1 - resolution: "redux-saga@npm:1.2.1" - dependencies: - "@redux-saga/core": ^1.2.1 - checksum: 4253848b7fbc8864537af41ac291322c037424a4229c94ab659423ffe9312a253bba08139a0c5fcf2d6912dab947b5a175745957630e2737f4b29e97e030f8f3 - languageName: node - linkType: hard - -"redux@npm:4.2.0": - version: 4.2.0 - resolution: "redux@npm:4.2.0" +"redux-saga@npm:1.2.3": + version: 1.2.3 + resolution: "redux-saga@npm:1.2.3" dependencies: - "@babel/runtime": ^7.9.2 - checksum: 75f3955c89b3f18edf5411e5fb482aa2e4f41a416183e8802a6bf6472c4fc3d47675b8b321d147f8af8e0f616436ac507bf5a25f1c4d6180e797b549c7db2c1d + "@redux-saga/core": ^1.2.3 + checksum: 5c70799272cfbc94e046992d04bbe967e9f86ca3a35aa0c1562e6727e85b96b1a5aae68e180fdbbbc58de453dc22b39d99c81d7c604fbda7c45a8b60a729ef9d languageName: node linkType: hard -"redux@npm:^4.0.0, redux@npm:^4.0.4": - version: 4.1.2 - resolution: "redux@npm:4.1.2" +"redux@npm:4.2.1, redux@npm:^4.0.0, redux@npm:^4.0.4": + version: 4.2.1 + resolution: "redux@npm:4.2.1" dependencies: "@babel/runtime": ^7.9.2 - checksum: 6a839cee5bd580c5298d968e9e2302150e961318253819bcd97f9d945a5a409559eacddf6026f4118bb68b681c593d90e8a2c5bbf278f014aff9bf0d2d8fa084 + checksum: f63b9060c3a1d930ae775252bb6e579b42415aee7a23c4114e21a0b4ba7ec12f0ec76936c00f546893f06e139819f0e2855e0d55ebfce34ca9c026241a6950dd languageName: node linkType: hard @@ -26307,15 +24355,6 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.0.1": - version: 10.0.1 - resolution: "regenerate-unicode-properties@npm:10.0.1" - dependencies: - regenerate: ^1.4.2 - checksum: 1b638b7087d8143e5be3e20e2cda197ea0440fa0bc2cc49646b2f50c5a2b1acdc54b21e4215805a5a2dd487c686b2291accd5ad00619534098d2667e76247754 - languageName: node - linkType: hard - "regenerate-unicode-properties@npm:^10.1.0": version: 10.1.1 resolution: "regenerate-unicode-properties@npm:10.1.1" @@ -26325,15 +24364,6 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^9.0.0": - version: 9.0.0 - resolution: "regenerate-unicode-properties@npm:9.0.0" - dependencies: - regenerate: ^1.4.2 - checksum: 62df21c274259a68c6fa1373e5ddb4d6f6374ad72c08dd488b7802880bc1c3b6de716303ec56c9f793a73d01815e9d81f03a8fbe3f32bc0f7fdf8d70d4841b64 - languageName: node - linkType: hard - "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -26355,10 +24385,10 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.4": - version: 0.13.9 - resolution: "regenerator-runtime@npm:0.13.9" - checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e +"regenerator-runtime@npm:^0.13.11, regenerator-runtime@npm:^0.13.4": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 languageName: node linkType: hard @@ -26369,24 +24399,6 @@ __metadata: languageName: node linkType: hard -"regenerator-transform@npm:^0.14.2": - version: 0.14.5 - resolution: "regenerator-transform@npm:0.14.5" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: a467a3b652b4ec26ff964e9c5f1817523a73fc44cb928b8d21ff11aebeac5d10a84d297fe02cea9f282bcec81a0b0d562237da69ef0f40a0160b30a4fa98bc94 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.0": - version: 0.15.0 - resolution: "regenerator-transform@npm:0.15.0" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 86e54849ab1167618d28bb56d214c52a983daf29b0d115c976d79840511420049b6b42c9ebdf187defa8e7129bdd74b6dd266420d0d3868c9fa7f793b5d15d49 - languageName: node - linkType: hard - "regenerator-transform@npm:^0.15.2": version: 0.15.2 resolution: "regenerator-transform@npm:0.15.2" @@ -26407,93 +24419,30 @@ __metadata: linkType: hard "regexp-tree@npm:~0.1.1": - version: 0.1.24 - resolution: "regexp-tree@npm:0.1.24" + version: 0.1.27 + resolution: "regexp-tree@npm:0.1.27" bin: regexp-tree: bin/regexp-tree - checksum: 5807013289d9205288d665e0f8d8cff94843dfd55fdedd1833eb9d9bbd07188a37dfa02942ec5cdc671180037f715148fac1ba6f18fd6be4268e5a8feb49d340 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.2.0": - version: 1.4.1 - resolution: "regexp.prototype.flags@npm:1.4.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 77944a3ea5ae84f391fa80bff9babfedc47eadc9dc38e282b5fd746368fb787deec89c68ce3114195bf6b5782b160280a278b62d41ccc6e125afab1a7f816de8 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.4.3": - version: 1.4.3 - resolution: "regexp.prototype.flags@npm:1.4.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - functions-have-names: ^1.2.2 - checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: ^1.0.6 - define-properties: ^1.2.1 - es-errors: ^1.3.0 - set-function-name: ^2.0.1 - checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 - languageName: node - linkType: hard - -"regexpp@npm:^2.0.1": - version: 2.0.1 - resolution: "regexpp@npm:2.0.1" - checksum: 1f41cf80ac08514c6665812e3dcc0673569431d3285db27053f8b237a758992fb55d6ddfbc264db399ff4f7a7db432900ca3a029daa28a75e0436231872091b1 - languageName: node - linkType: hard - -"regexpu-core@npm:^4.7.1": - version: 4.8.0 - resolution: "regexpu-core@npm:4.8.0" - dependencies: - regenerate: ^1.4.2 - regenerate-unicode-properties: ^9.0.0 - regjsgen: ^0.5.2 - regjsparser: ^0.7.0 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.0.0 - checksum: df92e3e6482409f0a0de162ca1b4e17897e9b0b0687caead6804f04e9b89847e47abbfd0bfc62f52a0b833acf764ea5bdb7b707bb088034824a675ee95d31dec + checksum: 129aebb34dae22d6694ab2ac328be3f99105143737528ab072ef624d599afecbcfae1f5c96a166fa9e5f64fa1ecf30b411c4691e7924c3e11bbaf1712c260c54 languageName: node linkType: hard -"regexpu-core@npm:^5.0.1": - version: 5.0.1 - resolution: "regexpu-core@npm:5.0.1" +"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.0.1 - regjsgen: ^0.6.0 - regjsparser: ^0.8.2 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.0.0 - checksum: 6151a9700dad512fadb5564ad23246d54c880eb9417efa5e5c3658b910c1ff894d622dfd159af2ed527ffd44751bfe98682ae06c717155c254d8e2b4bab62785 + call-bind: ^1.0.6 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + set-function-name: ^2.0.1 + checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 languageName: node linkType: hard -"regexpu-core@npm:^5.1.0": - version: 5.1.0 - resolution: "regexpu-core@npm:5.1.0" - dependencies: - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.0.1 - regjsgen: ^0.6.0 - regjsparser: ^0.8.2 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.0.0 - checksum: 7b4eb8d182d9d10537a220a93138df5bc7eaf4ed53e36b95e8427d33ed8a2b081468f1a15d3e5fcee66517e1df7f5ca180b999e046d060badd97150f2ffe87b2 +"regexpp@npm:^2.0.1": + version: 2.0.1 + resolution: "regexpp@npm:2.0.1" + checksum: 1f41cf80ac08514c6665812e3dcc0673569431d3285db27053f8b237a758992fb55d6ddfbc264db399ff4f7a7db432900ca3a029daa28a75e0436231872091b1 languageName: node linkType: hard @@ -26521,15 +24470,6 @@ __metadata: languageName: node linkType: hard -"registry-auth-token@npm:^4.0.0": - version: 4.2.1 - resolution: "registry-auth-token@npm:4.2.1" - dependencies: - rc: ^1.2.8 - checksum: aa72060b573a50607cfd2dee16d0e51e13ca58b6a80442e74545325dc24d2c38896e6bad229bdcc1fc9759fa81b4066be8693d4d6f45927318e7c793a93e9cd0 - languageName: node - linkType: hard - "registry-info@npm:^1.0.0": version: 1.0.0 resolution: "registry-info@npm:1.0.0" @@ -26551,51 +24491,6 @@ __metadata: languageName: node linkType: hard -"registry-url@npm:^5.0.0": - version: 5.1.0 - resolution: "registry-url@npm:5.1.0" - dependencies: - rc: ^1.2.8 - checksum: bcea86c84a0dbb66467b53187fadebfea79017cddfb4a45cf27530d7275e49082fe9f44301976eb0164c438e395684bcf3dae4819b36ff9d1640d8cc60c73df9 - languageName: node - linkType: hard - -"regjsgen@npm:^0.5.2": - version: 0.5.2 - resolution: "regjsgen@npm:0.5.2" - checksum: 87c83d8488affae2493a823904de1a29a1867a07433c5e1142ad749b5606c5589b305fe35bfcc0972cf5a3b0d66b1f7999009e541be39a5d42c6041c59e2fb52 - languageName: node - linkType: hard - -"regjsgen@npm:^0.6.0": - version: 0.6.0 - resolution: "regjsgen@npm:0.6.0" - checksum: c5158ebd735e75074e41292ade1ff05d85566d205426cc61501e360c450a63baced8512ee3ae238e5c0a0e42969563c7875b08fa69d6f0402daf36bcb3e4d348 - languageName: node - linkType: hard - -"regjsparser@npm:^0.7.0": - version: 0.7.0 - resolution: "regjsparser@npm:0.7.0" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: fefff9adcab47650817d2c492aac774f11a44b824a4a814e466ebc76313e03e79c50d2babde7e04888296f6ec0fd094e3eeeafa8122c60184de92cdb30636a57 - languageName: node - linkType: hard - -"regjsparser@npm:^0.8.2": - version: 0.8.4 - resolution: "regjsparser@npm:0.8.4" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: d069b932491761cda127ce11f6bd2729c3b1b394a35200ec33f1199e937423db28ceb86cf33f0a97c76ecd7c0f8db996476579eaf0d80a1f74c1934f4ca8b27a - languageName: node - linkType: hard - "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -26840,33 +24735,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.3.2, resolve@npm:^1.8.1": - version: 1.21.0 - resolution: "resolve@npm:1.21.0" - dependencies: - is-core-module: ^2.8.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: d7d9092a5c04a048bea16c7e5a2eb605ac3e8363a0cc5644de1fde17d5028e8d5f4343aab1d99bd327b98e91a66ea83e242718150c64dfedcb96e5e7aad6c4f5 - languageName: node - linkType: hard - -"resolve@npm:^1.19.0": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e - languageName: node - linkType: hard - -"resolve@npm:^1.22.4": +"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4, resolve@npm:^1.3.2, resolve@npm:^1.8.1": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -26892,33 +24761,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.8.1#~builtin": - version: 1.21.0 - resolution: "resolve@patch:resolve@npm%3A1.21.0#~builtin::version=1.21.0&hash=07638b" - dependencies: - is-core-module: ^2.8.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: a0a4d1f7409e73190f31f901f8a619960bb3bd4ae38ba3a54c7ea7e1c87758d28a73256bb8d6a35996a903d1bf14f53883f0dcac6c571c063cb8162d813ad26e - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.19.0#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.22.4#~builtin": +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.8.1#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" dependencies: @@ -26944,7 +24787,7 @@ __metadata: languageName: node linkType: hard -"responselike@npm:1.0.2, responselike@npm:^1.0.2": +"responselike@npm:1.0.2": version: 1.0.2 resolution: "responselike@npm:1.0.2" dependencies: @@ -27014,9 +24857,9 @@ __metadata: linkType: hard "rfdc@npm:^1.3.0": - version: 1.3.0 - resolution: "rfdc@npm:1.3.0" - checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + version: 1.3.1 + resolution: "rfdc@npm:1.3.1" + checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 languageName: node linkType: hard @@ -27102,9 +24945,9 @@ __metadata: linkType: hard "rsa-pem-from-mod-exp@npm:^0.8.4": - version: 0.8.4 - resolution: "rsa-pem-from-mod-exp@npm:0.8.4" - checksum: 2ea13191b17983d68a783c7ec149a1e774c657ab933acdd451a82582a075ea0ff0566153a4058d0ba511a26d80841d1a1484eade049dbf72a6f14d1de45491d0 + version: 0.8.6 + resolution: "rsa-pem-from-mod-exp@npm:0.8.6" + checksum: c7bc8376cf0c6d91f01ed3cf1f8b3bbc33bb9f89a53c5037a885f06a443c40a08c85b3c7c1f56a720f2547c78950d5208d480b035bb011685294d5f6a7319a80 languageName: node linkType: hard @@ -27172,16 +25015,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.2.0, rxjs@npm:^7.5.1": - version: 7.5.2 - resolution: "rxjs@npm:7.5.2" - dependencies: - tslib: ^2.1.0 - checksum: daf1fe7289de500b25d822fd96cde3c138c7902e8bf0e6aa12a3e70847a5cabeeb4d677f10e19387e1db44b12c5b1be0ff5c79b8cd63ed6ce891d765e566cf4d - languageName: node - linkType: hard - -"rxjs@npm:^7.8.1": +"rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -27190,15 +25024,15 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.0": - version: 1.1.0 - resolution: "safe-array-concat@npm:1.1.0" +"safe-array-concat@npm:^1.0.0, safe-array-concat@npm:^1.1.0": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" dependencies: - call-bind: ^1.0.5 - get-intrinsic: ^1.2.2 + call-bind: ^1.0.7 + get-intrinsic: ^1.2.4 has-symbols: ^1.0.3 isarray: ^2.0.5 - checksum: 5c71eaa999168ee7474929f1cd3aae80f486353a651a094d9968936692cf90aa065224929a6486dcda66334a27dce4250a83612f9e0fef6dced1a925d3ac7296 + checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 languageName: node linkType: hard @@ -27209,7 +25043,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 @@ -27261,32 +25095,32 @@ __metadata: languageName: node linkType: hard -"sanitize-html@npm:2.3.3": - version: 2.3.3 - resolution: "sanitize-html@npm:2.3.3" +"sanitize-html@npm:2.11.0": + version: 2.11.0 + resolution: "sanitize-html@npm:2.11.0" dependencies: deepmerge: ^4.2.2 escape-string-regexp: ^4.0.0 - htmlparser2: ^6.0.0 + htmlparser2: ^8.0.0 is-plain-object: ^5.0.0 - klona: ^2.0.3 parse-srcset: ^1.0.2 - postcss: ^8.0.2 - checksum: f69375b36421786b38562de5c5bd966b69c2c69068c6115fd6eec5cee3a4c601f2e771b944ff59fd586000fc7e4ccdc4a6e10537cd2d634b505f7d8830e33026 + postcss: ^8.3.11 + checksum: 44807f22b0feb5a6a883b4bc04bcd8690ec3bbd6dacb24d6e52226ffe0c0e4fad43d6a882ce60e3884a327fae2de01e67e566e3a211491add50ff0160be2e98a languageName: node linkType: hard -"sanitize-html@npm:2.7.2": - version: 2.7.2 - resolution: "sanitize-html@npm:2.7.2" +"sanitize-html@npm:2.3.3": + version: 2.3.3 + resolution: "sanitize-html@npm:2.3.3" dependencies: deepmerge: ^4.2.2 escape-string-regexp: ^4.0.0 htmlparser2: ^6.0.0 is-plain-object: ^5.0.0 + klona: ^2.0.3 parse-srcset: ^1.0.2 - postcss: ^8.3.11 - checksum: 4c15e87a411420d670412de2beb29386c8307210c170ceb716d93b4010dcf6a8ae39408d7d863752ee84cc65f5995633c7089789c5f8c0de478a7023d93a53ec + postcss: ^8.0.2 + checksum: f69375b36421786b38562de5c5bd966b69c2c69068c6115fd6eec5cee3a4c601f2e771b944ff59fd586000fc7e4ccdc4a6e10537cd2d634b505f7d8830e33026 languageName: node linkType: hard @@ -27297,7 +25131,14 @@ __metadata: languageName: node linkType: hard -"sax@npm:>=0.6.0, sax@npm:^1.2.4, sax@npm:~1.2.4": +"sax@npm:>=0.6.0, sax@npm:^1.2.4": + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd + languageName: node + linkType: hard + +"sax@npm:~1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe @@ -27383,30 +25224,12 @@ __metadata: languageName: node linkType: hard -"semver-diff@npm:^3.1.1": - version: 3.1.1 - resolution: "semver-diff@npm:3.1.1" - dependencies: - semver: ^6.3.0 - checksum: 8bbe5a5d7add2d5e51b72314a9215cd294d71f41cdc2bf6bd59ee76411f3610b576172896f1d191d0d7294cb9f2f847438d2ee158adacc0c224dca79052812fe - languageName: node - linkType: hard - "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.1.0, semver@npm:^5.2.0, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.1": - version: 5.7.1 - resolution: "semver@npm:5.7.1" - bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf - languageName: node - linkType: hard - -"semver@npm:7.0.0, semver@npm:~7.0.0": - version: 7.0.0 - resolution: "semver@npm:7.0.0" + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: bin/semver.js - checksum: 272c11bf8d083274ef79fe40a81c55c184dff84dd58e3c325299d0927ba48cece1f020793d138382b85f89bab5002a35a5ba59a3a68a7eebbb597eb733838778 + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard @@ -27419,16 +25242,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.2.0, semver@npm:^6.3.0": - version: 6.3.0 - resolution: "semver@npm:6.3.0" - bin: - semver: ./bin/semver.js - checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 - languageName: node - linkType: hard - -"semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.1.2, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -27437,18 +25251,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5": - version: 7.3.5 - resolution: "semver@npm:7.3.5" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 5eafe6102bea2a7439897c1856362e31cc348ccf96efd455c8b5bc2c61e6f7e7b8250dc26b8828c1d76a56f818a7ee907a36ae9fb37a599d3d24609207001d60 - languageName: node - linkType: hard - -"semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.6.0 resolution: "semver@npm:7.6.0" dependencies: @@ -27459,14 +25262,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" - dependencies: - lru-cache: ^6.0.0 +"semver@npm:~7.0.0": + version: 7.0.0 + resolution: "semver@npm:7.0.0" bin: semver: bin/semver.js - checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 + checksum: 272c11bf8d083274ef79fe40a81c55c184dff84dd58e3c325299d0927ba48cece1f020793d138382b85f89bab5002a35a5ba59a3a68a7eebbb597eb733838778 languageName: node linkType: hard @@ -27544,16 +25345,16 @@ __metadata: linkType: hard "set-function-length@npm:^1.2.1": - version: 1.2.1 - resolution: "set-function-length@npm:1.2.1" + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" dependencies: - define-data-property: ^1.1.2 + define-data-property: ^1.1.4 es-errors: ^1.3.0 function-bind: ^1.1.2 - get-intrinsic: ^1.2.3 + get-intrinsic: ^1.2.4 gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: 23742476d695f2eae86348c069bd164d4f25fa7c26546a46a2b5f370f1f84b98ec64366d2cd17785d5b41bbf16b95855da4b7eb188e7056fe3b0248d61f6afda + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 languageName: node linkType: hard @@ -27579,11 +25380,11 @@ __metadata: linkType: hard "set-value@npm:^3.0.2": - version: 4.0.1 - resolution: "set-value@npm:4.0.1" + version: 3.0.3 + resolution: "set-value@npm:3.0.3" dependencies: is-plain-object: ^2.0.4 - checksum: a76ddedb3a5d1b92b28452ef81cb25b0c684b7d921bf0a73daf42cb0bfdba661a5ca8c05989cbb0dfaddd7b6bb2d4ff93dd49a3528bc4c821653e163aab882a0 + checksum: 1c96d7570d3d9e602bcb690d183787db104d7f202fc005c0cb90884b754f905881a848b4a52b31d12a06e55933cecb234c10a3ca2dc0c7a9daede3f211161086 languageName: node linkType: hard @@ -27694,9 +25495,9 @@ __metadata: linkType: hard "shell-quote@npm:1.7.2": - version: 1.7.3 - resolution: "shell-quote@npm:1.7.3" - checksum: aca58e73a3a5d933d02e0bdddedc53ee14f7c2ec264f97ac915b9d4482d077a38e422aa664631d60a672cd3cdb4054eb2e6c0303f54882453dacb6483e482d34 + version: 1.7.2 + resolution: "shell-quote@npm:1.7.2" + checksum: efad426fb25d8a54d06363f1f45774aa9e195f62f14fa696d542b44bfe418ab41206448b63af18d726c62e099e66d9a3f4f44858b9ea2ce4b794b41b802672d1 languageName: node linkType: hard @@ -27727,32 +25528,26 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": - version: 3.0.6 - resolution: "signal-exit@npm:3.0.6" - checksum: b819ac81ba757af559dad0804233ae31bf6f054591cd8a671e9cbcf09f21c72ec3076fe87d1e04861f5b33b47d63f0694b568de99c99cd733ee2060515beb6d5 + call-bind: ^1.0.7 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + object-inspect: ^1.13.1 + checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 languageName: node linkType: hard -"signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 languageName: node linkType: hard -"signal-exit@npm:^4.1.0": +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 @@ -27791,14 +25586,14 @@ __metadata: languageName: node linkType: hard -"sirv@npm:^1.0.7": - version: 1.0.19 - resolution: "sirv@npm:1.0.19" +"sirv@npm:^2.0.3": + version: 2.0.4 + resolution: "sirv@npm:2.0.4" dependencies: - "@polka/url": ^1.0.0-next.20 - mrmime: ^1.0.0 - totalist: ^1.0.0 - checksum: c943cfc61baf85f05f125451796212ec35d4377af4da90ae8ec1fa23e6d7b0b4d9c74a8fbf65af83c94e669e88a09dc6451ba99154235eead4393c10dda5b07c + "@polka/url": ^1.0.0-next.24 + mrmime: ^2.0.0 + totalist: ^3.0.0 + checksum: 6853384a51d6ee9377dd657e2b257e0e98b29abbfbfa6333e105197f0f100c8c56a4520b47028b04ab1833cf2312526206f38fcd4f891c6df453f40da1a15a57 languageName: node linkType: hard @@ -27830,10 +25625,10 @@ __metadata: languageName: node linkType: hard -"slash@npm:^4.0.0": - version: 4.0.0 - resolution: "slash@npm:4.0.0" - checksum: da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 languageName: node linkType: hard @@ -27890,7 +25685,7 @@ __metadata: languageName: node linkType: hard -"smart-buffer@npm:^4.0.2, smart-buffer@npm:^4.1.0": +"smart-buffer@npm:^4.0.2, smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b @@ -27948,16 +25743,15 @@ __metadata: linkType: hard "sockjs-client@npm:^1.5.0": - version: 1.5.2 - resolution: "sockjs-client@npm:1.5.2" + version: 1.6.1 + resolution: "sockjs-client@npm:1.6.1" dependencies: - debug: ^3.2.6 - eventsource: ^1.0.7 - faye-websocket: ^0.11.3 + debug: ^3.2.7 + eventsource: ^2.0.2 + faye-websocket: ^0.11.4 inherits: ^2.0.4 - json3: ^3.3.3 - url-parse: ^1.5.3 - checksum: b3c3966ca8ebe72454e3bbb83b21b0f58dda1c725815f2897162104afc42b779de9a6d964fb2b164ea290cb4c0c94cb3542bd7f788f21fe5df018da963826f96 + url-parse: ^1.5.10 + checksum: c7623bbc9891f427c1670145550a1c9c2d5379719e174a791606ba4f12c7d92e4cfb9acec6c17f91fda45d910b23c308a1f9fbcad4916ce5db4e982b24079fc7 languageName: node linkType: hard @@ -27973,23 +25767,34 @@ __metadata: linkType: hard "socks-proxy-agent@npm:^6.0.0": - version: 6.1.1 - resolution: "socks-proxy-agent@npm:6.1.1" + version: 6.2.1 + resolution: "socks-proxy-agent@npm:6.2.1" dependencies: agent-base: ^6.0.2 - debug: ^4.3.1 - socks: ^2.6.1 - checksum: 9a8a4f791bba0060315cf7291ca6f9db37d6fc280fd0860d73d8887d3efe4c22e823aa25a8d5375f6079279f8dc91b50c075345179bf832bfe3c7c26d3582e3c + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 9ca089d489e5ee84af06741135c4b0d2022977dad27ac8d649478a114cdce87849e8d82b7c22b51501a4116e231241592946fc7fae0afc93b65030ee57084f58 languageName: node linkType: hard -"socks@npm:^2.6.1": - version: 2.6.1 - resolution: "socks@npm:2.6.1" +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" dependencies: - ip: ^1.1.5 - smart-buffer: ^4.1.0 - checksum: 2ca9d616e424f645838ebaabb04f85d94ea999e0f8393dc07f86c435af22ed88cb83958feeabd1bb7bc537c635ed47454255635502c6808a6df61af1f41af750 + agent-base: ^7.0.2 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d + languageName: node + linkType: hard + +"socks@npm:^2.6.2, socks@npm:^2.7.1": + version: 2.8.1 + resolution: "socks@npm:2.8.1" + dependencies: + ip-address: ^9.0.5 + smart-buffer: ^4.2.0 + checksum: 29586d42e9c36c5016632b2bcb6595e3adfbcb694b3a652c51bc8741b079c5ec37bdd5675a1a89a1620078c8137208294991fabb50786f92d47759a725b2b62e languageName: node linkType: hard @@ -28011,7 +25816,7 @@ __metadata: languageName: node linkType: hard -"source-list-map@npm:^2.0.0, source-list-map@npm:^2.0.1": +"source-list-map@npm:^2.0.0": version: 2.0.1 resolution: "source-list-map@npm:2.0.1" checksum: 806efc6f75e7cd31e4815e7a3aaf75a45c704871ea4075cb2eb49882c6fca28998f44fc5ac91adb6de03b2882ee6fb02f951fdc85e6a22b338c32bfe19557938 @@ -28019,8 +25824,8 @@ __metadata: linkType: hard "source-map-explorer@npm:^2.4.2": - version: 2.5.2 - resolution: "source-map-explorer@npm:2.5.2" + version: 2.5.3 + resolution: "source-map-explorer@npm:2.5.3" dependencies: btoa: ^1.2.1 chalk: ^4.1.0 @@ -28031,17 +25836,17 @@ __metadata: gzip-size: ^6.0.0 lodash: ^4.17.20 open: ^7.3.1 - source-map: ^0.7.3 + source-map: ^0.7.4 temp: ^0.9.4 yargs: ^16.2.0 bin: sme: bin/cli.js source-map-explorer: bin/cli.js - checksum: ff6748a5e132e03cd7646892e7b3869d10ebae1f2adea6f359145e188f2af5450e3ed9d8f132ed6b2e7fe9359e5e5d2b5becb0264fb8ef7105437ff452981295 + checksum: 1d4e619d7eb224f38a3dadfb20eb34a56cfc29bd237b4815b60257e7fe5ee9f791fda3e0bba91318e0f2beffec5cca573abb8b5030a95f305ce4abee93296065 languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": +"source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -28071,16 +25876,6 @@ __metadata: languageName: node linkType: hard -"source-map-resolve@npm:^0.6.0": - version: 0.6.0 - resolution: "source-map-resolve@npm:0.6.0" - dependencies: - atob: ^2.1.2 - decode-uri-component: ^0.2.0 - checksum: fe503b9e5dac1c54be835282fcfec10879434e7b3ee08a9774f230299c724a8d403484d9531276d1670c87390e0e4d1d3f92b14cca6e4a2445ea3016b786ecd4 - languageName: node - linkType: hard - "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -28091,7 +25886,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.0, source-map-support@npm:^0.5.17, source-map-support@npm:^0.5.19, source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": +"source-map-support@npm:^0.5.0, source-map-support@npm:^0.5.17, source-map-support@npm:^0.5.19, source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.12, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -28122,14 +25917,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.7.3": - version: 0.7.3 - resolution: "source-map@npm:0.7.3" - checksum: cd24efb3b8fa69b64bf28e3c1b1a500de77e84260c5b7f2b873f88284df17974157cc88d386ee9b6d081f08fdd8242f3fc05c953685a6ad81aad94c7393dedea - languageName: node - linkType: hard - -"source-map@npm:^0.7.4": +"source-map@npm:^0.7.3, source-map@npm:^0.7.4": version: 0.7.4 resolution: "source-map@npm:0.7.4" checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 @@ -28144,19 +25932,19 @@ __metadata: linkType: hard "spdx-correct@npm:^3.0.0": - version: 3.1.1 - resolution: "spdx-correct@npm:3.1.1" + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" dependencies: spdx-expression-parse: ^3.0.0 spdx-license-ids: ^3.0.0 - checksum: 77ce438344a34f9930feffa61be0eddcda5b55fc592906ef75621d4b52c07400a97084d8701557b13f7d2aae0cb64f808431f469e566ef3fe0a3a131dcb775a6 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 languageName: node linkType: hard "spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + version: 2.5.0 + resolution: "spdx-exceptions@npm:2.5.0" + checksum: bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15 languageName: node linkType: hard @@ -28171,9 +25959,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.11 - resolution: "spdx-license-ids@npm:3.0.11" - checksum: 1da1acb090257773e60b022094050e810ae9fec874dc1461f65dc0400cd42dd830ab2df6e64fb49c2db3dce386dd0362110780e1b154db7c0bb413488836aaeb + version: 3.0.17 + resolution: "spdx-license-ids@npm:3.0.17" + checksum: 0aba5d16292ff604dd20982200e23b4d425f6ba364765039bdbde2f6c956b9909fce1ad040a897916a5f87388e85e001f90cb64bf706b6e319f3908cfc445a59 languageName: node linkType: hard @@ -28238,10 +26026,10 @@ __metadata: languageName: node linkType: hard -"sprintf-js@npm:^1.1.2": - version: 1.1.2 - resolution: "sprintf-js@npm:1.1.2" - checksum: d4bb46464632b335e5faed381bd331157e0af64915a98ede833452663bc672823db49d7531c32d58798e85236581fb7342fd0270531ffc8f914e186187bf1c90 +"sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 languageName: node linkType: hard @@ -28253,8 +26041,8 @@ __metadata: linkType: hard "sshpk@npm:^1.14.1, sshpk@npm:^1.7.0": - version: 1.17.0 - resolution: "sshpk@npm:1.17.0" + version: 1.18.0 + resolution: "sshpk@npm:1.18.0" dependencies: asn1: ~0.2.3 assert-plus: ^1.0.0 @@ -28269,7 +26057,16 @@ __metadata: sshpk-conv: bin/sshpk-conv sshpk-sign: bin/sshpk-sign sshpk-verify: bin/sshpk-verify - checksum: ba109f65c8e6c35133b8e6ed5576abeff8aa8d614824b7275ec3ca308f081fef483607c28d97780c1e235818b0f93ed8c8b56d0a5968d5a23fd6af57718c7597 + checksum: 01d43374eee3a7e37b3b82fdbecd5518cbb2e47ccbed27d2ae30f9753f22bd6ffad31225cb8ef013bc3fb7785e686cea619203ee1439a228f965558c367c3cfa + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 languageName: node linkType: hard @@ -28307,11 +26104,11 @@ __metadata: linkType: hard "stack-utils@npm:^2.0.3": - version: 2.0.5 - resolution: "stack-utils@npm:2.0.5" + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" dependencies: escape-string-regexp: ^2.0.0 - checksum: 76b69da0f5b48a34a0f93c98ee2a96544d2c4ca2557f7eef5ddb961d3bdc33870b46f498a84a7c4f4ffb781df639840e7ebf6639164ed4da5e1aeb659615b9c7 + checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 languageName: node linkType: hard @@ -28384,9 +26181,9 @@ __metadata: linkType: hard "stream-shift@npm:^1.0.0": - version: 1.0.1 - resolution: "stream-shift@npm:1.0.1" - checksum: 59b82b44b29ec3699b5519a49b3cedcc6db58c72fb40c04e005525dfdcab1c75c4e0c180b923c380f204bed78211b9bad8faecc7b93dece4d004c3f6ec75737b + version: 1.0.3 + resolution: "stream-shift@npm:1.0.3" + checksum: a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 languageName: node linkType: hard @@ -28442,7 +26239,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -28474,6 +26271,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + "string-width@npm:^7.0.0": version: 7.1.0 resolution: "string-width@npm:7.1.0" @@ -28507,62 +26315,20 @@ __metadata: resolution: "string.prototype.trim@npm:1.2.8" dependencies: call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.4": - version: 1.0.4 - resolution: "string.prototype.trimend@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 17e5aa45c3983f582693161f972c1c1fa4bbbdf22e70e582b00c91b6575f01680dc34e83005b98e31abe4d5d29e0b21fcc24690239c106c7b2315aade6a898ac - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.5": - version: 1.0.5 - resolution: "string.prototype.trimend@npm:1.0.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.19.5 - checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimend@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.4": - version: 1.0.4 - resolution: "string.prototype.trimstart@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 3fb06818d3cccac5fa3f5f9873d984794ca0e9f6616fae6fcc745885d9efed4e17fe15f832515d9af5e16c279857fdbffdfc489ca4ed577811b017721b30302f + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.5": - version: 1.0.5 - resolution: "string.prototype.trimstart@npm:1.0.5" +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.19.5 - checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c languageName: node linkType: hard @@ -28613,6 +26379,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + "strip-ansi@npm:5.2.0, strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.1.0, strip-ansi@npm:^5.2.0": version: 5.2.0 resolution: "strip-ansi@npm:5.2.0" @@ -28640,16 +26415,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-ansi@npm:^7.1.0": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -28754,7 +26520,7 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^1.0.4": +"strnum@npm:^1.0.5": version: 1.0.5 resolution: "strnum@npm:1.0.5" checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 @@ -28839,20 +26605,6 @@ __metadata: languageName: node linkType: hard -"stylis@npm:4.0.13": - version: 4.0.13 - resolution: "stylis@npm:4.0.13" - checksum: 8ea7a87028b6383c6a982231c4b5b6150031ce028e0fdaf7b2ace82253d28a8af50cc5a9da8a421d3c7c4441592f393086e332795add672aa4a825f0fe3713a3 - languageName: node - linkType: hard - -"stylis@npm:4.1.3": - version: 4.1.3 - resolution: "stylis@npm:4.1.3" - checksum: d04dbffcb9bf2c5ca8d8dc09534203c75df3bf711d33973ea22038a99cc475412a350b661ebd99cbc01daa50d7eedcf0d130d121800eb7318759a197023442a6 - languageName: node - linkType: hard - "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -29068,16 +26820,16 @@ __metadata: linkType: hard "tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.1.6": - version: 6.1.11 - resolution: "tar@npm:6.1.11" + version: 6.2.0 + resolution: "tar@npm:6.2.0" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 - minipass: ^3.0.0 + minipass: ^5.0.0 minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c languageName: node linkType: hard @@ -29134,16 +26886,16 @@ __metadata: linkType: hard "terser@npm:^5.14.2": - version: 5.16.1 - resolution: "terser@npm:5.16.1" + version: 5.29.1 + resolution: "terser@npm:5.29.1" dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: cb524123504a2f0d9140c1e1a8628c83bba9cacc404c6aca79e2493a38dfdf21275617ba75b91006b3f1ff586e401ab31121160cd253699f334c6340ea2756f5 + checksum: a884c81a9d6c05560309078192e0cc60cb64b76637f7ca237b350ca54e97a9d4b927a5afa08a59646ef3cbf0511728c944793cb718a3e7e48dd4a2a201737eef languageName: node linkType: hard @@ -29218,9 +26970,9 @@ __metadata: linkType: hard "throttleit@npm:^1.0.0": - version: 1.0.0 - resolution: "throttleit@npm:1.0.0" - checksum: 1b2db4d2454202d589e8236c07a69d2fab838876d370030ebea237c34c0a7d1d9cf11c29f994531ebb00efd31e9728291042b7754f2798a8352ec4463455b659 + version: 1.0.1 + resolution: "throttleit@npm:1.0.1" + checksum: 32e0b12ca5810cd34dfce0408c7cb658dfd039848a073466eaac667ce6e846cafa53ac518e4b01dc6f34e6652b66fd29a5c6b666718ec5086ef328a9d029dc75 languageName: node linkType: hard @@ -29302,9 +27054,9 @@ __metadata: linkType: hard "tiny-invariant@npm:^1.0.6": - version: 1.2.0 - resolution: "tiny-invariant@npm:1.2.0" - checksum: e09a718a7c4a499ba592cdac61f015d87427a0867ca07f50c11fd9b623f90cdba18937b515d4a5e4f43dac92370498d7bdaee0d0e7a377a61095e02c4a92eade + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe languageName: node linkType: hard @@ -29336,11 +27088,9 @@ __metadata: linkType: hard "tmp@npm:^0.2.0, tmp@npm:~0.2.1": - version: 0.2.1 - resolution: "tmp@npm:0.2.1" - dependencies: - rimraf: ^3.0.0 - checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 73b5c96b6e52da7e104d9d44afb5d106bb1e16d9fa7d00dbeb9e6522e61b571fbdb165c756c62164be9a3bbe192b9b268c236d370a2a0955c7689cd2ae377b95 languageName: node linkType: hard @@ -29381,13 +27131,6 @@ __metadata: languageName: node linkType: hard -"to-readable-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "to-readable-stream@npm:1.0.0" - checksum: 2bd7778490b6214a2c40276065dd88949f4cf7037ce3964c76838b8cb212893aeb9cceaaf4352a4c486e3336214c350270f3263e1ce7a0c38863a715a4d9aeb5 - languageName: node - linkType: hard - "to-regex-range@npm:^2.1.0": version: 2.1.1 resolution: "to-regex-range@npm:2.1.1" @@ -29433,10 +27176,10 @@ __metadata: languageName: node linkType: hard -"totalist@npm:^1.0.0": - version: 1.1.0 - resolution: "totalist@npm:1.1.0" - checksum: dfab80c7104a1d170adc8c18782d6c04b7df08352dec452191208c66395f7ef2af7537ddfa2cf1decbdcfab1a47afbbf0dec6543ea191da98c1c6e1599f86adc +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a languageName: node linkType: hard @@ -29461,14 +27204,15 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^3.0.1": - version: 3.0.1 - resolution: "tough-cookie@npm:3.0.1" +"tough-cookie@npm:^4.1.3": + version: 4.1.3 + resolution: "tough-cookie@npm:4.1.3" dependencies: - ip-regex: ^2.1.0 - psl: ^1.1.28 + psl: ^1.1.33 punycode: ^2.1.1 - checksum: 796f6239bce5674a1267b19f41972a2602a2a23715817237b5922b0dc2343512512eea7d41d29210a4ec545f8ef32173bbbf01277dd8ec3ae3841b19cbe69f67 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc languageName: node linkType: hard @@ -29539,15 +27283,6 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.2.1 - resolution: "ts-api-utils@npm:1.2.1" - peerDependencies: - typescript: ">=4.2.0" - checksum: 17a2a4454d65a6765b9351304cfd516fcda3098f49d72bba90cb7f22b6a09a573b4a1993fd7de7d6b8046c408960c5f21a25e64ccb969d484b32ea3b3e19d6e4 - languageName: node - linkType: hard - "ts-loader@npm:9.5.1": version: 9.5.1 resolution: "ts-loader@npm:9.5.1" @@ -29565,9 +27300,9 @@ __metadata: linkType: hard "ts-md5@npm:^1.2.6, ts-md5@npm:^1.2.7": - version: 1.2.10 - resolution: "ts-md5@npm:1.2.10" - checksum: fb61f3c51f099be9a171192ee811ee891539c07f9af0a644acf60ba959fe9283b23c48a9f47b31c6f5e1429d58e199e7504e4ab4bde5b11d93ead30738a4c0be + version: 1.3.1 + resolution: "ts-md5@npm:1.3.1" + checksum: 88fc4df837e17949fef92a8e71a0691b20e2f8b02a002876a162a102e7c9d364f1eb00cbd217f9578fec5fa07bb66ffa14ed054cdfe164486fab2173c8e9ea23 languageName: node linkType: hard @@ -29612,7 +27347,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.15.0": +"tsconfig-paths@npm:^3.15.0, tsconfig-paths@npm:^3.9.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" dependencies: @@ -29624,36 +27359,28 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.9.0": - version: 3.12.0 - resolution: "tsconfig-paths@npm:3.12.0" - dependencies: - "@types/json5": ^0.0.29 - json5: ^1.0.1 - minimist: ^1.2.0 - strip-bom: ^3.0.0 - checksum: 4999ec6cd1c7cc06750a460dbc0d39fe3595a4308cb5f1d0d0a8283009cf9c0a30d5a156508c28fe3a47760508af5263ab288fc23d71e9762779674257a95d3b - languageName: node - linkType: hard - -"tslib@npm:2.6.2, tslib@npm:^2.6.2": +"tslib@npm:2.6.2, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.4.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad languageName: node linkType: hard -"tslib@npm:^1.10.0, tslib@npm:^1.9.0, tslib@npm:^1.9.2, tslib@npm:^1.9.3": +"tslib@npm:^1.10.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0, tslib@npm:^1.9.2, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0": - version: 2.3.1 - resolution: "tslib@npm:2.3.1" - checksum: de17a98d4614481f7fcb5cd53ffc1aaf8654313be0291e1bfaee4b4bb31a20494b7d218ff2e15017883e8ea9626599b3b0e0229c18383ba9dce89da2adf15cb9 +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + 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" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 languageName: node linkType: hard @@ -29673,7 +27400,7 @@ __metadata: languageName: node linkType: hard -"tunnel@npm:0.0.6": +"tunnel@npm:0.0.6, tunnel@npm:^0.0.6": version: 0.0.6 resolution: "tunnel@npm:0.0.6" checksum: c362948df9ad34b649b5585e54ce2838fa583aa3037091aaed66793c65b423a264e5229f0d7e9a95513a795ac2bd4cb72cda7e89a74313f182c1e9ae0b0994fa @@ -29748,9 +27475,9 @@ __metadata: linkType: hard "type-fest@npm:^2.0.0, type-fest@npm:^2.5.0": - version: 2.12.2 - resolution: "type-fest@npm:2.12.2" - checksum: ee69676da1f69d2b14bbec28c7b95220a3221ab14093f54bde179c59e185a80470859553eada535ec35d8637a245c2f0efe9d7c99cc46a43f3b4c7ef64db7957 + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 languageName: node linkType: hard @@ -29771,17 +27498,10 @@ __metadata: languageName: node linkType: hard -"type@npm:^1.0.1": - version: 1.2.0 - resolution: "type@npm:1.2.0" - checksum: dae8c64f82c648b985caf321e9dd6e8b7f4f2e2d4f846fc6fd2c8e9dc7769382d8a52369ddbaccd59aeeceb0df7f52fb339c465be5f2e543e81e810e413451ee - languageName: node - linkType: hard - -"type@npm:^2.5.0": - version: 2.5.0 - resolution: "type@npm:2.5.0" - checksum: 0fe1bb4e8ba298b2b245fdc6bca6178887e29e2134d231e468366615b3adffd651d464eb51d8b15f8cfd168577c282a17e19bf80f036a60d4df16308a83a93c4 +"type@npm:^2.7.2": + version: 2.7.2 + resolution: "type@npm:2.7.2" + checksum: 0f42379a8adb67fe529add238a3e3d16699d95b42d01adfe7b9a7c5da297f5c1ba93de39265ba30ffeb37dfd0afb3fb66ae09f58d6515da442219c086219f6f4 languageName: node linkType: hard @@ -29891,6 +27611,13 @@ __metadata: languageName: node linkType: hard +"ua-parser-js@npm:^0.7.30": + version: 0.7.37 + resolution: "ua-parser-js@npm:0.7.37" + checksum: 9e91a66171aa16c74680cfac84af6ed7ecdeb508ff7c90a55222f56c63172da2d98d2478763e9469c940415fe29c45a56ae51fec1c19a498e7a3b293f7b3b874 + languageName: node + linkType: hard + "uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": version: 1.0.6 resolution: "uc.micro@npm:1.0.6" @@ -29916,18 +27643,6 @@ __metadata: languageName: node linkType: hard -"unbox-primitive@npm:^1.0.1": - version: 1.0.1 - resolution: "unbox-primitive@npm:1.0.1" - dependencies: - function-bind: ^1.1.1 - has-bigints: ^1.0.1 - has-symbols: ^1.0.2 - which-boxed-primitive: ^1.0.2 - checksum: 89d950e18fb45672bc6b3c961f1e72c07beb9640c7ceed847b571ba6f7d2af570ae1a2584cfee268b9d9ea1e3293f7e33e0bc29eaeb9f8e8a0bab057ff9e6bba - languageName: node - linkType: hard - "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -29948,9 +27663,18 @@ __metadata: linkType: hard "underscore@npm:^1.12.1": - version: 1.13.2 - resolution: "underscore@npm:1.13.2" - checksum: 6ab156c845ccc757fd01d8b9eb28be18ba89ac68993370dd7397a66a95b124f2ba26947fd53e687c084d334429914fc3dd1620d5123b6e0a7cf112cdcf4e859f + version: 1.13.6 + resolution: "underscore@npm:1.13.6" + checksum: d5cedd14a9d0d91dd38c1ce6169e4455bb931f0aaf354108e47bd46d3f2da7464d49b2171a5cf786d61963204a42d01ea1332a903b7342ad428deaafaf70ec36 + languageName: node + linkType: hard + +"undici@npm:^5.25.4": + version: 5.28.3 + resolution: "undici@npm:5.28.3" + dependencies: + "@fastify/busboy": ^2.0.0 + checksum: fa1e65aff896c5e2ee23637b632e306f9e3a2b32a3dc0b23ea71e5555ad350bcc25713aea894b3dccc0b7dc2c5e92a5a58435ebc2033b731a5524506f573dfd2 languageName: node linkType: hard @@ -29971,13 +27695,6 @@ __metadata: languageName: node linkType: hard -"unicode-match-property-value-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.0.0" - checksum: 8fe6a09d9085a625cabcead5d95bdbc1a2d5d481712856092ce0347231e81a60b93a68f1b69e82b3076a07e415a72c708044efa2aa40ae23e2e7b5c99ed4a9ea - languageName: node - linkType: hard - "unicode-match-property-value-ecmascript@npm:^2.1.0": version: 2.1.0 resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" @@ -29986,9 +27703,16 @@ __metadata: linkType: hard "unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.0.0" - checksum: dda4d39128cbbede2ac60fbb85493d979ec65913b8a486bf7cb7a375a2346fa48cbf9dc6f1ae23376e7e8e684c2b411434891e151e865a661b40a85407db51d0 + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 languageName: node linkType: hard @@ -30041,6 +27765,15 @@ __metadata: languageName: node linkType: hard +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + "unique-slug@npm:^2.0.0": version: 2.0.2 resolution: "unique-slug@npm:2.0.2" @@ -30050,12 +27783,12 @@ __metadata: languageName: node linkType: hard -"unique-string@npm:^2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" dependencies: - crypto-random-string: ^2.0.0 - checksum: ef68f639136bcfe040cf7e3cd7a8dff076a665288122855148a6f7134092e6ed33bf83a7f3a9185e46c98dddc445a0da6ac25612afa1a7c38b8b654d6c02498e + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 languageName: node linkType: hard @@ -30075,6 +27808,15 @@ __metadata: languageName: node linkType: hard +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: e2e7aee4b92ddb64d314b4ac89eef7a46e4c829cbd3ee4aee516d100772b490eb6b4974f653ba0717a0071ca6ea0770bf22b0a2ea62c65fcba1d071285e96324 + languageName: node + linkType: hard + "unist-util-visit-parents@npm:1.1.2": version: 1.1.2 resolution: "unist-util-visit-parents@npm:1.1.2" @@ -30110,6 +27852,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + "universalify@npm:^1.0.0": version: 1.0.0 resolution: "universalify@npm:1.0.0" @@ -30118,9 +27867,9 @@ __metadata: linkType: hard "universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 languageName: node linkType: hard @@ -30186,25 +27935,17 @@ __metadata: languageName: node linkType: hard -"update-notifier@npm:^5.1.0": - version: 5.1.0 - resolution: "update-notifier@npm:5.1.0" +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" 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 - checksum: 461e5e5b002419296d3868ee2abe0f9ab3e1846d9db642936d0c46f838872ec56069eddfe662c45ce1af0a8d6d5026353728de2e0a95ab2e3546a22ea077caf1 + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 languageName: node linkType: hard @@ -30305,6 +28046,13 @@ __metadata: languageName: node linkType: hard +"url-search-params-polyfill@npm:8.2.4": + version: 8.2.4 + resolution: "url-search-params-polyfill@npm:8.2.4" + checksum: 7009db6fcf4d091076a71592e685a0c63e275a9a7e9ac5bcec1defd16f5e976381656b2e0fe6e44c48a0a19954c0cd0654d40ae3c9b10803f8c65caf6b47d743 + languageName: node + linkType: hard + "url-to-options@npm:^1.0.1": version: 1.0.1 resolution: "url-to-options@npm:1.0.1" @@ -30313,21 +28061,32 @@ __metadata: linkType: hard "url@npm:^0.11.0": - version: 0.11.0 - resolution: "url@npm:0.11.0" + version: 0.11.3 + resolution: "url@npm:0.11.3" dependencies: - punycode: 1.3.2 - querystring: 0.2.0 - checksum: 50d100d3dd2d98b9fe3ada48cadb0b08aa6be6d3ac64112b867b56b19be4bfcba03c2a9a0d7922bfd7ac17d4834e88537749fe182430dfd9b68e520175900d90 + punycode: ^1.4.1 + qs: ^6.11.2 + checksum: f9e7886f46a16f96d2e42fbcc5d682c231c55ef5442c1ff66150c0f6556f6e3a97d094a84f51be15ec2432711d212eb60426659ce418f5fcadeaa3f601532c4e languageName: node linkType: hard "use-memo-one@npm:^1.1.1": - version: 1.1.2 - resolution: "use-memo-one@npm:1.1.2" + version: 1.1.3 + resolution: "use-memo-one@npm:1.1.3" peerDependencies: - react: ^16.8.0 || ^17.0.0 - checksum: 71f4598ce422b64a971dc93f45dc245158977f8882f56be82d4629c21577c22244959ac3aa99bd9559d64007b632d58aa43b256981afe56603c77ce3fdee165f + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 8f08eba26d69406b61bb4b8dacdd5a92bd6aef5b53d346dfe87954f7330ee10ecabc937cc7854635155d46053828e85c10b5a5aff7a04720e6a97b9f42999bac + languageName: node + linkType: hard + +"use-ref-from@npm:0.0.2": + version: 0.0.2 + resolution: "use-ref-from@npm:0.0.2" + dependencies: + "@babel/runtime-corejs3": 7.21.0 + peerDependencies: + react: ">=16.9.0" + checksum: 4461a6ab741ca3cbc99c23574fa367d96dc778c6a4cde7cc33bfadc5178d44d1c4aeaa15057e2ce5a437656a49c21753c43bba883a2cafd653bba9edbf309a2d languageName: node linkType: hard @@ -30346,12 +28105,12 @@ __metadata: linkType: hard "utf-8-validate@npm:^5.0.2": - version: 5.0.8 - resolution: "utf-8-validate@npm:5.0.8" + version: 5.0.10 + resolution: "utf-8-validate@npm:5.0.10" dependencies: node-gyp: latest node-gyp-build: ^4.3.0 - checksum: cb1be3fa4eb896be17945a2e46c25f47ef9344d5955703a09d9d831efef681ce120bddfe02a8ebf3a96580ffa8f70edda55623e4d021adff70cb81cd0c8a885e + checksum: 5579350a023c66a2326752b6c8804cc7b39dcd251bb088241da38db994b8d78352e388dcc24ad398ab98385ba3c5ffcadb6b5b14b2637e43f767869055e46ba6 languageName: node linkType: hard @@ -30380,15 +28139,17 @@ __metadata: linkType: hard "util.promisify@npm:^1.0.0": - version: 1.1.1 - resolution: "util.promisify@npm:1.1.1" + version: 1.1.2 + resolution: "util.promisify@npm:1.1.2" dependencies: - call-bind: ^1.0.0 - define-properties: ^1.1.3 + call-bind: ^1.0.2 + define-properties: ^1.2.0 for-each: ^0.3.3 - has-symbols: ^1.0.1 - object.getownpropertydescriptors: ^2.1.1 - checksum: ea371c30b90576862487ae4efd7182aa5855019549a4019d82629acc2709e8ccb0f38944403eebec622fff8ebb44ac3f46a52d745d5f543d30606132a4905f96 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + object.getownpropertydescriptors: ^2.1.6 + safe-array-concat: ^1.0.0 + checksum: 9a5233e7fd067ca24abe2310f9c93e6df3adb644a662fcd826454d30539d3dd1d557b75bfed4cedd4993203012ea6add6d7dd268fed35bbdac4736dce9446373 languageName: node linkType: hard @@ -30404,16 +28165,7 @@ __metadata: languageName: node linkType: hard -"util@npm:0.10.3": - version: 0.10.3 - resolution: "util@npm:0.10.3" - dependencies: - inherits: 2.0.1 - checksum: bd800f5d237a82caddb61723a6cbe45297d25dd258651a31335a4d5d981fd033cb4771f82db3d5d59b582b187cb69cfe727dc6f4d8d7826f686ee6c07ce611e0 - languageName: node - linkType: hard - -"util@npm:^0.10.3": +"util@npm:^0.10.3, util@npm:^0.10.4": version: 0.10.4 resolution: "util@npm:0.10.4" dependencies: @@ -30473,9 +28225,9 @@ __metadata: linkType: hard "v8-compile-cache@npm:^2.0.3, v8-compile-cache@npm:^2.1.1": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e + version: 2.4.0 + resolution: "v8-compile-cache@npm:2.4.0" + checksum: 8eb6ddb59d86f24566503f1e6ca98f3e6f43599f05359bd3ab737eaaf1585b338091478a4d3d5c2646632cf8030288d7888684ea62238cdce15a65ae2416718f languageName: node linkType: hard @@ -30541,9 +28293,9 @@ __metadata: linkType: hard "validator@npm:^13.7.0": - version: 13.7.0 - resolution: "validator@npm:13.7.0" - checksum: 2b83283de1222ca549a7ef57f46e8d49c6669213348db78b7045bce36a3b5843ff1e9f709ebf74574e06223461ee1f264f8cc9a26a0060a79a27de079d8286ef + version: 13.11.0 + resolution: "validator@npm:13.11.0" + checksum: d1e0c27022681420756da25bc03eb08d5f0c66fb008f8ff02ebc95812b77c6be6e03d3bd05cf80ca702e23eeb73dadd66b4b3683173ea2a0bc7cc72820bee131 languageName: node linkType: hard @@ -30680,9 +28432,9 @@ __metadata: linkType: hard "vscode-languageserver-textdocument@npm:^1.0.1": - version: 1.0.3 - resolution: "vscode-languageserver-textdocument@npm:1.0.3" - checksum: ed8f1372cd902bcfd18c84654581551594d8f388ff3a0419febfe70d0bc88e5460f6998c6e45f200e90871d6b0528a3b976a632eade7b3e31675400416a2d33d + version: 1.0.11 + resolution: "vscode-languageserver-textdocument@npm:1.0.11" + checksum: ea7cdc9d4ffaae5952071fa11d17d714215a76444e6936c9359f94b9ba3222a52a55edb5bd5928bd3e9712b900a9f175bb3565ec1c8923234fe3bd327584bafb languageName: node linkType: hard @@ -30694,9 +28446,9 @@ __metadata: linkType: hard "vscode-languageserver-types@npm:^3.15.0-next.4": - version: 3.16.0 - resolution: "vscode-languageserver-types@npm:3.16.0" - checksum: 7a44fb10b9fbeb9529f832337b7f0430fc6275d62945b86851d425a950e22da3917ef5f6c552688191769dd1eae047c6ee9ec3d9f2280498353007c2dfe0725c + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 79b420e7576398d396579ca3a461c9ed70e78db4403cd28bbdf4d3ed2b66a2b4114031172e51fad49f0baa60a2180132d7cb2ea35aa3157d7af3c325528210ac languageName: node linkType: hard @@ -30713,9 +28465,9 @@ __metadata: linkType: hard "vscode-nls@npm:^5.0.0": - version: 5.0.0 - resolution: "vscode-nls@npm:5.0.0" - checksum: 8b12d1a3b0f783b91a98747fce76d2c26299db0c288089703bc3de53cc503f3ededa9833c21c3cb3b4857bd1c4e5d93663da38d4ddbf7b970dc63b6892d4639a + version: 5.2.0 + resolution: "vscode-nls@npm:5.2.0" + checksum: c9f43c0f85000b3008fc4a3a8fc122e580f4f0402a77186c6c0f3219ca8ac258f4893c7a563d66f097a6da09951d7f5a7e6295d3e21dcbaec707937c9089b5a8 languageName: node linkType: hard @@ -30809,15 +28561,6 @@ __metadata: languageName: node linkType: hard -"warning@npm:^4.0.3": - version: 4.0.3 - resolution: "warning@npm:4.0.3" - dependencies: - loose-envify: ^1.0.0 - checksum: 4f2cb6a9575e4faf71ddad9ad1ae7a00d0a75d24521c193fa464f30e6b04027bd97aa5d9546b0e13d3a150ab402eda216d59c1d0f2d6ca60124d96cd40dfa35c - languageName: node - linkType: hard - "watchpack-chokidar2@npm:^2.0.1": version: 2.0.1 resolution: "watchpack-chokidar2@npm:2.0.1" @@ -30880,21 +28623,25 @@ __metadata: linkType: hard "webpack-bundle-analyzer@npm:^4.4.2": - version: 4.5.0 - resolution: "webpack-bundle-analyzer@npm:4.5.0" + version: 4.10.1 + resolution: "webpack-bundle-analyzer@npm:4.10.1" dependencies: + "@discoveryjs/json-ext": 0.5.7 acorn: ^8.0.4 acorn-walk: ^8.0.0 - chalk: ^4.1.0 commander: ^7.2.0 + debounce: ^1.2.1 + escape-string-regexp: ^4.0.0 gzip-size: ^6.0.0 - lodash: ^4.17.20 + html-escaper: ^2.0.2 + is-plain-object: ^5.0.0 opener: ^1.5.2 - sirv: ^1.0.7 + picocolors: ^1.0.0 + sirv: ^2.0.3 ws: ^7.3.1 bin: webpack-bundle-analyzer: lib/bin/analyzer.js - checksum: 158e96810ec213d5665ca1c0b257097db44e1f11c4befefab8352b9e5b10890fcb3e3fc1f7bb400dd58762a8edce5621c92afeca86eb4687d2eb64e93186bfcb + checksum: 77f48f10a493b1cc95674526472978a2de32412ddbf556bd3903738f14890611426f19477352993efe5a9fd6ca16711eb912d986f2221b17ba6eeca1b6f71fb6 languageName: node linkType: hard @@ -31026,16 +28773,6 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^2.2.0": - version: 2.3.1 - resolution: "webpack-sources@npm:2.3.1" - dependencies: - source-list-map: ^2.0.1 - source-map: ^0.6.1 - checksum: 6fd67f2274a84c5f51ad89767112ec8b47727134bf0f2ba0cff458c970f18966939a24128bdbddba621cd66eeb2bef0552642a9333cd8e54514f7b2a71776346 - languageName: node - linkType: hard - "webpack@npm:4.43.0": version: 4.43.0 resolution: "webpack@npm:4.43.0" @@ -31070,8 +28807,8 @@ __metadata: linkType: hard "webpack@npm:^4.43.0": - version: 4.46.0 - resolution: "webpack@npm:4.46.0" + version: 4.47.0 + resolution: "webpack@npm:4.47.0" dependencies: "@webassemblyjs/ast": 1.9.0 "@webassemblyjs/helper-module-context": 1.9.0 @@ -31103,7 +28840,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 013fa24c00d4261e16ebca60353fa6f848e417b5a44bdf28c16ebebd67fa61e960420bb314c8df05cfe2dad9b90efabcf38fd6875f2361922769a0384085ef1e + checksum: 65fbf8144cdcdb502ddbf8622a05ab54aa3910c6bce6f0f17fadddda535a2023096a1b61e25fb02448257665bdc3ac8d93b7d3c22aa46773a7842365019e1209 languageName: node linkType: hard @@ -31146,10 +28883,17 @@ __metadata: languageName: node linkType: hard -"whatwg-fetch@npm:3.6.2": - version: 3.6.2 - resolution: "whatwg-fetch@npm:3.6.2" - checksum: ee976b7249e7791edb0d0a62cd806b29006ad7ec3a3d89145921ad8c00a3a67e4be8f3fb3ec6bc7b58498724fd568d11aeeeea1f7827e7e1e5eae6c8a275afed +"whatwg-fetch@npm:3.6.18": + version: 3.6.18 + resolution: "whatwg-fetch@npm:3.6.18" + checksum: 72fd318a00fd9031f7f5b28bfe30e458ca5e6ebc9b3de6e03edf810f455bca0ec954035bd9f1b5f9e6a82bbdc3fbba59b14bee24c039460c8a75f8f990ebe0b1 + languageName: node + linkType: hard + +"whatwg-fetch@npm:>=0.10.0": + version: 3.6.20 + resolution: "whatwg-fetch@npm:3.6.20" + checksum: c58851ea2c4efe5c2235f13450f426824cf0253c1d45da28f45900290ae602a20aff2ab43346f16ec58917d5562e159cd691efa368354b2e82918c2146a519c5 languageName: node linkType: hard @@ -31197,34 +28941,34 @@ __metadata: linkType: hard "which-collection@npm:^1.0.1": - version: 1.0.1 - resolution: "which-collection@npm:1.0.1" + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" dependencies: - is-map: ^2.0.1 - is-set: ^2.0.1 - is-weakmap: ^2.0.1 - is-weakset: ^2.0.1 - checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c + is-map: ^2.0.3 + is-set: ^2.0.3 + is-weakmap: ^2.0.2 + is-weakset: ^2.0.3 + checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 languageName: node linkType: hard "which-module@npm:^2.0.0": - version: 2.0.0 - resolution: "which-module@npm:2.0.0" - checksum: 809f7fd3dfcb2cdbe0180b60d68100c88785084f8f9492b0998c051d7a8efe56784492609d3f09ac161635b78ea29219eb1418a98c15ce87d085bce905705c9c + version: 2.0.1 + resolution: "which-module@npm:2.0.1" + checksum: 1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be languageName: node linkType: hard "which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.9": - version: 1.1.14 - resolution: "which-typed-array@npm:1.1.14" + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" dependencies: - available-typed-arrays: ^1.0.6 - call-bind: ^1.0.5 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 for-each: ^0.3.3 gopd: ^1.0.1 - has-tostringtag: ^1.0.1 - checksum: efe30c143c58630dde8ab96f9330e20165bacd77ca843c602b510120a415415573bcdef3ccbc30a0e5aaf20f257360cfe24712aea0008f149ce5bb99834c0c0b + has-tostringtag: ^1.0.2 + checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 languageName: node linkType: hard @@ -31250,7 +28994,18 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.2": +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: @@ -31301,9 +29056,9 @@ __metadata: linkType: hard "word-wrap@npm:~1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb languageName: node linkType: hard @@ -31497,6 +29252,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + "wrap-ansi@npm:^4.0.0": version: 4.0.0 resolution: "wrap-ansi@npm:4.0.0" @@ -31530,14 +29296,14 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 languageName: node linkType: hard @@ -31559,18 +29325,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.0": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - "write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -31600,8 +29354,8 @@ __metadata: linkType: hard "ws@npm:^7.1.2, ws@npm:^7.3.1, ws@npm:^7.4.6": - version: 7.5.6 - resolution: "ws@npm:7.5.6" + version: 7.5.9 + resolution: "ws@npm:7.5.9" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -31610,7 +29364,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 0c2ffc9a539dd61dd2b00ff6cc5c98a3371e2521011fe23da4b3578bb7ac26cbdf7ca8a68e8e08023c122ae247013216dde2a20c908de415a6bcc87bdef68c87 + checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 languageName: node linkType: hard @@ -31633,13 +29387,6 @@ __metadata: languageName: node linkType: hard -"xdg-basedir@npm:^4.0.0": - version: 4.0.0 - resolution: "xdg-basedir@npm:4.0.0" - checksum: 0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c - languageName: node - linkType: hard - "xml2js@npm:^0.4.19": version: 0.4.23 resolution: "xml2js@npm:0.4.23" @@ -31650,6 +29397,16 @@ __metadata: languageName: node linkType: hard +"xml2js@npm:^0.5.0": + version: 0.5.0 + resolution: "xml2js@npm:0.5.0" + dependencies: + sax: ">=0.6.0" + xmlbuilder: ~11.0.0 + checksum: 1aa71d62e5bc2d89138e3929b9ea46459157727759cbc62ef99484b778641c0cd21fb637696c052d901a22f82d092a3e740a16b4ce218e81ac59b933535124ea + languageName: node + linkType: hard + "xml2js@npm:~0.2.8": version: 0.2.8 resolution: "xml2js@npm:0.2.8" @@ -31757,7 +29514,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.0, yaml@npm:^1.7.2": +"yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f @@ -31781,13 +29538,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.0.0": - version: 21.0.0 - resolution: "yargs-parser@npm:21.0.0" - checksum: 1e205fca1cb7a36a1585e2b94a64e641c12741b53627d338e12747f4dca3c3610cdd9bb235040621120548dd74c3ef03a8168d52a1eabfedccbe4a62462b6731 - languageName: node - linkType: hard - "yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" @@ -31828,22 +29578,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.3.1": - version: 17.5.1 - resolution: "yargs@npm:17.5.1" - dependencies: - cliui: ^7.0.2 - 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.0.0 - checksum: 00d58a2c052937fa044834313f07910fd0a115dec5ee35919e857eeee3736b21a4eafa8264535800ba8bac312991ce785ecb8a51f4d2cc8c4676d865af1cfbde - languageName: node - linkType: hard - -"yargs@npm:^17.5.1, yargs@npm:^17.7.2": +"yargs@npm:^17.3.1, yargs@npm:^17.5.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -31957,10 +29692,10 @@ __metadata: linkType: hard "z-schema@npm:^5.0.1": - version: 5.0.2 - resolution: "z-schema@npm:5.0.2" + version: 5.0.5 + resolution: "z-schema@npm:5.0.5" dependencies: - commander: ^2.7.1 + commander: ^9.4.1 lodash.get: ^4.4.2 lodash.isequal: ^4.5.0 validator: ^13.7.0 @@ -31969,24 +29704,24 @@ __metadata: optional: true bin: z-schema: bin/z-schema - checksum: 084b2f16043ac0a892914ee29cc0b4fafd9338133eec0345cd6ced25e814f647fa67be1090ad5f606759c2c1f2f8c28127960ba187f437f1caf6fb8cd45d7336 + checksum: 8a1d66817ae4384dc3f63311f0cccaadd95cc9640eaade5fd3fbf91aa80d6bb82fb95d9b9171fa82ac371a0155b32b7f5f77bbe84dabaca611b66f74c628f0b8 languageName: node linkType: hard "zip-stream@npm:^4.1.0": - version: 4.1.0 - resolution: "zip-stream@npm:4.1.0" + version: 4.1.1 + resolution: "zip-stream@npm:4.1.1" dependencies: - archiver-utils: ^2.1.0 - compress-commons: ^4.1.0 + archiver-utils: ^3.0.4 + compress-commons: ^4.1.2 readable-stream: ^3.6.0 - checksum: 4a73da856738b0634700b52f4ab3fe0bf0a532bea6820ad962d0bda0163d2d5525df4859f89a7238e204a378384e12551985049790c1894c3ac191866e85887f + checksum: 33bd5ee7017656c2ad728b5d4ba510e15bd65ce1ec180c5bbdc7a5f063256353ec482e6a2bc74de7515219d8494147924b9aae16e63fdaaf37cdf7d1ee8df125 languageName: node linkType: hard -"zod@npm:~1.11.17": - version: 1.11.17 - resolution: "zod@npm:1.11.17" - checksum: e07764a8a2fba195a4ec0ed9e66cee20e651ee1d9e533e5f48956de1ded6c6bcf80f63fed4a2bdb67de40a1300399edc9ee2095ee382c67d85745e3b0ccd14ca +"zod@npm:^3.22.4": + version: 3.22.4 + resolution: "zod@npm:3.22.4" + checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f languageName: node linkType: hard From a284398f74c4b82542a3ce3a70a6e3a7afefcaca Mon Sep 17 00:00:00 2001 From: Mike Irving <79252299+mikeirvingweb@users.noreply.github.com> Date: Wed, 13 Mar 2024 19:32:23 +0000 Subject: [PATCH 50/68] fix: correct name in page title and manifest (#9715) --- Composer/packages/client/public/index.html | 2 +- Composer/packages/client/public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Composer/packages/client/public/index.html b/Composer/packages/client/public/index.html index 51d64d74e3..98621f2ba5 100644 --- a/Composer/packages/client/public/index.html +++ b/Composer/packages/client/public/index.html @@ -22,7 +22,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - BotFramework Composer + Bot Framework Composer <% if (process.env.NODE_ENV === 'production') { %> diff --git a/Composer/packages/client/public/manifest.json b/Composer/packages/client/public/manifest.json index 477da346d6..4eb20470e8 100644 --- a/Composer/packages/client/public/manifest.json +++ b/Composer/packages/client/public/manifest.json @@ -1,6 +1,6 @@ { "short_name": "Composer", - "name": "BotFramework Composer", + "name": "Bot Framework Composer", "icons": [ { "src": "composerfavicon.ico", From 8bc5c6d952d2c44d0602a50049615c3fe77a883d Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 13 Mar 2024 13:32:21 -0700 Subject: [PATCH 51/68] Fix build:dev --- .../code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx | 6 +++--- Composer/packages/lib/code-editor/src/utils/withTooltip.tsx | 2 +- Composer/packages/types/src/shell.ts | 2 +- .../select-skill-dialog/src/SelectSkillDialogField.tsx | 2 +- .../select-skill-dialog/src/SkillEndpointField.tsx | 2 +- Composer/tsconfig.base.json | 1 + 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx b/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx index 02d7ff325c..b1ed133d29 100644 --- a/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx +++ b/Composer/packages/lib/code-editor/src/hooks/useEditorToolbarPopExpandItem.tsx @@ -49,9 +49,9 @@ export const useEditorToolbarPopExpandItem = ( className: options?.customClassName, ariaLabel: formatMessage('Pop out editor: open editor'), onRenderIcon: () => { - let PopExpandIcon = createSvgIcon({ svg: () => popExpandSvgIcon, displayName: 'PopExpandIcon' }); - PopExpandIcon = withTooltip({ content: formatMessage('Pop out editor') }, PopExpandIcon); - return ; + const PopExpandIcon = createSvgIcon({ svg: () => popExpandSvgIcon, displayName: 'PopExpandIcon' }); + const PopExpandIconComp = withTooltip({ content: formatMessage('Pop out editor') }, PopExpandIcon); + return ; }, onClick: () => { setIsExpanded(true); diff --git a/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx b/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx index 2507b3288c..8b6b3c6d0b 100644 --- a/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx +++ b/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx @@ -7,7 +7,7 @@ import { ITooltipHostProps, TooltipHost } from '@fluentui/react/lib/Tooltip'; export type WithTooltipProps = ITooltipHostProps; export const withTooltip = -

>( +

>( tooltipProps: WithTooltipProps, Component: React.FC

| React.ComponentType

, ) => diff --git a/Composer/packages/types/src/shell.ts b/Composer/packages/types/src/shell.ts index 6d3cfa1ac8..e94650cc11 100644 --- a/Composer/packages/types/src/shell.ts +++ b/Composer/packages/types/src/shell.ts @@ -167,7 +167,7 @@ export type ProjectContextApi = { createTrigger: (id: string, formData, autoSelected?: boolean) => void; createQnATrigger: (id: string) => void; stopBot: (projectId: string) => void; - updateSkill: (skillId: string, skillsData: { skill: Skill; selectedEndpointIndex: number }) => Promise; + updateSkill: (skillId: string, skillsData: { skill: Partial; selectedEndpointIndex: number }) => Promise; updateRecognizer: (projectId: string, dialogId: string, kind: LuProviderType) => void; }; diff --git a/Composer/packages/ui-plugins/select-skill-dialog/src/SelectSkillDialogField.tsx b/Composer/packages/ui-plugins/select-skill-dialog/src/SelectSkillDialogField.tsx index 023f984b72..af16a7f9cc 100644 --- a/Composer/packages/ui-plugins/select-skill-dialog/src/SelectSkillDialogField.tsx +++ b/Composer/packages/ui-plugins/select-skill-dialog/src/SelectSkillDialogField.tsx @@ -25,7 +25,7 @@ export const SelectSkillDialogField: React.FC = (props) => { const { displayManifestModal } = shellApi; const skillNameIdentifier = getSkillNameFromSetting(value?.skillEndpoint); - const { manifest, name }: Skill = skills[skillNameIdentifier] || {}; + const { manifest, name }: Partial = skills[skillNameIdentifier] || {}; const options: IDropdownOption[] = []; for (const key in skills) { diff --git a/Composer/packages/ui-plugins/select-skill-dialog/src/SkillEndpointField.tsx b/Composer/packages/ui-plugins/select-skill-dialog/src/SkillEndpointField.tsx index 0976bb05aa..90b1afbd4b 100644 --- a/Composer/packages/ui-plugins/select-skill-dialog/src/SkillEndpointField.tsx +++ b/Composer/packages/ui-plugins/select-skill-dialog/src/SkillEndpointField.tsx @@ -14,7 +14,7 @@ export const SkillEndpointField: React.FC = (props) => { const { updateSkill } = shellApi; const id = getSkillNameFromSetting(value?.skillEndpoint); - const skill: Skill = skills[id] || {}; + const skill: Partial = skills[id] || {}; const { endpointUrl: endpointUrlInSettings, msAppId: msAppIdInSettings } = skillsSettings[id] || {}; diff --git a/Composer/tsconfig.base.json b/Composer/tsconfig.base.json index b810fa7338..b05e7093e5 100644 --- a/Composer/tsconfig.base.json +++ b/Composer/tsconfig.base.json @@ -16,6 +16,7 @@ "strict": true, "target": "es5", "useUnknownInCatchVariables": false, + "strictNullChecks": false, "plugins": [ { "name": "typescript-styled-plugin", From f9b3acf413154e96727078e82783f03e60249641 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 13 Mar 2024 13:33:05 -0700 Subject: [PATCH 52/68] Update lock files --- extensions/azurePublish/yarn-berry.lock | 24 +-- extensions/azurePublishNew/yarn-berry.lock | 20 +- extensions/localPublish/yarn-berry.lock | 4 +- extensions/mockRemotePublish/yarn-berry.lock | 4 +- extensions/package.json | 4 +- extensions/packageManager/yarn-berry.lock | 16 +- extensions/pvaPublish/yarn-berry.lock | 8 +- extensions/runtimes/yarn-berry.lock | 4 +- extensions/sample-ui-plugin/yarn-berry.lock | 8 +- extensions/yarn-berry.lock | 203 +++++++++++-------- 10 files changed, 163 insertions(+), 132 deletions(-) diff --git a/extensions/azurePublish/yarn-berry.lock b/extensions/azurePublish/yarn-berry.lock index 456d76a57f..1eeebb83b5 100644 --- a/extensions/azurePublish/yarn-berry.lock +++ b/extensions/azurePublish/yarn-berry.lock @@ -1950,7 +1950,7 @@ __metadata: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=63129e&locator=azurePublish%40workspace%3A." + resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=6b6582&locator=azurePublish%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -1973,13 +1973,13 @@ __metadata: "@bfc/ui-shared": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 3176c37536aea67c4345335372b496c12f967bb77d30734b44143a79e40d19db2f8a96fe9eb9c4ca84b58d4f12bc3804ce6cdb9e72e290a3a115f9ec76ed222f + checksum: 7a102c5d0a3a47dc83500e288f5d91b27b3007772a8efcd9a3d461d2c720178ed31d82eb8da9dd690389043788fb16f5d459c1f1c0bb0424bbfff1b42593b23e languageName: node linkType: hard "@bfc/extension-client@file:../../Composer/packages/extension-client::locator=azurePublish%40workspace%3A.": version: 1.0.0 - resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=26efde&locator=azurePublish%40workspace%3A." + resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=5e1b50&locator=azurePublish%40workspace%3A." dependencies: debug: ^4.1.1 lodash: ^4.17.19 @@ -1988,13 +1988,13 @@ __metadata: "@botframework-composer/types": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 1ba954ecb4f9bbf9ea2dcf99e509c57da8e7d9a2967d1d1edbbcf814191a9c3c4de1947f2a5a4a22947a5208bd9bceb2f62c273385f7dd336bd0bf638ab4ee22 + checksum: f8d4ffbeb3e8d1f9043fcb31484c678cfc068118f3cd3fd358de6669f922e1df2566be4740fb80999182a6abda722814946646dd0193dad7341bc592c7f03d8e languageName: node linkType: hard "@bfc/indexers@file:../../Composer/packages/lib/indexers::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=0b8255&locator=azurePublish%40workspace%3A." + resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=f8e51f&locator=azurePublish%40workspace%3A." dependencies: "@microsoft/bf-lu": 4.15.0-dev.20210702.cbf708d adaptive-expressions: ^4.18.0 @@ -2003,13 +2003,13 @@ __metadata: tslib: 2.6.2 peerDependencies: "@bfc/shared": "*" - checksum: ec0579117519e9a82118e3f68a05b2b71c717c0dde7e88c2af0bc1033856faa88d80635f855110d0e7e87b5d4dd5cfff7cae2548bcb13bc47800eadb9f619a5f + checksum: 984e67c6cc13359b2415904ce8ab616960ebff71ca7066a491d5f9ac6b8fa299a6e005cbb0ef09a9d2248f9ea2404fde5d76eb7864bea9acc2190801198be3e1 languageName: node linkType: hard "@bfc/shared@file:../../Composer/packages/lib/shared::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/shared@file:../../Composer/packages/lib/shared#../../Composer/packages/lib/shared::hash=61e075&locator=azurePublish%40workspace%3A." + resolution: "@bfc/shared@file:../../Composer/packages/lib/shared#../../Composer/packages/lib/shared::hash=e46d5d&locator=azurePublish%40workspace%3A." dependencies: "@botframework-composer/types": "*" format-message: 6.2.4 @@ -2023,13 +2023,13 @@ __metadata: react: 16.13.1 react-dom: 16.13.1 tslib: 2.4.0 - checksum: 2b9e3237e6f3e046a8ed7666c94c9311b46b4e2ac4872b8b3cf04512d1061f8d4cde843ba062fbfe34d3288da210ce627e002dc8d4a23cedb4f434d8e9ead48c + checksum: 4389dcc9171c286c1afcc7b11183590a6e6af1f3f2a68f3e5d7e9312512215899dba8a1ea6816cea063b14bcd460adf4313b40bbf16f8edb60b35c8d16e82338 languageName: node linkType: hard "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared#../../Composer/packages/lib/ui-shared::hash=bedc9f&locator=azurePublish%40workspace%3A." + resolution: "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared#../../Composer/packages/lib/ui-shared::hash=08fb1c&locator=azurePublish%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -2041,7 +2041,7 @@ __metadata: format-message: ^6.2.3 react: 16.13.1 react-dom: 16.13.1 - checksum: ae99efbc340144ff9a9048eb5baa2f4c91bd10891815152e386115f6dfee11597941f8deff5d14460ba7a60340350185f26d264d7225cb9aed9ab06e618d1c81 + checksum: c45197411af2c8c90c4aca3875a46e35dff6b9baf288e48df04b2c8eadcca278b468a03ec138fd0d16fdad89b1f6c31dfa83c5aa55643776ab3ae1333394dcff languageName: node linkType: hard @@ -2068,7 +2068,7 @@ __metadata: "@botframework-composer/types@file:../../Composer/packages/types::locator=azurePublish%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=azurePublish%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=azurePublish%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -2077,7 +2077,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/azurePublishNew/yarn-berry.lock b/extensions/azurePublishNew/yarn-berry.lock index 183b282475..0d8377bddd 100644 --- a/extensions/azurePublishNew/yarn-berry.lock +++ b/extensions/azurePublishNew/yarn-berry.lock @@ -2016,7 +2016,7 @@ __metadata: "@bfc/extension-client@file:../../Composer/packages/extension-client::locator=azure-publish-new%40workspace%3A.": version: 1.0.0 - resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=26efde&locator=azure-publish-new%40workspace%3A." + resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=5e1b50&locator=azure-publish-new%40workspace%3A." dependencies: debug: ^4.1.1 lodash: ^4.17.19 @@ -2025,13 +2025,13 @@ __metadata: "@botframework-composer/types": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 1ba954ecb4f9bbf9ea2dcf99e509c57da8e7d9a2967d1d1edbbcf814191a9c3c4de1947f2a5a4a22947a5208bd9bceb2f62c273385f7dd336bd0bf638ab4ee22 + checksum: f8d4ffbeb3e8d1f9043fcb31484c678cfc068118f3cd3fd358de6669f922e1df2566be4740fb80999182a6abda722814946646dd0193dad7341bc592c7f03d8e languageName: node linkType: hard "@bfc/indexers@file:../../Composer/packages/lib/indexers::locator=azure-publish-new%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=0b8255&locator=azure-publish-new%40workspace%3A." + resolution: "@bfc/indexers@file:../../Composer/packages/lib/indexers#../../Composer/packages/lib/indexers::hash=f8e51f&locator=azure-publish-new%40workspace%3A." dependencies: "@microsoft/bf-lu": 4.15.0-dev.20210702.cbf708d adaptive-expressions: ^4.18.0 @@ -2040,13 +2040,13 @@ __metadata: tslib: 2.6.2 peerDependencies: "@bfc/shared": "*" - checksum: ec0579117519e9a82118e3f68a05b2b71c717c0dde7e88c2af0bc1033856faa88d80635f855110d0e7e87b5d4dd5cfff7cae2548bcb13bc47800eadb9f619a5f + checksum: 984e67c6cc13359b2415904ce8ab616960ebff71ca7066a491d5f9ac6b8fa299a6e005cbb0ef09a9d2248f9ea2404fde5d76eb7864bea9acc2190801198be3e1 languageName: node linkType: hard "@bfc/shared@file:../../Composer/packages/lib/shared::locator=azure-publish-new%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/shared@file:../../Composer/packages/lib/shared#../../Composer/packages/lib/shared::hash=61e075&locator=azure-publish-new%40workspace%3A." + resolution: "@bfc/shared@file:../../Composer/packages/lib/shared#../../Composer/packages/lib/shared::hash=e46d5d&locator=azure-publish-new%40workspace%3A." dependencies: "@botframework-composer/types": "*" format-message: 6.2.4 @@ -2060,13 +2060,13 @@ __metadata: react: 16.13.1 react-dom: 16.13.1 tslib: 2.4.0 - checksum: 2b9e3237e6f3e046a8ed7666c94c9311b46b4e2ac4872b8b3cf04512d1061f8d4cde843ba062fbfe34d3288da210ce627e002dc8d4a23cedb4f434d8e9ead48c + checksum: 4389dcc9171c286c1afcc7b11183590a6e6af1f3f2a68f3e5d7e9312512215899dba8a1ea6816cea063b14bcd460adf4313b40bbf16f8edb60b35c8d16e82338 languageName: node linkType: hard "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared::locator=azure-publish-new%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared#../../Composer/packages/lib/ui-shared::hash=bedc9f&locator=azure-publish-new%40workspace%3A." + resolution: "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared#../../Composer/packages/lib/ui-shared::hash=08fb1c&locator=azure-publish-new%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -2078,7 +2078,7 @@ __metadata: format-message: ^6.2.3 react: 16.13.1 react-dom: 16.13.1 - checksum: ae99efbc340144ff9a9048eb5baa2f4c91bd10891815152e386115f6dfee11597941f8deff5d14460ba7a60340350185f26d264d7225cb9aed9ab06e618d1c81 + checksum: c45197411af2c8c90c4aca3875a46e35dff6b9baf288e48df04b2c8eadcca278b468a03ec138fd0d16fdad89b1f6c31dfa83c5aa55643776ab3ae1333394dcff languageName: node linkType: hard @@ -2105,7 +2105,7 @@ __metadata: "@botframework-composer/types@file:../../Composer/packages/types::locator=azure-publish-new%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=azure-publish-new%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=azure-publish-new%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -2114,7 +2114,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/localPublish/yarn-berry.lock b/extensions/localPublish/yarn-berry.lock index fe259e0804..a6b87fc0c8 100644 --- a/extensions/localPublish/yarn-berry.lock +++ b/extensions/localPublish/yarn-berry.lock @@ -7,7 +7,7 @@ __metadata: "@botframework-composer/types@file:../../Composer/packages/types::locator=localpublish%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=localpublish%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=localpublish%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -16,7 +16,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/mockRemotePublish/yarn-berry.lock b/extensions/mockRemotePublish/yarn-berry.lock index da175bdaf8..b9c5a36680 100644 --- a/extensions/mockRemotePublish/yarn-berry.lock +++ b/extensions/mockRemotePublish/yarn-berry.lock @@ -7,7 +7,7 @@ __metadata: "@botframework-composer/types@file:../../Composer/packages/types::locator=mockRemotePublish%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=mockRemotePublish%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=mockRemotePublish%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -16,7 +16,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/package.json b/extensions/package.json index 4e3d4567ca..c47b721a0a 100644 --- a/extensions/package.json +++ b/extensions/package.json @@ -17,8 +17,8 @@ "dependencies": { "@emotion/eslint-plugin": "11.11.0", "@types/fs-extra": "11.0.4", - "@typescript-eslint/eslint-plugin": "7.1.1", - "@typescript-eslint/parser": "7.1.1", + "@typescript-eslint/eslint-plugin": "5.62.0", + "@typescript-eslint/parser": "5.62.0", "esbuild": "0.20.1", "esbuild-plugin-globals": "0.2.0", "eslint": "8.57.0", diff --git a/extensions/packageManager/yarn-berry.lock b/extensions/packageManager/yarn-berry.lock index ab30680980..2ad6c26dd7 100644 --- a/extensions/packageManager/yarn-berry.lock +++ b/extensions/packageManager/yarn-berry.lock @@ -165,7 +165,7 @@ __metadata: "@bfc/extension-client@file:../../Composer/packages/extension-client::locator=package-manager%40workspace%3A.": version: 1.0.0 - resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=26efde&locator=package-manager%40workspace%3A." + resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=5e1b50&locator=package-manager%40workspace%3A." dependencies: debug: ^4.1.1 lodash: ^4.17.19 @@ -174,13 +174,13 @@ __metadata: "@botframework-composer/types": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 1ba954ecb4f9bbf9ea2dcf99e509c57da8e7d9a2967d1d1edbbcf814191a9c3c4de1947f2a5a4a22947a5208bd9bceb2f62c273385f7dd336bd0bf638ab4ee22 + checksum: f8d4ffbeb3e8d1f9043fcb31484c678cfc068118f3cd3fd358de6669f922e1df2566be4740fb80999182a6abda722814946646dd0193dad7341bc592c7f03d8e languageName: node linkType: hard "@bfc/extension@file:../../Composer/packages/extension::locator=package-manager%40workspace%3A.": version: 1.0.0 - resolution: "@bfc/extension@file:../../Composer/packages/extension#../../Composer/packages/extension::hash=920957&locator=package-manager%40workspace%3A." + resolution: "@bfc/extension@file:../../Composer/packages/extension#../../Composer/packages/extension::hash=5e83a7&locator=package-manager%40workspace%3A." dependencies: "@botframework-composer/types": "*" "@types/debug": ^4.1.5 @@ -194,13 +194,13 @@ __metadata: path-to-regexp: ^6.1.0 tar: ^6.1.6 tslib: 2.6.2 - checksum: 872fbde3b59218dc4fc4289aa26f71f86c364f4032333b6ca1650d0a14598d5448a1ad0af74cb70c21a168294daea289797cb47a1feb7bd71c51c806b693e341 + checksum: 25202c492492f48cb1e97a91ea0d7e8507544df1558559bbacc27d548f3fdd25fa10a3536891235e6d04e40a027548a7a02004b8ef61ac88f73b73e91481c877 languageName: node linkType: hard "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared::locator=package-manager%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared#../../Composer/packages/lib/ui-shared::hash=bedc9f&locator=package-manager%40workspace%3A." + resolution: "@bfc/ui-shared@file:../../Composer/packages/lib/ui-shared#../../Composer/packages/lib/ui-shared::hash=08fb1c&locator=package-manager%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -212,13 +212,13 @@ __metadata: format-message: ^6.2.3 react: 16.13.1 react-dom: 16.13.1 - checksum: ae99efbc340144ff9a9048eb5baa2f4c91bd10891815152e386115f6dfee11597941f8deff5d14460ba7a60340350185f26d264d7225cb9aed9ab06e618d1c81 + checksum: c45197411af2c8c90c4aca3875a46e35dff6b9baf288e48df04b2c8eadcca278b468a03ec138fd0d16fdad89b1f6c31dfa83c5aa55643776ab3ae1333394dcff languageName: node linkType: hard "@botframework-composer/types@file:../../Composer/packages/types::locator=package-manager%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=package-manager%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=package-manager%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -227,7 +227,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/pvaPublish/yarn-berry.lock b/extensions/pvaPublish/yarn-berry.lock index 0c20c2e336..58fc7f9e1b 100644 --- a/extensions/pvaPublish/yarn-berry.lock +++ b/extensions/pvaPublish/yarn-berry.lock @@ -1892,7 +1892,7 @@ __metadata: "@bfc/extension-client@file:../../Composer/packages/extension-client::locator=pva-publish-composer%40workspace%3A.": version: 1.0.0 - resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=26efde&locator=pva-publish-composer%40workspace%3A." + resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=5e1b50&locator=pva-publish-composer%40workspace%3A." dependencies: debug: ^4.1.1 lodash: ^4.17.19 @@ -1901,7 +1901,7 @@ __metadata: "@botframework-composer/types": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 1ba954ecb4f9bbf9ea2dcf99e509c57da8e7d9a2967d1d1edbbcf814191a9c3c4de1947f2a5a4a22947a5208bd9bceb2f62c273385f7dd336bd0bf638ab4ee22 + checksum: f8d4ffbeb3e8d1f9043fcb31484c678cfc068118f3cd3fd358de6669f922e1df2566be4740fb80999182a6abda722814946646dd0193dad7341bc592c7f03d8e languageName: node linkType: hard @@ -1928,7 +1928,7 @@ __metadata: "@botframework-composer/types@file:../../Composer/packages/types::locator=pva-publish-composer%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=pva-publish-composer%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=pva-publish-composer%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -1937,7 +1937,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/runtimes/yarn-berry.lock b/extensions/runtimes/yarn-berry.lock index 4f0a825ea6..a9c6fa83ac 100644 --- a/extensions/runtimes/yarn-berry.lock +++ b/extensions/runtimes/yarn-berry.lock @@ -7,7 +7,7 @@ __metadata: "@botframework-composer/types@file:../../Composer/packages/types::locator=plugin-runtimes%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=plugin-runtimes%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=plugin-runtimes%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -16,7 +16,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/sample-ui-plugin/yarn-berry.lock b/extensions/sample-ui-plugin/yarn-berry.lock index 1669c212ee..913424d28f 100644 --- a/extensions/sample-ui-plugin/yarn-berry.lock +++ b/extensions/sample-ui-plugin/yarn-berry.lock @@ -77,7 +77,7 @@ __metadata: "@bfc/extension-client@file:../../Composer/packages/extension-client::locator=sample-ui-plugin%40workspace%3A.": version: 1.0.0 - resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=26efde&locator=sample-ui-plugin%40workspace%3A." + resolution: "@bfc/extension-client@file:../../Composer/packages/extension-client#../../Composer/packages/extension-client::hash=5e1b50&locator=sample-ui-plugin%40workspace%3A." dependencies: debug: ^4.1.1 lodash: ^4.17.19 @@ -86,13 +86,13 @@ __metadata: "@botframework-composer/types": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 1ba954ecb4f9bbf9ea2dcf99e509c57da8e7d9a2967d1d1edbbcf814191a9c3c4de1947f2a5a4a22947a5208bd9bceb2f62c273385f7dd336bd0bf638ab4ee22 + checksum: f8d4ffbeb3e8d1f9043fcb31484c678cfc068118f3cd3fd358de6669f922e1df2566be4740fb80999182a6abda722814946646dd0193dad7341bc592c7f03d8e languageName: node linkType: hard "@botframework-composer/types@file:../../Composer/packages/types::locator=sample-ui-plugin%40workspace%3A.": version: 0.0.2 - resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=c48524&locator=sample-ui-plugin%40workspace%3A." + resolution: "@botframework-composer/types@file:../../Composer/packages/types#../../Composer/packages/types::hash=ef4b28&locator=sample-ui-plugin%40workspace%3A." dependencies: "@types/express": 4.16.1 "@types/passport": ^1.0.4 @@ -101,7 +101,7 @@ __metadata: express-serve-static-core: 0.1.1 json-schema: 0.4.0 tslib: 2.6.2 - checksum: a734fcc8afed6b9a50f6e068c18d5886cb77fa9ddc284abcffeff119fd40a69952de52d784619631a339f93ca2ab020efcabc9b250af45fd79ec8b9a9b017c8c + checksum: 66745edf7c165c79d255e020ca48451e183e2d8590ca0401664c3d02d587ca5dccece134be71382bf6cec92da49151397231332197d0c0b5654ff18ad7e292bb languageName: node linkType: hard diff --git a/extensions/yarn-berry.lock b/extensions/yarn-berry.lock index 6989e369f8..c20deefce6 100644 --- a/extensions/yarn-berry.lock +++ b/extensions/yarn-berry.lock @@ -191,7 +191,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.2.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -202,7 +202,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b @@ -311,7 +311,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12": +"@types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -343,133 +343,131 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.5.0": +"@types/semver@npm:^7.3.12": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.1.1" +"@typescript-eslint/eslint-plugin@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" dependencies: - "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/type-utils": 7.1.1 - "@typescript-eslint/utils": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/type-utils": 5.62.0 + "@typescript-eslint/utils": 5.62.0 debug: ^4.3.4 graphemer: ^1.4.0 - ignore: ^5.2.4 - natural-compare: ^1.4.0 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: e439a09996dd1b2bc8a643d7a1c7aad09b744ee38f6d3a8d391a7a846a23eafd3b1513c73da363df62e756f8b3a27c569b12fcbedad0fc1f87c0af20fd53db8e + checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 languageName: node linkType: hard -"@typescript-eslint/parser@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/parser@npm:7.1.1" +"@typescript-eslint/parser@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/parser@npm:5.62.0" dependencies: - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/typescript-estree": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 debug: ^4.3.4 peerDependencies: - eslint: ^8.56.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 9a8494a3ca517759e33c8a153779efe1331d86bcd4af5110d14c79e2507596265dd7cf113c9312fdf97832b60e76646dbabe9b87eb55b6616ba2a0c038b9fad1 + checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/scope-manager@npm:7.1.1" +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" dependencies: - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 - checksum: 4f91bed41b14051335ec7f73bb2c8970018ba2c056dda3166a722d85a620a610643e7f703304c03106759d0a195ea1d9ff44edcc86feb2c62817ae3d06276c49 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/type-utils@npm:7.1.1" +"@typescript-eslint/type-utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/type-utils@npm:5.62.0" dependencies: - "@typescript-eslint/typescript-estree": 7.1.1 - "@typescript-eslint/utils": 7.1.1 + "@typescript-eslint/typescript-estree": 5.62.0 + "@typescript-eslint/utils": 5.62.0 debug: ^4.3.4 - ts-api-utils: ^1.0.1 + tsutils: ^3.21.0 peerDependencies: - eslint: ^8.56.0 + eslint: "*" peerDependenciesMeta: typescript: optional: true - checksum: d1afa5c5e4602495a545d0d32aca0bbf6963fb0cbf77e47b2a95883e96d35bd9d51e8eb8d51c7d5b7e4e6ed7a275970eb80ed566e25833c8b4517791df8e648a + checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/types@npm:7.1.1" - checksum: 42be2d881728d99ab50cb4133656d2f54770304a5dca83777a032b9ec20f6e11ca38db79d2b77b29b9cb41a052aa872f4ac2e37b61d40b438efe91e355ec798f +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.1.1" +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" dependencies: - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + semver: ^7.3.7 + tsutils: ^3.21.0 peerDependenciesMeta: typescript: optional: true - checksum: 19c62c792ff05ccea7e8c6054f55be7d2423695cb7ef84b955ee2b74d950e769b353100032467be71a436f3439ecba3b8709513581755e98e910ecb9d8198223 + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/utils@npm:7.1.1" +"@typescript-eslint/utils@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/typescript-estree": 7.1.1 - semver: ^7.5.4 + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 peerDependencies: - eslint: ^8.56.0 - checksum: 76a499c28dec37effb3512a49e51e1d788e49647ab750fc8a0d16c3aae4b9fea83f1cd20b5bd0be6113eb6112a96e93ee3327ccfd5c80028526c3ce5a73b5027 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.1.1" +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" dependencies: - "@typescript-eslint/types": 7.1.1 - eslint-visitor-keys: ^3.4.1 - checksum: fc98a8782ad9c5dbb0d6ed89baa89c37d3cb28ecc08fb013180bed4e5336e1d289ad3cdb1cd71b9c0abb7b624858258c0d68fe4db8911416b61f13ec7c553a47 + "@typescript-eslint/types": 5.62.0 + eslint-visitor-keys: ^3.3.0 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 languageName: node linkType: hard @@ -885,8 +883,8 @@ __metadata: dependencies: "@emotion/eslint-plugin": 11.11.0 "@types/fs-extra": 11.0.4 - "@typescript-eslint/eslint-plugin": 7.1.1 - "@typescript-eslint/parser": 7.1.1 + "@typescript-eslint/eslint-plugin": 5.62.0 + "@typescript-eslint/parser": 5.62.0 cross-env: 7.0.3 esbuild: 0.20.1 esbuild-plugin-globals: 0.2.0 @@ -1522,6 +1520,16 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + "eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" @@ -1616,6 +1624,13 @@ __metadata: languageName: node linkType: hard +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" @@ -2049,7 +2064,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.2.0": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 @@ -2648,6 +2663,13 @@ __metadata: languageName: node linkType: hard +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -3154,7 +3176,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.5.4": +"semver@npm:^7.0.0, semver@npm:^7.3.7": version: 7.6.0 resolution: "semver@npm:7.6.0" dependencies: @@ -3377,15 +3399,6 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.2.1 - resolution: "ts-api-utils@npm:1.2.1" - peerDependencies: - typescript: ">=4.2.0" - checksum: 17a2a4454d65a6765b9351304cfd516fcda3098f49d72bba90cb7f22b6a09a573b4a1993fd7de7d6b8046c408960c5f21a25e64ccb969d484b32ea3b3e19d6e4 - languageName: node - linkType: hard - "tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" @@ -3398,6 +3411,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + "tslib@npm:^2.1.0, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -3405,6 +3425,17 @@ __metadata: languageName: node linkType: hard +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + 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" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" From e1642415ee45915b208cc1ba4bbc2dd6a61ed2ed Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 13 Mar 2024 13:33:48 -0700 Subject: [PATCH 53/68] Minor eslint fixes --- extensions/.eslintrc.js | 3 --- extensions/githubAuth/index.ts | 1 - extensions/packageManager/src/.eslintrc.js | 9 +++++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/.eslintrc.js b/extensions/.eslintrc.js index ad3992b233..22f5948eb0 100644 --- a/extensions/.eslintrc.js +++ b/extensions/.eslintrc.js @@ -6,9 +6,7 @@ module.exports = { extends: [ 'eslint:recommended', 'plugin:prettier/recommended', - 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/eslint-recommended', - 'prettier/@typescript-eslint', 'plugin:react/recommended', ], plugins: ['import', 'notice', 'security', 'lodash'], @@ -39,7 +37,6 @@ module.exports = { ], // typescript - '@typescript-eslint/ban-ts-ignore': 'warn', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/no-empty-function': 'off', diff --git a/extensions/githubAuth/index.ts b/extensions/githubAuth/index.ts index e81f4ae45c..eeed01d381 100644 --- a/extensions/githubAuth/index.ts +++ b/extensions/githubAuth/index.ts @@ -3,7 +3,6 @@ const GitHubStrategy = require('passport-github').Strategy; -// eslint-disable-next-line @typescript-eslint/no-var-requires const { GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, BASE_URL } = require('./config.json'); module.exports = { diff --git a/extensions/packageManager/src/.eslintrc.js b/extensions/packageManager/src/.eslintrc.js index 855a7edada..7adff7a3df 100644 --- a/extensions/packageManager/src/.eslintrc.js +++ b/extensions/packageManager/src/.eslintrc.js @@ -5,7 +5,6 @@ module.exports = { extends: [ 'eslint:recommended', 'plugin:prettier/recommended', - 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/eslint-recommended', 'prettier/@typescript-eslint', ], @@ -15,6 +14,13 @@ module.exports = { es6: true, node: true, }, + parserOptions: { + ecmaVersion: 6, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + }, rules: { 'notice/notice': [ 'error', @@ -25,7 +31,6 @@ module.exports = { ], // typescript - '@typescript-eslint/ban-ts-ignore': 'warn', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/no-empty-function': 'off', From 0e0569131a013a07dce9107e99b61bb33428487b Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 13 Mar 2024 14:07:46 -0700 Subject: [PATCH 54/68] Update nodejs version used on CI --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 58b082894f..367822f379 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: - name: Set Node Version uses: actions/setup-node@v1 with: - node-version: 14.15.5 + node-version: 14.21.3 - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" From 19ca14d6e297de80f10c192243c2ba659dfdde65 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Wed, 13 Mar 2024 16:04:58 -0700 Subject: [PATCH 55/68] Fix lint and update lock files --- .../client/src/components/CreationFlow/CreateOptions.tsx | 2 +- Composer/packages/lib/code-editor/src/utils/withTooltip.tsx | 5 +---- extensions/azurePublish/yarn-berry.lock | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Composer/packages/client/src/components/CreationFlow/CreateOptions.tsx b/Composer/packages/client/src/components/CreationFlow/CreateOptions.tsx index 725d7179bc..7013bff688 100644 --- a/Composer/packages/client/src/components/CreationFlow/CreateOptions.tsx +++ b/Composer/packages/client/src/components/CreationFlow/CreateOptions.tsx @@ -28,7 +28,7 @@ type CreateOptionsProps = { onNext: (templateName: string, templateLanguage: string, urlData?: string) => void; onJumpToOpenModal: (search?: string) => void; fetchReadMe: (moduleName: string) => any; -} & RouteComponentProps<{}>; +} & RouteComponentProps; export function CreateOptions(props: CreateOptionsProps) { const [isOpenOptionsModal, setIsOpenOptionsModal] = useState(true); diff --git a/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx b/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx index 8b6b3c6d0b..8b4011f910 100644 --- a/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx +++ b/Composer/packages/lib/code-editor/src/utils/withTooltip.tsx @@ -7,10 +7,7 @@ import { ITooltipHostProps, TooltipHost } from '@fluentui/react/lib/Tooltip'; export type WithTooltipProps = ITooltipHostProps; export const withTooltip = -

>( - tooltipProps: WithTooltipProps, - Component: React.FC

| React.ComponentType

, - ) => +

>(tooltipProps: WithTooltipProps, Component: React.FC

| React.ComponentType

) => (props: P) => ( diff --git a/extensions/azurePublish/yarn-berry.lock b/extensions/azurePublish/yarn-berry.lock index 1eeebb83b5..81162d8a83 100644 --- a/extensions/azurePublish/yarn-berry.lock +++ b/extensions/azurePublish/yarn-berry.lock @@ -1950,7 +1950,7 @@ __metadata: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=6b6582&locator=azurePublish%40workspace%3A." + resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=84d826&locator=azurePublish%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -1973,7 +1973,7 @@ __metadata: "@bfc/ui-shared": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 7a102c5d0a3a47dc83500e288f5d91b27b3007772a8efcd9a3d461d2c720178ed31d82eb8da9dd690389043788fb16f5d459c1f1c0bb0424bbfff1b42593b23e + checksum: 25cb2a36d40dd9bc31b5d93184799f3009ea4bde60dddd29bb45d2176134121a870c67b0ea210599c4f063a5a2b60755982ddbf99a9e807931e978482cb9ecd9 languageName: node linkType: hard From 9f17feb6dd49bff1f33438021d149ab4c6593cae Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 14 Mar 2024 10:57:28 -0700 Subject: [PATCH 56/68] Update extension lock file --- extensions/azurePublish/yarn-berry.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/azurePublish/yarn-berry.lock b/extensions/azurePublish/yarn-berry.lock index 81162d8a83..73b094dedc 100644 --- a/extensions/azurePublish/yarn-berry.lock +++ b/extensions/azurePublish/yarn-berry.lock @@ -1950,7 +1950,7 @@ __metadata: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor::locator=azurePublish%40workspace%3A.": version: 0.0.0 - resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=84d826&locator=azurePublish%40workspace%3A." + resolution: "@bfc/code-editor@file:../../Composer/packages/lib/code-editor#../../Composer/packages/lib/code-editor::hash=9b1114&locator=azurePublish%40workspace%3A." dependencies: "@emotion/react": ^11.1.3 "@emotion/styled": ^11.1.3 @@ -1973,7 +1973,7 @@ __metadata: "@bfc/ui-shared": "*" react: 16.13.1 react-dom: 16.13.1 - checksum: 25cb2a36d40dd9bc31b5d93184799f3009ea4bde60dddd29bb45d2176134121a870c67b0ea210599c4f063a5a2b60755982ddbf99a9e807931e978482cb9ecd9 + checksum: fd3354f313d735f00b601dae1a672c1232f47a7d6d360990e17ed4fc1ac6863cc29f91dab3cec8fd6c6abb656e8cedc388d43f83e2199a8760b942ab38578e01 languageName: node linkType: hard From 758b5be86ee1ba2ca90fa2ea48619f9de6f0ed4b Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 14 Mar 2024 11:58:14 -0700 Subject: [PATCH 57/68] Extensions: lint fixes --- extensions/.eslintrc.js | 4 +- extensions/authTest/index.ts | 6 +- .../src/components/ChooseProvisionAction.tsx | 12 ++-- .../src/components/ResourceGroupPicker.tsx | 4 +- .../azurePublish/src/components/api.tsx | 16 ++--- .../src/components/azureProvisionDialog.tsx | 46 ++++++------- .../azurePublish/src/components/util.ts | 2 +- .../azureResourceManager.ts | 68 +++++++++---------- .../src/node/backgroundProcessManager.ts | 2 +- extensions/azurePublish/src/node/deploy.ts | 24 +++---- extensions/azurePublish/src/node/index.ts | 22 +++--- .../src/node/keyvaultHelper/keyvaultApi.ts | 6 +- .../azurePublish/src/node/luisAndQnA.ts | 10 +-- .../azurePublish/src/node/provision.test.ts | 4 +- extensions/azurePublish/src/node/provision.ts | 10 +-- .../azurePublish/src/node/utils/copyDir.ts | 2 +- extensions/azurePublishNew/src/api.ts | 8 +-- .../src/components/AzureProvisionWizard.tsx | 2 +- .../CreateResourcesWizard.tsx | 4 +- .../HandOffToAdminWizard.tsx | 4 +- .../steps/CreateResourceInstructionsStep.tsx | 2 +- .../steps/HandOffInstructionsStep.tsx | 6 +- .../steps/ImportInstructionsStep.tsx | 4 +- .../steps/ResourceConfigurationStep.tsx | 6 +- .../steps/ReviewResourcesStep.tsx | 2 +- .../DeployLocationPicker.tsx | 4 +- .../ResourceGroupPicker.tsx | 18 ++--- .../SubscriptionPicker.tsx | 6 +- .../resourceConfiguration/TenantPicker.tsx | 6 +- .../searchableDropdown/SearchableDropdown.tsx | 11 +-- .../SearchableDropdownTextField.tsx | 2 +- .../substringSearchStrategy.ts | 2 +- .../shared/userPersona/UserPersona.tsx | 14 ++-- .../src/hooks/useHandOffInstructions.ts | 2 +- .../src/hooks/usePreferredAppServiceOS.ts | 2 +- .../src/hooks/useResourceConfiguration.ts | 14 ++-- .../src/node/azureResources/appInsights.ts | 12 ++-- .../node/azureResources/appRegistration.ts | 4 +- .../src/node/azureResources/azureFunctions.ts | 2 +- .../src/node/azureResources/blobStorage.ts | 2 +- .../src/node/azureResources/cosmosDb.ts | 57 ++++++++-------- .../src/node/azureResources/luisAuthoring.ts | 4 +- .../src/node/azureResources/luisPrediction.ts | 4 +- .../src/node/azureResources/qna.ts | 14 ++-- .../src/node/azureResources/servicePlan.ts | 4 +- .../src/node/azureResources/types.ts | 2 +- .../src/node/azureResources/webApp.ts | 2 +- extensions/azurePublishNew/src/node/index.ts | 4 +- extensions/azurePublishNew/src/node/types.ts | 2 +- .../dispatchers/handOffToAdminDispatcher.ts | 7 +- .../resourceConfigurationDispatcher.ts | 7 +- .../src/services/azureResources/absService.ts | 2 +- .../azureResources/appInsightsService.ts | 2 +- .../azureResources/blobStorageService.ts | 2 +- .../azureResources/cosmosDBService.ts | 2 +- .../services/azureResources/luisService.ts | 2 +- .../src/services/azureResources/qnaService.ts | 4 +- .../webAppAzureFunctionService.ts | 2 +- .../services/azureResources/webAppService.ts | 2 +- .../webAppServicePlanService.ts | 2 +- .../src/services/resourceGroupService.ts | 2 +- extensions/githubAuth/index.ts | 8 +-- extensions/localPublish/src/index.ts | 26 ++++--- .../localPublish/src/runtimeLogServer.ts | 4 +- extensions/mockRemotePublish/src/index.ts | 4 +- extensions/mongoStorage/src/index.ts | 4 +- extensions/packageManager/src/.eslintrc.js | 2 +- .../src/components/FeedModal.tsx | 4 +- .../src/components/ImportDialog.tsx | 2 +- .../src/node/feeds/npm/npmFeed.ts | 6 +- .../src/node/feeds/nuget/localNuGetFeed.ts | 10 ++- .../src/node/feeds/nuget/nugetFeed.ts | 4 +- extensions/packageManager/src/node/index.ts | 18 ++--- .../packageManager/src/pages/Library.tsx | 18 ++--- .../pvaPublish/src/components/pvaDialog.tsx | 2 +- .../pvaPublish/src/node/publish.spec.ts | 8 +-- extensions/pvaPublish/src/node/publish.ts | 23 +++---- extensions/runtimes/src/copyDir.ts | 2 +- extensions/runtimes/src/index.ts | 32 ++++----- extensions/sample-ui-plugin/src/styles.ts | 22 ++++-- 80 files changed, 361 insertions(+), 344 deletions(-) diff --git a/extensions/.eslintrc.js b/extensions/.eslintrc.js index 22f5948eb0..a5c6b83364 100644 --- a/extensions/.eslintrc.js +++ b/extensions/.eslintrc.js @@ -6,6 +6,7 @@ module.exports = { extends: [ 'eslint:recommended', 'plugin:prettier/recommended', + 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/eslint-recommended', 'plugin:react/recommended', ], @@ -41,6 +42,7 @@ module.exports = { '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-unnecessary-type-assertion': 'off', + '@typescript-eslint/no-var-requires': 0, '@typescript-eslint/no-use-before-define': 'warn', '@typescript-eslint/prefer-optional-chain': 'error', @@ -110,7 +112,7 @@ module.exports = { 'react/no-danger': 'error', 'react/no-deprecated': 'warn', 'react/prop-types': 'off', - 'react/no-unknown-property': 'error', + 'react/no-unknown-property': ['error', { 'ignore': ['css'] }], 'react/jsx-boolean-value': ['error', 'never'], 'react/jsx-filename-extension': ['error', { extensions: ['.jsx', '.tsx'] }], // https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/jsx-sort-props.md diff --git a/extensions/authTest/index.ts b/extensions/authTest/index.ts index 31508e9165..9e4d3ef671 100644 --- a/extensions/authTest/index.ts +++ b/extensions/authTest/index.ts @@ -18,20 +18,20 @@ module.exports = { } else { done(null, false, { message: 'Incorrect password' }); } - }) + }), ); // define this BEFORE turning on the middleware... composer.addWebRoute('get', '/login', (req, res) => { res.send( - 'LOGIN REQUIRED

' + 'LOGIN REQUIRED
', ); }); composer.addWebRoute( 'post', '/login/submit', - composer.passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' }) + composer.passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' }), ); composer.addAllowedUrl('/login/submit'); diff --git a/extensions/azurePublish/src/components/ChooseProvisionAction.tsx b/extensions/azurePublish/src/components/ChooseProvisionAction.tsx index 5e2971155b..9e1bd7eb50 100644 --- a/extensions/azurePublish/src/components/ChooseProvisionAction.tsx +++ b/extensions/azurePublish/src/components/ChooseProvisionAction.tsx @@ -79,7 +79,7 @@ const CreateActionContent = () => { {formatMessage( - 'Select this option when you want to provision new Azure resources and publish a bot. A subscription to' + 'Select this option when you want to provision new Azure resources and publish a bot. A subscription to', )}   @@ -138,14 +138,14 @@ const ImportActionContent = () => {

{formatMessage( - 'Select this option if you have access to existing Azure resources and their associated values.' + 'Select this option if you have access to existing Azure resources and their associated values.', )}

{formatMessage( - 'Copy and paste the JSON file containing the values of your existing Azure resources, from the Azure portal. This file includes values for some or all of the following:' + 'Copy and paste the JSON file containing the values of your existing Azure resources, from the Azure portal. This file includes values for some or all of the following:', )}

@@ -190,7 +190,7 @@ const GenerateActionContent = () => { {formatMessage( - 'Select this option to request your Azure admin to provision resources on your behalf, for example, when you don’t have proper permissions to use Azure or you want to generate resources from a sovereign cloud.' + 'Select this option to request your Azure admin to provision resources on your behalf, for example, when you don’t have proper permissions to use Azure or you want to generate resources from a sovereign cloud.', )} @@ -200,7 +200,7 @@ const GenerateActionContent = () => { {formatMessage( - 'Add resources you need for the bot and generate a resource request to share with your Azure admin.' + 'Add resources you need for the bot and generate a resource request to share with your Azure admin.', )} @@ -210,7 +210,7 @@ const GenerateActionContent = () => { {formatMessage( - 'Once you get the resource details from your Azure admin, use them to import existing resources.' + 'Once you get the resource details from your Azure admin, use them to import existing resources.', )} diff --git a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx index 9461a2e4da..1d258165e1 100644 --- a/extensions/azurePublish/src/components/ResourceGroupPicker.tsx +++ b/extensions/azurePublish/src/components/ResourceGroupPicker.tsx @@ -86,8 +86,8 @@ export const ResourceGroupPicker = ({ if (debouncedNewName && !debouncedNewName.match(/^[-\w._()]+$/)) { setNewNameErrorMessage( formatMessage( - 'Resource group names only allow alphanumeric characters, periods, underscores, hyphens and parenthesis and cannot end in a period.' - ) + 'Resource group names only allow alphanumeric characters, periods, underscores, hyphens and parenthesis and cannot end in a period.', + ), ); } else if (alreadyExists) { setNewNameErrorMessage(formatMessage('A resource with this name already exists.')); diff --git a/extensions/azurePublish/src/components/api.tsx b/extensions/azurePublish/src/components/api.tsx index bc73613b4e..1ae87dad32 100644 --- a/extensions/azurePublish/src/components/api.tsx +++ b/extensions/azurePublish/src/components/api.tsx @@ -53,7 +53,7 @@ export const getSubscriptions = async (token: string): Promise> => { try { if (!subscriptionId) { @@ -143,7 +143,7 @@ export const getDeployLocations = async (token: string, subscriptionId: string) `https://management.azure.com/subscriptions/${subscriptionId}/locations?api-version=2019-10-01`, { headers: { Authorization: `Bearer ${token}` }, - } + }, ); return result.data.value; } catch (error) { @@ -159,7 +159,7 @@ export const getDeployLocations = async (token: string, subscriptionId: string) export const getSupportedRegionsByType = async ( token: string, subscriptionId: string, - resourceType: AzureResourceProviderType + resourceType: AzureResourceProviderType, ): Promise> => { try { if (!subscriptionId) { @@ -207,7 +207,7 @@ export const getSupportedRegionsByType = async ( export const CheckBotNameAvailability = async ( token: string, botName: string, - subscriptionId: string + subscriptionId: string, ): Promise => { try { if (!botName) { @@ -265,7 +265,7 @@ export const CheckBotNameAvailability = async ( export const CheckWebAppNameAvailability = async ( token: string, webAppName: string, - subscriptionId: string + subscriptionId: string, ): Promise => { try { if (!webAppName) { @@ -292,7 +292,7 @@ export const CheckWebAppNameAvailability = async ( const webSiteManagementClient = new WebSiteManagementClient(credentials, subscriptionId); const getCheckNameAvailabilityResult = await webSiteManagementClient.checkNameAvailability( webAppName, - 'Microsoft.Web/sites' + 'Microsoft.Web/sites', ); if (getCheckNameAvailabilityResult._response.status >= 300) { logger({ @@ -326,7 +326,7 @@ export const CheckCognitiveResourceSku = async ( location: string, sku: string, kind: string, - type: string + type: string, ): Promise => { try { if (!subscriptionId) { diff --git a/extensions/azurePublish/src/components/azureProvisionDialog.tsx b/extensions/azurePublish/src/components/azureProvisionDialog.tsx index cfa369e6c6..a1ad56c572 100644 --- a/extensions/azurePublish/src/components/azureProvisionDialog.tsx +++ b/extensions/azurePublish/src/components/azureProvisionDialog.tsx @@ -205,13 +205,13 @@ const DialogTitle = { {children} ), - } + }, ), }, REVIEW: { title: formatMessage('Review resources to be created'), subText: formatMessage( - 'The following resources will be created and provisioned for your bot. Once provisioned, they will be available in the Azure portal.' + 'The following resources will be created and provisioned for your bot. Once provisioned, they will be available in the Azure portal.', ), }, CONFIG_RESOURCES: { @@ -403,7 +403,7 @@ export const AzureProvisionDialog: React.FC = () => { const preferredAppServiceOS = useMemo(getPreferredAppServiceOS, [currentProjectId, projectCollection]); const [formData, setFormData] = useState( - getDefaultFormData(currentConfig, { ...extensionState, appServiceOperatingSystem: preferredAppServiceOS }) + getDefaultFormData(currentConfig, { ...extensionState, appServiceOperatingSystem: preferredAppServiceOS }), ); const [isLoading, setIsLoading] = useState(true); @@ -454,7 +454,7 @@ export const AzureProvisionDialog: React.FC = () => { 'Provisoning Command:\n' + '{command}\n\n' + 'Detailed instructions:\nhttps://aka.ms/how-to-complete-provision-handoff', - { command: provisionComposer } + { command: provisionComposer }, ); setHandoffInstructions(instructions); @@ -539,8 +539,8 @@ export const AzureProvisionDialog: React.FC = () => { if (data.length === 0) { setSubscriptionsErrorMessage( formatMessage( - 'Your subscription list is empty, please add your subscription, or login with another account.' - ) + 'Your subscription list is empty, please add your subscription, or login with another account.', + ), ); } } @@ -614,7 +614,7 @@ export const AzureProvisionDialog: React.FC = () => { } }, 500); }, - [publishType, formData.subscriptionId, currentUser] + [publishType, formData.subscriptionId, currentUser], ); const newHostName = useCallback( @@ -623,7 +623,7 @@ export const AzureProvisionDialog: React.FC = () => { // debounce name check checkNameAvailability(newName); }, - [checkNameAvailability] + [checkNameAvailability], ); const updateCurrentLocation = useCallback( @@ -639,7 +639,7 @@ export const AzureProvisionDialog: React.FC = () => { } } }, - [deployLocations, luisLocations] + [deployLocations, luisLocations], ); useEffect(() => { @@ -693,7 +693,7 @@ export const AzureProvisionDialog: React.FC = () => { setPageAndTitle(PageTypes.AddResources); }, - [extensionResourceOptions] + [extensionResourceOptions], ); const onSubmit = useCallback( @@ -710,7 +710,7 @@ export const AzureProvisionDialog: React.FC = () => { clearAll(); closeDialog(); }, - [currentUser] + [currentUser], ); const onSave = useCallback(() => { @@ -723,17 +723,17 @@ export const AzureProvisionDialog: React.FC = () => { const isSignedOut = await logOut(); if (isSignedOut) { addNotification( - getLogoutNotificationSettings(formatMessage('You have successfully signed out of Azure'), 'info') + getLogoutNotificationSettings(formatMessage('You have successfully signed out of Azure'), 'info'), ); closeDialog(); } else { addNotification( getLogoutNotificationSettings( formatMessage( - 'There was an error attempting to sign out of Azure. To complete sign out, you may need to restart Composer.' + 'There was an error attempting to sign out of Azure. To complete sign out, you may need to restart Composer.', ), - 'error' - ) + 'error', + ), ); } }, [addNotification]); @@ -748,13 +748,13 @@ export const AzureProvisionDialog: React.FC = () => { const confirmed = await OpenConfirmModal( formatMessage('Sign out of Azure'), formatMessage( - 'By signing out of Azure, your new publishing profile will be canceled and this dialog will close. Do you want to continue?' + 'By signing out of Azure, your new publishing profile will be canceled and this dialog will close. Do you want to continue?', ), { onRenderContent: (subtitle: string) =>
{subtitle}
, confirmText: formatMessage('Sign out'), cancelText: formatMessage('Cancel'), - } + }, ); if (confirmed) { await signoutAndNotify(); @@ -765,7 +765,7 @@ export const AzureProvisionDialog: React.FC = () => { ); }, - [signoutAndNotify] + [signoutAndNotify], ); const isNextDisabled = useMemo(() => { @@ -777,7 +777,7 @@ export const AzureProvisionDialog: React.FC = () => { !formData.region || subscriptionsErrorMessage || errorResourceGroupName || - errorHostName !== '' + errorHostName !== '', ); }, [ formData.subscriptionId, @@ -867,8 +867,8 @@ export const AzureProvisionDialog: React.FC = () => { {renderPropertyInfoIcon( formatMessage( - 'A custom resource group name that you choose or create. Resource groups allow you to group Azure resources for access and management.' - ) + 'A custom resource group name that you choose or create. Resource groups allow you to group Azure resources for access and management.', + ), )} { {formatMessage('Operating System')} {renderPropertyInfoIcon( - formatMessage('Select the operating system that will host your application service.') + formatMessage('Select the operating system that will host your application service.'), )} {