From 54a62f8be4d775a40fe4964452b1c1704bf8641b Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:02:51 +0000 Subject: [PATCH 01/59] Fix bump scripts --- packages/support/cldr-data-downloader/package.json | 2 +- packages/support/cldr-data/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/support/cldr-data-downloader/package.json b/packages/support/cldr-data-downloader/package.json index 4de9619309..759716aaf1 100644 --- a/packages/support/cldr-data-downloader/package.json +++ b/packages/support/cldr-data-downloader/package.json @@ -45,7 +45,7 @@ "build:pre:local-dependencies": "../../../scripts/npm/build-local-dependencies.sh", "build:pre:watch": "../../../scripts/npm/build-watch.sh", "build:run": "echo This package does not need to be built.", - "bump": "npm run bump:dev && npm run bump:prod && (npm audit fix || exit 0)", + "bump": "vg bump prod && vg bump dev && (npm audit fix || exit 0)", "eslint": "npm run precommit", "postversion": "../../../scripts/npm/postversion.sh", "precommit": "npm run precommit:eslint -- src", diff --git a/packages/support/cldr-data/package.json b/packages/support/cldr-data/package.json index bd99ff4780..43ce851a6b 100644 --- a/packages/support/cldr-data/package.json +++ b/packages/support/cldr-data/package.json @@ -45,7 +45,7 @@ "build:pre:local-dependencies": "../../../scripts/npm/build-local-dependencies.sh", "build:pre:watch": "../../../scripts/npm/build-watch.sh", "build:run": "node ./src/install.mjs && node ./src/patch.mjs && touch ./package.json", - "bump": "npm run bump:dev && npm run bump:prod && (npm audit fix || exit 0)", + "bump": "vg bump prod && vg bump dev && (npm audit fix || exit 0)", "eslint": "npm run precommit", "postversion": "../../../scripts/npm/postversion.sh", "precommit": "npm run precommit:eslint -- src", From 168aa7489cf77656a814969092961caea42e6223 Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:11:57 +0000 Subject: [PATCH 02/59] Add local dependencies --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 44a83833c8..709db1dca9 100644 --- a/package.json +++ b/package.json @@ -223,6 +223,9 @@ "strip-ansi@7 dropped support of CommonJS" ] }, + "localDependencies": { + "@msinternal/vibe-grep": "development" + }, "devDependencies": { "@babel/plugin-transform-runtime": "^7.28.5", "@babel/preset-env": "^7.28.5", From 187f42205d50ebd8f66133378042c4aa3480673a Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:22:30 +0000 Subject: [PATCH 03/59] Pin react and react-dom --- packages/api-graph/package.json | 7 ++++++- packages/api-middleware/package.json | 4 ++++ packages/api/package.json | 8 ++++++++ packages/bundle/package.json | 8 ++++++++ packages/component/package.json | 8 ++++++++ packages/debug-theme/package.json | 6 ++++++ packages/fluent-theme/package.json | 4 ++++ packages/react-hooks/package.json | 6 ++++++ packages/react-valibot/package.json | 4 ++++ packages/redux-store/package.json | 4 ++++ packages/styles/package.json | 7 ++++++- 11 files changed, 64 insertions(+), 2 deletions(-) diff --git a/packages/api-graph/package.json b/packages/api-graph/package.json index dddf6deb02..59c256bc58 100644 --- a/packages/api-graph/package.json +++ b/packages/api-graph/package.json @@ -47,7 +47,12 @@ "preversion": "../../scripts/npm/preversion.sh", "start": "../../scripts/npm/notify-build.sh \"src\" \"../react-hooks/package.json\" \"../react-valibot/package.json\" \"../core/package.json\"" }, - "pinDependencies": {}, + "pinDependencies": { + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ] + }, "localDependencies": { "@msinternal/botframework-webchat-base": "development", "@msinternal/botframework-webchat-react-hooks": "development", diff --git a/packages/api-middleware/package.json b/packages/api-middleware/package.json index 9b4b1aaf94..32f0d45af7 100644 --- a/packages/api-middleware/package.json +++ b/packages/api-middleware/package.json @@ -72,6 +72,10 @@ "start": "../../scripts/npm/notify-build.sh \"src\" \"../react-hooks/package.json\" \"../react-valibot/package.json\"" }, "pinDependencies": { + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ], "react-wrap-with": [ "0.1.0", "0.2.0 is having compatibility issues with preact@10.25.4" diff --git a/packages/api/package.json b/packages/api/package.json index 4ce78edd2c..b7306fcee0 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -102,6 +102,14 @@ "16", "react@16.8.6 is our baseline" ], + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ], + "react-dom": [ + "16.8.6", + "using react-dom@16.8.6 to make sure this is the minimum supported version" + ], "react-redux": [ "7", "react-redux@>7 requires newer version of React" diff --git a/packages/bundle/package.json b/packages/bundle/package.json index 16140c45f9..5ab2f1b69d 100644 --- a/packages/bundle/package.json +++ b/packages/bundle/package.json @@ -139,6 +139,14 @@ "3.0.6", "we should bump manually" ], + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ], + "react-dom": [ + "16.8.6", + "using react-dom@16.8.6 to make sure this is the minimum supported version" + ], "shiki": [ "2", "tsd is complaining about shiki@3 lack of typing for named exports, https://arethetypeswrong.github.io/?p=shiki%403.9.1 says the same thing" diff --git a/packages/component/package.json b/packages/component/package.json index bd3c4d1c6b..9e7de56239 100644 --- a/packages/component/package.json +++ b/packages/component/package.json @@ -112,6 +112,14 @@ "13", "markdown-it@14.1.0 has module field and it is breaking Webpack 4 because cross loading CJS and ESM" ], + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ], + "react-dom": [ + "16.8.6", + "using react-dom@16.8.6 to make sure this is the minimum supported version" + ], "react-redux": [ "7" ], diff --git a/packages/debug-theme/package.json b/packages/debug-theme/package.json index 24903ef86f..0349e5aa12 100644 --- a/packages/debug-theme/package.json +++ b/packages/debug-theme/package.json @@ -51,6 +51,12 @@ "preversion": "../../scripts/npm/preversion.sh", "start": "../../scripts/npm/notify-build.sh \"src\" \"../component/package.json\"" }, + "pinDependencies": { + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ] + }, "localDependencies": { "botframework-webchat-api": "production", "botframework-webchat-component": "production" diff --git a/packages/fluent-theme/package.json b/packages/fluent-theme/package.json index 1e0ad0e943..fb349573fc 100644 --- a/packages/fluent-theme/package.json +++ b/packages/fluent-theme/package.json @@ -66,6 +66,10 @@ "@types/react": [ "16", "react@16.8.6 is our baseline" + ], + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" ] }, "localDependencies": { diff --git a/packages/react-hooks/package.json b/packages/react-hooks/package.json index a8ca025a54..2ec04a7dd7 100644 --- a/packages/react-hooks/package.json +++ b/packages/react-hooks/package.json @@ -51,6 +51,12 @@ "preversion": "../../scripts/npm/preversion.sh", "start": "../../scripts/npm/notify-build.sh \"src\" \"../base/package.json\"" }, + "pinDependencies": { + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ] + }, "localDependencies": { "@msinternal/botframework-webchat-base": "development" }, diff --git a/packages/react-valibot/package.json b/packages/react-valibot/package.json index 6fa2c17b48..7dca3aafd1 100644 --- a/packages/react-valibot/package.json +++ b/packages/react-valibot/package.json @@ -54,6 +54,10 @@ "@types/react": [ "16", "react@16.8.6 is our baseline" + ], + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" ] }, "localDependencies": { diff --git a/packages/redux-store/package.json b/packages/redux-store/package.json index be0980d16d..76556929b7 100644 --- a/packages/redux-store/package.json +++ b/packages/redux-store/package.json @@ -49,6 +49,10 @@ "@types/react": [ "16", "react@16.8.6 is our baseline" + ], + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" ] }, "localDependencies": { diff --git a/packages/styles/package.json b/packages/styles/package.json index f9dd4c0674..47e9e3e0ea 100644 --- a/packages/styles/package.json +++ b/packages/styles/package.json @@ -70,7 +70,12 @@ "preversion": "../../scripts/npm/preversion.sh", "start": "../../scripts/npm/notify-build.sh \"src\" \"../base/package.json\"" }, - "pinDependencies": {}, + "pinDependencies": { + "react": [ + "16.8.6", + "using react@16.8.6 to make sure this is the minimum supported version" + ] + }, "localDependencies": { "@msinternal/botframework-webchat-base": "development", "@msinternal/botframework-webchat-tsconfig": "development" From 32af17256163d2dcdcb0ef4d01ae92f938dcac4b Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:44:15 +0000 Subject: [PATCH 04/59] Bump deps --- CHANGELOG.md | 58 +- package-lock.json | 11692 +++++++++++++--- package.json | 56 +- packages/api-graph/package.json | 6 +- packages/api-middleware/package.json | 8 +- packages/api/package.json | 16 +- packages/base/package.json | 8 +- packages/bundle/package.json | 26 +- packages/component/package.json | 16 +- packages/core-debug-api/package.json | 2 +- packages/core-graph/package.json | 12 +- packages/core/package.json | 18 +- packages/directlinespeech/package.json | 24 +- packages/fluent-theme/package.json | 6 +- packages/isomorphic-react-dom/package.json | 6 +- packages/isomorphic-react/package.json | 6 +- packages/react-valibot/package.json | 2 +- packages/redux-store/package.json | 4 +- packages/repack/adaptivecards/package.json | 2 +- packages/repack/base64-js/package.json | 2 +- .../botframework-directlinejs/package.json | 2 +- .../repack/html-react-parser/package.json | 4 +- .../package.json | 11 +- packages/repack/react-dom/package.json | 2 +- .../repack/react-dom@baseline/package.json | 2 +- packages/repack/react-dom@umd/package.json | 2 +- packages/repack/react-is/package.json | 2 +- packages/repack/react/package.json | 2 +- packages/repack/react@baseline/package.json | 2 +- packages/repack/react@umd/package.json | 2 +- packages/styles/package.json | 8 +- .../support/cldr-data-downloader/package.json | 2 +- packages/support/cldr-data/package.json | 2 +- packages/test/harness/package.json | 12 +- packages/test/page-object/package.json | 8 +- packages/test/web-server/package.json | 2 +- packages/vibe-grep/package.json | 4 +- .../javascript/bot/package-lock.json | 91 +- .../javascript/bot/package.json | 6 +- .../javascript/web/package-lock.json | 30 +- .../javascript/web/package.json | 6 +- samples/04.api/e.piping-to-redux/package.json | 12 +- .../04.api/f.selectable-activity/package.json | 10 +- .../04.api/g.chat-send-history/package.json | 10 +- .../04.api/h.clear-after-idle/package.json | 10 +- .../a.minimizable-web-chat/package.json | 10 +- .../b.speech-ui/package.json | 14 +- .../c.smart-display/package.json | 18 +- .../06.recomposing-ui/d.plain-ui/package.json | 8 +- .../e.extending-ui/package.json | 8 +- samples/package-lock.json | 1289 +- 51 files changed, 10402 insertions(+), 3159 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d08cf3781..dc11197c03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -187,28 +187,28 @@ Breaking changes in this release: - Activity "copy" button will use `outerHTML` and `textContent` for clipboard content, in PR [#5378](https://github.com/microsoft/BotFramework-WebChat/pull/5378), by [@compulim](https://github.com/compulim) - Enabled icon customization in Fluent theme through CSS variables, in PR [#5413](https://github.com/microsoft/BotFramework-WebChat/pull/5413), by [@OEvgeny](https://github.com/OEvgeny) - Reworked, enabled in Web Chat, in PR [#5502](https://github.com/microsoft/BotFramework-WebChat/pull/5502), by [@OEvgeny](https://github.com/OEvgeny) -- Bumped dependencies, by [@compulim](https://github.com/compulim) in PR [#5385](https://github.com/microsoft/BotFramework-WebChat/pull/5385), PR [#5400](https://github.com/microsoft/BotFramework-WebChat/pull/5400), PR [#5426](https://github.com/microsoft/BotFramework-WebChat/pull/5426), PR [#5427](https://github.com/microsoft/BotFramework-WebChat/pull/5427), PR [#5476](https://github.com/microsoft/BotFramework-WebChat/pull/5476), PR [#5516](https://github.com/microsoft/BotFramework-WebChat/pull/5516), PR [#5529](https://github.com/microsoft/BotFramework-WebChat/pull/5529), PR [#5532](https://github.com/microsoft/BotFramework-WebChat/pull/5532), PR [#5659](https://github.com/microsoft/BotFramework-WebChat/pull/5659), PR [#5661](https://github.com/microsoft/BotFramework-WebChat/pull/5661), and PR [#5768](https://github.com/microsoft/BotFramework-WebChat/pull/5768), by [@OEvgeny](https://github.com/OEvgeny) in PR [#5662](https://github.com/microsoft/BotFramework-WebChat/pull/5662) +- Bumped dependencies, by [@compulim](https://github.com/compulim) in PR [#5385](https://github.com/microsoft/BotFramework-WebChat/pull/5385), PR [#5400](https://github.com/microsoft/BotFramework-WebChat/pull/5400), PR [#5426](https://github.com/microsoft/BotFramework-WebChat/pull/5426), PR [#5427](https://github.com/microsoft/BotFramework-WebChat/pull/5427), PR [#5476](https://github.com/microsoft/BotFramework-WebChat/pull/5476), PR [#5516](https://github.com/microsoft/BotFramework-WebChat/pull/5516), PR [#5529](https://github.com/microsoft/BotFramework-WebChat/pull/5529), PR [#5532](https://github.com/microsoft/BotFramework-WebChat/pull/5532), PR [#5659](https://github.com/microsoft/BotFramework-WebChat/pull/5659), PR [#5661](https://github.com/microsoft/BotFramework-WebChat/pull/5661), PR [#5768](https://github.com/microsoft/BotFramework-WebChat/pull/5768), and PR [#XXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXX), by [@OEvgeny](https://github.com/OEvgeny) in PR [#5662](https://github.com/microsoft/BotFramework-WebChat/pull/5662) - Production dependencies - - [`@babel/runtime@7.28.6`](https://npmjs.com/package/@babel/runtime/v/7.28.6) + - [`@babel/runtime@7.29.2`](https://npmjs.com/package/@babel/runtime/v/7.29.2) - [`@emotion/css@11.13.5`](https://npmjs.com/package/@emotion/css/v/11.13.5) - - [`@redux-devtools/extension@3.3.0`](https://npmjs.com/package/@redux-devtools/extension/v/3.3.0) + - [`@redux-devtools/extension@4.0.0`](https://npmjs.com/package/@redux-devtools/extension/v/4.0.0) - [`adaptivecards@3.0.5`](https://npmjs.com/package/adaptivecards/v/3.0.5) - [`botframework-directlinejs@0.15.8`](https://npmjs.com/package/botframework-directlinejs/v/0.15.8) - - [`core-js-pure@3.48.0`](https://npmjs.com/package/core-js-pure/v/3.48.0) - - [`core-js@3.48.0`](https://npmjs.com/package/core-js/v/3.48.0) + - [`core-js-pure@3.49.0`](https://npmjs.com/package/core-js-pure/v/3.49.0) + - [`core-js@3.49.0`](https://npmjs.com/package/core-js/v/3.49.0) - [`event-as-promise@2.0.1`](https://npmjs.com/package/event-as-promise/v/2.0.1) - [`globalize@1.7.1`](https://npmjs.com/package/globalize/v/1.7.1) - - [`html-react-parser@5.2.17`](https://npmjs.com/package/html-react-parser/v/5.2.17) + - [`html-react-parser@6.0.1`](https://npmjs.com/package/html-react-parser/v/6.0.1) - [`inject-meta-tag@0.1.0`](https://npmjs.com/package/inject-meta-tag/v/0.1.0) - [`iter-fest@0.3.1`](https://npmjs.com/package/iter-fest/v/0.3.1) - - [`katex@0.16.33`](https://npmjs.com/package/katex/v/0.16.33) + - [`katex@0.16.45`](https://npmjs.com/package/katex/v/0.16.45) - [`mdast-util-from-markdown@2.0.3`](https://npmjs.com/package/mdast-util-from-markdown/v/2.0.3) - [`merge-refs@2.0.0`](https://npmjs.com/package/merge-refs/v/2.0.0) - [`micromark-extension-gfm@3.0.0`](https://npmjs.com/package/micromark-extension-gfm/v/3.0.0) - [`micromark-util-character@2.1.1`](https://npmjs.com/package/micromark-util-character/v/2.1.1) - [`micromark-util-sanitize-uri@2.0.1`](https://npmjs.com/package/micromark-util-sanitize-uri/v/2.0.1) - [`micromark@4.0.2`](https://npmjs.com/package/micromark/v/4.0.2) - - [`microsoft-cognitiveservices-speech-sdk@1.48.0`](https://npmjs.com/package/microsoft-cognitiveservices-speech-sdk/v/1.48.0) + - [`microsoft-cognitiveservices-speech-sdk@1.49.0`](https://npmjs.com/package/microsoft-cognitiveservices-speech-sdk/v/1.49.0) - [`mime@4.1.0`](https://npmjs.com/package/mime/v/4.1.0) - [`punycode@2.3.1`](https://npmjs.com/package/punycode/v/2.3.1) - [`react-chain-of-responsibility@0.4.2`](https://npmjs.com/package/react-chain-of-responsibility/v/0.4.2) @@ -218,7 +218,7 @@ Breaking changes in this release: - [`react-scroll-to-bottom@4.2.1-main.53844f5`](https://npmjs.com/package/react-scroll-to-bottom/v/4.2.1-main.53844f5) - [`react-wrap-with@0.1.0`](https://npmjs.com/package/react-wrap-with/v/0.1.0) - [`redux-saga@1.4.2`](https://npmjs.com/package/redux-saga/v/1.4.2) - - [`sanitize-html@2.17.1`](https://npmjs.com/package/sanitize-html/v/2.17.1) + - [`sanitize-html@2.17.3`](https://npmjs.com/package/sanitize-html/v/2.17.3) - [`shiki@2.5.0`](https://npmjs.com/package/shiki/v/2.5.0) - [`tagged-tag@1.0.0`](https://npmjs.com/package/tagged-tag/v/1.0.0) - [`use-propagate@0.2.2`](https://npmjs.com/package/use-propagate/v/0.2.2) @@ -226,15 +226,15 @@ Breaking changes in this release: - [`use-ref-from@0.2.1`](https://npmjs.com/package/use-ref-from/v/0.2.1) - [`use-state-with-ref@0.2.1`](https://npmjs.com/package/use-state-with-ref/v/0.2.1) - [`uuid@8.3.2`](https://npmjs.com/package/uuid/v/8.3.2) - - [`valibot@1.2.0`](https://npmjs.com/package/valibot/v/1.2.0) + - [`valibot@1.3.1`](https://npmjs.com/package/valibot/v/1.3.1) - [`web-speech-cognitive-services@8.1.4`](https://npmjs.com/package/web-speech-cognitive-services/v/8.1.4) - Development dependencies - - [`@ast-grep/napi@0.41.0`](https://npmjs.com/package/@ast-grep/napi/v/0.41.0) + - [`@ast-grep/napi@0.42.1`](https://npmjs.com/package/@ast-grep/napi/v/0.42.1) - [`@babel/cli@7.28.6`](https://npmjs.com/package/@babel/cli/v/7.28.6) - [`@babel/core@7.29.0`](https://npmjs.com/package/@babel/core/v/7.29.0) - [`@babel/plugin-transform-runtime@7.29.0`](https://npmjs.com/package/@babel/plugin-transform-runtime/v/7.29.0) - [`@babel/plugin-transform-typescript@7.28.6`](https://npmjs.com/package/@babel/plugin-transform-typescript/v/7.28.6) - - [`@babel/preset-env@7.29.0`](https://npmjs.com/package/@babel/preset-env/v/7.29.0) + - [`@babel/preset-env@7.29.2`](https://npmjs.com/package/@babel/preset-env/v/7.29.2) - [`@babel/preset-react@7.28.5`](https://npmjs.com/package/@babel/preset-react/v/7.28.5) - [`@babel/preset-typescript@7.28.5`](https://npmjs.com/package/@babel/preset-typescript/v/7.28.5) - [`@biomejs/biome@2.3.10`](https://npmjs.com/package/@biomejs/biome/v/2.3.10) @@ -244,10 +244,10 @@ Breaking changes in this release: - [`@jridgewell/sourcemap-codec@1.5.5`](https://npmjs.com/package/@jridgewell/sourcemap-codec/v/1.5.5) - [`@testduet/given-when-then@0.1.0`](https://npmjs.com/package/@testduet/given-when-then/v/0.1.0) - [`@tsconfig/strictest@2.0.8`](https://npmjs.com/package/@tsconfig/strictest/v/2.0.8) - - [`@types/dom-speech-recognition@0.0.7`](https://npmjs.com/package/@types/dom-speech-recognition/v/0.0.7) + - [`@types/dom-speech-recognition@0.0.9`](https://npmjs.com/package/@types/dom-speech-recognition/v/0.0.9) - [`@types/jest@29.5.14`](https://npmjs.com/package/@types/jest/v/29.5.14) - [`@types/mdast@4.0.4`](https://npmjs.com/package/@types/mdast/v/4.0.4) - - [`@types/node@25.3.3`](https://npmjs.com/package/@types/node/v/25.3.3) + - [`@types/node@25.6.0`](https://npmjs.com/package/@types/node/v/25.6.0) - [`@types/react-dom@18.3.7`](https://npmjs.com/package/@types/react-dom/v/18.3.7) - [`@types/react-is@16.7.5`](https://npmjs.com/package/@types/react-is/v/16.7.5) - [`@types/react@16.14.69`](https://npmjs.com/package/@types/react/v/16.14.69) @@ -255,13 +255,13 @@ Breaking changes in this release: - [`@types/semver@7.7.1`](https://npmjs.com/package/@types/semver/v/7.7.1) - [`@types/use-sync-external-store@1.5.0`](https://npmjs.com/package/@types/use-sync-external-store/v/1.5.0) - [`@types/uuid@8.3.4`](https://npmjs.com/package/@types/uuid/v/8.3.4) - - [`@typescript-eslint/eslint-plugin@8.56.1`](https://npmjs.com/package/@typescript-eslint/eslint-plugin/v/8.56.1) - - [`@typescript-eslint/parser@8.56.1`](https://npmjs.com/package/@typescript-eslint/parser/v/8.56.1) + - [`@typescript-eslint/eslint-plugin@8.59.0`](https://npmjs.com/package/@typescript-eslint/eslint-plugin/v/8.59.0) + - [`@typescript-eslint/parser@8.59.0`](https://npmjs.com/package/@typescript-eslint/parser/v/8.59.0) - [`adaptivecards@3.0.2`](https://npmjs.com/package/adaptivecards/v/3.0.2) - - [`adm-zip@0.5.16`](https://npmjs.com/package/adm-zip/v/0.5.16) - - [`axe-core@4.11.1`](https://npmjs.com/package/axe-core/v/4.11.1) + - [`adm-zip@0.5.17`](https://npmjs.com/package/adm-zip/v/0.5.17) + - [`axe-core@4.11.3`](https://npmjs.com/package/axe-core/v/4.11.3) - [`babel-jest@29.7.0`](https://npmjs.com/package/babel-jest/v/29.7.0) - - [`babel-plugin-istanbul@7.0.1`](https://npmjs.com/package/babel-plugin-istanbul/v/7.0.1) + - [`babel-plugin-istanbul@8.0.0`](https://npmjs.com/package/babel-plugin-istanbul/v/8.0.0) - [`base64-js@1.5.1`](https://npmjs.com/package/base64-js/v/1.5.1) - [`bent@7.3.12`](https://npmjs.com/package/bent/v/7.3.12) - [`botframework-directlinejs@0.15.8`](https://npmjs.com/package/botframework-directlinejs/v/0.15.8) @@ -272,9 +272,9 @@ Breaking changes in this release: - [`core-js@3.48.0`](https://npmjs.com/package/core-js/v/3.48.0) - [`cross-env@10.1.0`](https://npmjs.com/package/cross-env/v/10.1.0) - [`diff@8.0.2`](https://npmjs.com/package/diff/v/8.0.2) - - [`dotenv@17.3.1`](https://npmjs.com/package/dotenv/v/17.3.1) + - [`dotenv@17.4.2`](https://npmjs.com/package/dotenv/v/17.4.2) - [`dtsroll@1.4.1`](https://npmjs.com/package/dtsroll/v/1.4.1) - - [`esbuild@0.27.3`](https://npmjs.com/package/esbuild/v/0.27.3) + - [`esbuild@0.28.0`](https://npmjs.com/package/esbuild/v/0.28.0) - [`eslint-config-prettier@10.1.8`](https://npmjs.com/package/eslint-config-prettier/v/10.1.8) - [`eslint-plugin-import@2.32.0`](https://npmjs.com/package/eslint-plugin-import/v/2.32.0) - [`eslint-plugin-local-rules@3.0.2`](https://npmjs.com/package/eslint-plugin-local-rules/v/3.0.2) @@ -290,8 +290,8 @@ Breaking changes in this release: - [`html-react-parser@5.2.10`](https://npmjs.com/package/html-react-parser/v/5.2.10) - [`http-proxy-middleware@2.0.9`](https://npmjs.com/package/http-proxy-middleware/v/2.0.9) - [`husky@9.1.7`](https://npmjs.com/package/husky/v/9.1.7) - - [`jest-environment-node@29.7.0`](https://npmjs.com/package/jest-environment-node/v/29.7.0) - [`jest-image-snapshot@6.5.1`](https://npmjs.com/package/jest-image-snapshot/v/6.5.1) + - [`jest-image-snapshot@6.5.2`](https://npmjs.com/package/jest-image-snapshot/v/6.5.2) - [`jest@29.7.0`](https://npmjs.com/package/jest/v/29.7.0) - [`keep-a-changelog@2.7.1`](https://npmjs.com/package/keep-a-changelog/v/2.7.1) - [`lint-staged@16.2.7`](https://npmjs.com/package/lint-staged/v/16.2.7) @@ -300,7 +300,7 @@ Breaking changes in this release: - [`minimatch@10.1.1`](https://npmjs.com/package/minimatch/v/10.1.1) - [`nodemon@3.1.14`](https://npmjs.com/package/nodemon/v/3.1.14) - [`nopt@9.0.0`](https://npmjs.com/package/nopt/v/9.0.0) - - [`prettier@3.8.1`](https://npmjs.com/package/prettier/v/3.8.1) + - [`prettier@3.8.3`](https://npmjs.com/package/prettier/v/3.8.3) - [`progress@2.0.3`](https://npmjs.com/package/progress/v/2.0.3) - [`q@1.5.1`](https://npmjs.com/package/q/v/1.5.1) - [`react-dom@16.8.6`](https://npmjs.com/package/react-dom/v/16.8.6) @@ -310,20 +310,20 @@ Breaking changes in this release: - [`react@18.3.1`](https://npmjs.com/package/react/v/18.3.1) - [`read-package-up@12.0.0`](https://npmjs.com/package/read-package-up/v/12.0.0) - [`read-pkg@10.1.0`](https://npmjs.com/package/read-pkg/v/10.1.0) - - [`selenium-webdriver@4.41.0`](https://npmjs.com/package/selenium-webdriver/v/4.41.0) + - [`selenium-webdriver@4.43.0`](https://npmjs.com/package/selenium-webdriver/v/4.43.0) - [`selfsigned@5.5.0`](https://npmjs.com/package/selfsigned/v/5.5.0) - [`serve-handler@6.1.7`](https://npmjs.com/package/serve-handler/v/6.1.7) - [`serve@14.2.6`](https://npmjs.com/package/serve/v/14.2.6) - [`simple-git@3.30.0`](https://npmjs.com/package/simple-git/v/3.30.0) - [`tsd@0.33.0`](https://npmjs.com/package/tsd/v/0.33.0) - [`tsup@8.5.1`](https://npmjs.com/package/tsup/v/8.5.1) - - [`type-fest@5.4.4`](https://npmjs.com/package/type-fest/v/5.4.4) + - [`type-fest@5.6.0`](https://npmjs.com/package/type-fest/v/5.6.0) - [`typescript-plugin-css-modules@5.2.0`](https://npmjs.com/package/typescript-plugin-css-modules/v/5.2.0) - - [`typescript@5.9.3`](https://npmjs.com/package/typescript/v/5.9.3) + - [`typescript@6.0.3`](https://npmjs.com/package/typescript/v/6.0.3) - [`unplugin-lightningcss@0.4.3`](https://npmjs.com/package/unplugin-lightningcss/v/0.4.3) - - [`webpack-cli@6.0.1`](https://npmjs.com/package/webpack-cli/v/6.0.1) - - [`webpack@5.105.4`](https://npmjs.com/package/webpack/v/5.105.4) - - [`yaml@2.8.2`](https://npmjs.com/package/yaml/v/2.8.2) + - [`webpack-cli@7.0.2`](https://npmjs.com/package/webpack-cli/v/7.0.2) + - [`webpack@5.106.2`](https://npmjs.com/package/webpack/v/5.106.2) + - [`yaml@2.8.3`](https://npmjs.com/package/yaml/v/2.8.3) - Fixed [#5446](https://github.com/microsoft/BotFramework-WebChat/issues/5446). Embedded `uuid` so `microsoft-cognitiveservices-speech-sdk` do not need to use dynamic loading, as this could fail in Webpack 4 environment, in PR [#5445](https://github.com/microsoft/BotFramework-WebChat/pull/5445), by [@compulim](https://github.com/compulim) - Fixed [#5476](https://github.com/microsoft/BotFramework-WebChat/issues/5476). Modernizing components through memoization and use [`valibot`](https://npmjs.com/package/valibot) for props validation, by [@compulim](https://github.com/compulim) - Ported `useSuggestedActions` to use React hooks as backend instead of Redux store, in PR [#5489](https://github.com/microsoft/BotFramework-WebChat/pull/5489), by [@compulim](https://github.com/compulim) diff --git a/package-lock.json b/package-lock.json index 81572d4e3d..10de7273f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,59 +55,59 @@ "react-dom": "16.8.6" }, "devDependencies": { - "@babel/plugin-transform-runtime": "^7.28.5", - "@babel/preset-env": "^7.28.5", + "@babel/plugin-transform-runtime": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", - "@babel/runtime": "^7.28.4", - "@biomejs/biome": "^2.3.10", - "@happy-dom/jest-environment": "^20.0.11", + "@babel/runtime": "^7.29.2", + "@biomejs/biome": "^2.4.12", + "@happy-dom/jest-environment": "^20.9.0", "@msinternal/vibe-grep": "^0.0.0-0", "@testing-library/react": "^12.1.5", "@types/jest": "^29.5.14", - "@types/react": "^16.14.68", + "@types/react": "^16.14.69", "@types/react-dom": "^16.9.25", "@types/semver": "^7.7.1", - "@typescript-eslint/eslint-plugin": "^8.50.0", - "@typescript-eslint/parser": "^8.50.0", + "@typescript-eslint/eslint-plugin": "^8.59.0", + "@typescript-eslint/parser": "^8.59.0", "babel-jest": "^29.7.0", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "chalk": "^5.6.2", "concurrently": "^9.2.1", - "core-js": "^3.47.0", + "core-js": "^3.49.0", "cross-env": "^10.1.0", - "diff": "^8.0.2", - "dotenv": "^17.2.3", - "dtsroll": "^1.4.1", + "diff": "^9.0.0", + "dotenv": "^17.4.2", + "dtsroll": "^1.8.1", "eslint": "^8.57.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", "eslint-plugin-local-rules": "^3.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-security": "^3.0.1", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-security": "^4.0.0", "get-port": "^5.1.1", - "global-agent": "^3.0.0", + "global-agent": "^4.1.3", "husky": "^9.1.7", "jest": "^29.7.0", - "jest-image-snapshot": "^6.5.1", - "keep-a-changelog": "^2.7.1", - "lint-staged": "^16.2.7", + "jest-image-snapshot": "^6.5.2", + "keep-a-changelog": "^3.0.2", + "lint-staged": "^16.4.0", "lolex": "^6.0.0", - "minimatch": "^10.1.1", + "minimatch": "^10.2.5", "node-dev": "^8.0.0", - "prettier": "^3.7.4", + "prettier": "^3.8.3", "read-package-up": "^12.0.0", - "read-pkg": "^10.0.0", - "selenium-webdriver": "^4.39.0", - "serve": "^14.2.5", - "serve-handler": "^6.1.6", + "read-pkg": "^10.1.0", + "selenium-webdriver": "^4.43.0", + "serve": "^14.2.6", + "serve-handler": "^6.1.7", "strip-ansi": "^6.0.1", "tsup": "^8.5.1", - "typescript": "^5.9.3", - "unplugin-lightningcss": "^0.4.3" + "typescript": "^6.0.3", + "unplugin-lightningcss": "^0.4.5" } }, "node_modules/@adobe/css-tools": { @@ -117,33 +117,31 @@ "optional": true }, "node_modules/@ast-grep/napi": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi/-/napi-0.41.0.tgz", - "integrity": "sha512-3kK6hCxyinsxZIM6p/gWoN33v0GgxBXU6uDbM/J2j3t7f9lXRvA1J+8HeiemCtXNA75H1EK5Oo7/E28HOhYHDg==", - "license": "MIT", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi/-/napi-0.42.1.tgz", + "integrity": "sha512-+YEv9ElJi9azr8AYII79NxYXQRJsrUy1kUqZfxZfvPM7rhs3174mzB+qEE9Pl3sVKAJS5cevyT4lgLNV0AZK6A==", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@ast-grep/napi-darwin-arm64": "0.41.0", - "@ast-grep/napi-darwin-x64": "0.41.0", - "@ast-grep/napi-linux-arm64-gnu": "0.41.0", - "@ast-grep/napi-linux-arm64-musl": "0.41.0", - "@ast-grep/napi-linux-x64-gnu": "0.41.0", - "@ast-grep/napi-linux-x64-musl": "0.41.0", - "@ast-grep/napi-win32-arm64-msvc": "0.41.0", - "@ast-grep/napi-win32-ia32-msvc": "0.41.0", - "@ast-grep/napi-win32-x64-msvc": "0.41.0" + "@ast-grep/napi-darwin-arm64": "0.42.1", + "@ast-grep/napi-darwin-x64": "0.42.1", + "@ast-grep/napi-linux-arm64-gnu": "0.42.1", + "@ast-grep/napi-linux-arm64-musl": "0.42.1", + "@ast-grep/napi-linux-x64-gnu": "0.42.1", + "@ast-grep/napi-linux-x64-musl": "0.42.1", + "@ast-grep/napi-win32-arm64-msvc": "0.42.1", + "@ast-grep/napi-win32-ia32-msvc": "0.42.1", + "@ast-grep/napi-win32-x64-msvc": "0.42.1" } }, "node_modules/@ast-grep/napi-darwin-arm64": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-arm64/-/napi-darwin-arm64-0.41.0.tgz", - "integrity": "sha512-SoAzCj1o9/mdtOdj6pZI1qpZkfncd+2DsWAa2ZmoomKc7CFKCzPniJtThXeOq+IJKcufS8zFGbk57ScMpDgd5A==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-arm64/-/napi-darwin-arm64-0.42.1.tgz", + "integrity": "sha512-VtO4DX20ODCfRBwv1I71lZx+qlrhlMbt9Rpo3LozoaUpHnLmyFMBSgpUal5KTd1SCKUK8ekJGgxpKWo27H4AVQ==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -153,13 +151,12 @@ } }, "node_modules/@ast-grep/napi-darwin-x64": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-x64/-/napi-darwin-x64-0.41.0.tgz", - "integrity": "sha512-SSQeJzm19nNQ+caTgLLFgmhhjhyL8C+8yDSYSYYwOwqkj/Zx5sZHFvND2f8XeOM9Tey7Lkvaf1Prp4l/NwrskA==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-darwin-x64/-/napi-darwin-x64-0.42.1.tgz", + "integrity": "sha512-V2uaKP6QZLb60iFHK0IiXAcwSoUliiDJ3c1zLLzHnBFyCbTKC4b3L3XtkiyKsnpET+uzY7hQLpTIAhW5aOCX4w==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -169,13 +166,12 @@ } }, "node_modules/@ast-grep/napi-linux-arm64-gnu": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-gnu/-/napi-linux-arm64-gnu-0.41.0.tgz", - "integrity": "sha512-Td7ciWtsbuYlFV4OC8bg7s+DexXsGLy29yKJqI1ZvoE+9SpWPdFVojeIu9qiQinGh27uggOAZ25WCROnZ2kJpw==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-gnu/-/napi-linux-arm64-gnu-0.42.1.tgz", + "integrity": "sha512-wmt59yzvcZT4Z5XpxB1B1FoFrc32l0vmy2G7yrY2lG9qP2M157mWdp1T50h2XoYrotyRhCyLDXP70SiTZHZkaQ==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -185,13 +181,12 @@ } }, "node_modules/@ast-grep/napi-linux-arm64-musl": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-musl/-/napi-linux-arm64-musl-0.41.0.tgz", - "integrity": "sha512-2wx0SfNZ7eBJN40ne9ncuODoU8ck85wXJ94WV40Ol8Pr4owtrd1yFXQqZTMrq5xYcf4Z3yQWwmEhaH6TJAoBbg==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-arm64-musl/-/napi-linux-arm64-musl-0.42.1.tgz", + "integrity": "sha512-cnU+H0drvdkApQDJEcBsYGlPq2gk3l2Xxq0y8EmcxAXYXDNkz+Gc2vfvyM7ib2jD9Y51+cQIsb0RFzA2g9VnZQ==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -201,13 +196,12 @@ } }, "node_modules/@ast-grep/napi-linux-x64-gnu": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-gnu/-/napi-linux-x64-gnu-0.41.0.tgz", - "integrity": "sha512-OzaoOpW4/uX9T5D6h2mXCncCaQ+Ph/hzzH3c91ozNrFYqsQ7MDS04PUhRJQ4Z79H4yuXx2jkbXaj3+ZNR3DP6g==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-gnu/-/napi-linux-x64-gnu-0.42.1.tgz", + "integrity": "sha512-gY+PtqbFtFlR8rCL9F6GEPuymqLhh2eG/e8Ly01Z/S5x3e357nNaF69xAvNRpYi/HnEUZ5cE1MzshDCjubqE1A==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -217,13 +211,12 @@ } }, "node_modules/@ast-grep/napi-linux-x64-musl": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-musl/-/napi-linux-x64-musl-0.41.0.tgz", - "integrity": "sha512-Oeg3BhOC+FA32mW3FHfXXW/AelvicfRhQIrWq5YNS44Sdy9scA34b2FiBPLaj4dHwBgg3ebEfDgmiYBQOMkXaw==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-linux-x64-musl/-/napi-linux-x64-musl-0.42.1.tgz", + "integrity": "sha512-yDTlIgFOzglpzs3Ua9w43uVeEW4csf80F5/n2FqCK5pip4Iyfu21Q+M8iC9AmTRl/OGHVI48ieuPwOD9i1i6hA==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -233,13 +226,12 @@ } }, "node_modules/@ast-grep/napi-win32-arm64-msvc": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-arm64-msvc/-/napi-win32-arm64-msvc-0.41.0.tgz", - "integrity": "sha512-6rE9lQbey3rRfr3wQxrfGMcLeyNRydjA4rfdfAciWQApQ+lat5QI7tlgqPqo5EKITUNwap6YY+IxfwBxsLbHYg==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-arm64-msvc/-/napi-win32-arm64-msvc-0.42.1.tgz", + "integrity": "sha512-6WQhKEfZmtfMSIOzluMoBaQhNqfRKXzj5y2YA2U0Y3x7HxNAZBO067y8xlSMddKFN/FtCwft8GFktFxqSYWl1w==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -249,13 +241,12 @@ } }, "node_modules/@ast-grep/napi-win32-ia32-msvc": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-ia32-msvc/-/napi-win32-ia32-msvc-0.41.0.tgz", - "integrity": "sha512-ITtAD7tI3/vImz13wJUUns3UDIsrE3d2/JhhLN3CE1YqNItuNoW53nWqR3YcC/KsfSJnDddD6R0gMVkmlXapAg==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-ia32-msvc/-/napi-win32-ia32-msvc-0.42.1.tgz", + "integrity": "sha512-ET2vRrsHo0e4JJbCrejzDcDPsfTmRaYK9VIpq1MqXXAUvLoiMly+cQYZ64MWdXTlgITKMXCYxhCbFPTn/9XZaQ==", "cpu": [ "ia32" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -265,13 +256,12 @@ } }, "node_modules/@ast-grep/napi-win32-x64-msvc": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-x64-msvc/-/napi-win32-x64-msvc-0.41.0.tgz", - "integrity": "sha512-DSqDh4KJ5+8x+gfAtWdXdeRpGfTjgm00kTW/pqUxhMdW6DVShMSDrFR+lj3dL9FmzMrwVGb+mcN8dWNqGA85Cw==", + "version": "0.42.1", + "resolved": "https://registry.npmjs.org/@ast-grep/napi-win32-x64-msvc/-/napi-win32-x64-msvc-0.42.1.tgz", + "integrity": "sha512-NAeA2Q6jp7F9uXtSuG12c1xjTzipXFCTvuAcEBnsTwBXq0kdPV6H6Y4GZJVcDhsHk3TX4sGlQGkuV/6FT2Ngig==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -325,7 +315,6 @@ "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.6.tgz", "integrity": "sha512-6EUNcuBbNkj08Oj4gAZ+BUU8yLCgKzgVX4gaTh09Ya2C8ICM4P+G30g4m3akRxSYAp3A/gnWchrNst7px4/nUQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.28", "commander": "^6.2.0", @@ -379,7 +368,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "devOptional": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -1764,7 +1752,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", @@ -1858,7 +1845,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.6", @@ -1937,11 +1923,10 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", - "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", @@ -2052,7 +2037,6 @@ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", @@ -2073,7 +2057,6 @@ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", @@ -2089,10 +2072,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "license": "MIT", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "engines": { "node": ">=6.9.0" } @@ -2109,16 +2091,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/runtime-corejs3/node_modules/core-js-pure": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", - "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/@babel/template": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", @@ -2176,9 +2148,9 @@ "license": "MIT" }, "node_modules/@biomejs/biome": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.3.10.tgz", - "integrity": "sha512-/uWSUd1MHX2fjqNLHNL6zLYWBbrJeG412/8H7ESuK8ewoRoMPUgHDebqKrPTx/5n6f17Xzqc9hdg3MEqA5hXnQ==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.12.tgz", + "integrity": "sha512-Rro7adQl3NLq/zJCIL98eElXKI8eEiBtoeu5TbXF/U3qbjuSc7Jb5rjUbeHHcquDWeSf3HnGP7XI5qGrlRk/pA==", "dev": true, "bin": { "biome": "bin/biome" @@ -2191,20 +2163,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "2.3.10", - "@biomejs/cli-darwin-x64": "2.3.10", - "@biomejs/cli-linux-arm64": "2.3.10", - "@biomejs/cli-linux-arm64-musl": "2.3.10", - "@biomejs/cli-linux-x64": "2.3.10", - "@biomejs/cli-linux-x64-musl": "2.3.10", - "@biomejs/cli-win32-arm64": "2.3.10", - "@biomejs/cli-win32-x64": "2.3.10" + "@biomejs/cli-darwin-arm64": "2.4.12", + "@biomejs/cli-darwin-x64": "2.4.12", + "@biomejs/cli-linux-arm64": "2.4.12", + "@biomejs/cli-linux-arm64-musl": "2.4.12", + "@biomejs/cli-linux-x64": "2.4.12", + "@biomejs/cli-linux-x64-musl": "2.4.12", + "@biomejs/cli-win32-arm64": "2.4.12", + "@biomejs/cli-win32-x64": "2.4.12" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.10.tgz", - "integrity": "sha512-M6xUjtCVnNGFfK7HMNKa593nb7fwNm43fq1Mt71kpLpb+4mE7odO8W/oWVDyBVO4ackhresy1ZYO7OJcVo/B7w==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.12.tgz", + "integrity": "sha512-BnMU4Pc3ciEVteVpZ0BK33MLr7X57F5w1dwDLDn+/iy/yTrA4Q/N2yftidFtsA4vrDh0FMXDpacNV/Tl3fbmng==", "cpu": [ "arm64" ], @@ -2218,9 +2190,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.10.tgz", - "integrity": "sha512-Vae7+V6t/Avr8tVbFNjnFSTKZogZHFYl7MMH62P/J1kZtr0tyRQ9Fe0onjqjS2Ek9lmNLmZc/VR5uSekh+p1fg==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.12.tgz", + "integrity": "sha512-x9uJ0bI1rJsWICp3VH8w/5PnAVD3A7SqzDpbrfoUQX1QyWrK5jSU4fRLo/wSgGeplCivbxBRKmt5Xq4/nWvq8A==", "cpu": [ "x64" ], @@ -2234,9 +2206,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.10.tgz", - "integrity": "sha512-hhPw2V3/EpHKsileVOFynuWiKRgFEV48cLe0eA+G2wO4SzlwEhLEB9LhlSrVeu2mtSn205W283LkX7Fh48CaxA==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.12.tgz", + "integrity": "sha512-tOwuCuZZtKi1jVzbk/5nXmIsziOB6yqN8c9r9QM0EJYPU6DpQWf11uBOSCfFKKM4H3d9ZoarvlgMfbcuD051Pw==", "cpu": [ "arm64" ], @@ -2250,9 +2222,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.10.tgz", - "integrity": "sha512-B9DszIHkuKtOH2IFeeVkQmSMVUjss9KtHaNXquYYWCjH8IstNgXgx5B0aSBQNr6mn4RcKKRQZXn9Zu1rM3O0/A==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.12.tgz", + "integrity": "sha512-FhfpkAAlKL6kwvcVap0Hgp4AhZmtd3YImg0kK1jd7C/aSoh4SfsB2f++yG1rU0lr8Y5MCFJrcSkmssiL9Xnnig==", "cpu": [ "arm64" ], @@ -2266,9 +2238,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.10.tgz", - "integrity": "sha512-wwAkWD1MR95u+J4LkWP74/vGz+tRrIQvr8kfMMJY8KOQ8+HMVleREOcPYsQX82S7uueco60L58Wc6M1I9WA9Dw==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.12.tgz", + "integrity": "sha512-8pFeAnLU9QdW9jCIslB/v82bI0lhBmz2ZAKc8pVMFPO0t0wAHsoEkrUQUbMkIorTRIjbqyNZHA3lEXavsPWYSw==", "cpu": [ "x64" ], @@ -2282,9 +2254,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.10.tgz", - "integrity": "sha512-QTfHZQh62SDFdYc2nfmZFuTm5yYb4eO1zwfB+90YxUumRCR171tS1GoTX5OD0wrv4UsziMPmrePMtkTnNyYG3g==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.12.tgz", + "integrity": "sha512-dwTIgZrGutzhkQCuvHynCkyW6hJxUuyZqKKO0YNfaS2GUoRO+tOvxXZqZB6SkWAOdfZTzwaw8IEdUnIkHKHoew==", "cpu": [ "x64" ], @@ -2298,9 +2270,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.10.tgz", - "integrity": "sha512-o7lYc9n+CfRbHvkjPhm8s9FgbKdYZu5HCcGVMItLjz93EhgJ8AM44W+QckDqLA9MKDNFrR8nPbO4b73VC5kGGQ==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.12.tgz", + "integrity": "sha512-B0DLnx0vA9ya/3v7XyCaP+/lCpnbWbMOfUFFve+xb5OxyYvdHaS55YsSddr228Y+JAFk58agCuZTsqNiw2a6ig==", "cpu": [ "arm64" ], @@ -2314,9 +2286,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.10.tgz", - "integrity": "sha512-pHEFgq7dUEsKnqG9mx9bXihxGI49X+ar+UBrEIj3Wqj3UCZp1rNgV+OoyjFgcXsjCWpuEAF4VJdkZr3TrWdCbQ==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.12.tgz", + "integrity": "sha512-yMckRzTyZ83hkk8iDFWswqSdU8tvZxspJKnYNh7JZr/zhZNOlzH13k4ecboU6MurKExCe2HUkH75pGI/O2JwGA==", "cpu": [ "x64" ], @@ -2329,51 +2301,11 @@ "node": ">=14.21.3" } }, - "node_modules/@deno/shim-deno": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@deno/shim-deno/-/shim-deno-0.18.2.tgz", - "integrity": "sha512-oQ0CVmOio63wlhwQF75zA4ioolPvOwAoK0yuzcS5bDC1JUvH3y1GS8xPh8EOpcoDQRU4FTG8OQfxhpR+c6DrzA==", - "dev": true, - "dependencies": { - "@deno/shim-deno-test": "^0.5.0", - "which": "^4.0.0" - } - }, - "node_modules/@deno/shim-deno-test": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@deno/shim-deno-test/-/shim-deno-test-0.5.0.tgz", - "integrity": "sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==", - "dev": true - }, - "node_modules/@deno/shim-deno/node_modules/isexe": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", - "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@deno/shim-deno/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, "node_modules/@discoveryjs/json-ext": { - "version": "0.6.3", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-1.0.0.tgz", + "integrity": "sha512-dDlz3W405VMFO4w5kIP9DOmELBcvFQGmLoKSdIRstBDubKFYwaNHV1NnlzMCQpXQFGWVALmeMORAuiLx18AvZQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.17.0" } @@ -2421,7 +2353,6 @@ "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz", "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==", - "license": "MIT", "dependencies": { "@emotion/babel-plugin": "^11.13.5", "@emotion/cache": "^11.13.5", @@ -2471,14 +2402,13 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", - "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" @@ -2488,14 +2418,13 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", - "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -2505,14 +2434,13 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", - "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -2522,14 +2450,13 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", - "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" @@ -2539,14 +2466,13 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", - "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -2556,14 +2482,13 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", - "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -2573,14 +2498,13 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", - "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -2590,14 +2514,13 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", - "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" @@ -2607,14 +2530,13 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", - "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2624,14 +2546,13 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", - "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2641,14 +2562,13 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", - "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2658,14 +2578,13 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", - "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2675,14 +2594,13 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", - "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", "cpu": [ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2692,14 +2610,13 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", - "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2709,14 +2626,13 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", - "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2726,14 +2642,13 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", - "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2743,14 +2658,13 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", - "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -2760,14 +2674,13 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", - "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -2777,14 +2690,13 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", - "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -2794,14 +2706,13 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", - "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -2811,14 +2722,13 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", - "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -2828,14 +2738,13 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", - "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openharmony" @@ -2845,14 +2754,13 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", - "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" @@ -2862,14 +2770,13 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", - "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -2879,14 +2786,13 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", - "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -2896,14 +2802,13 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", - "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -2969,9 +2874,9 @@ "license": "Python-2.0" }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -3047,7 +2952,6 @@ "version": "1.0.0-alpha.23", "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.23.tgz", "integrity": "sha512-uxrzF9Z+J10naP0pGS7zPmzSkspSS+3OJDmYIK3o1nkntQrgBXq3dBob4xSlTDm5aOQ0kw6EvB9wQgtlyy4eKQ==", - "license": "MIT", "dependencies": { "@swc/helpers": "^0.5.1" } @@ -3089,12 +2993,12 @@ } }, "node_modules/@happy-dom/jest-environment": { - "version": "20.0.11", - "resolved": "https://registry.npmjs.org/@happy-dom/jest-environment/-/jest-environment-20.0.11.tgz", - "integrity": "sha512-gsd01XEvkP290xE29Se2hCzXh0V+9CoKfBZ1RsDPjWd80xmiYuVdpzrnxjAl3MvM5z/YPaMNQCIJizEdu7uWsg==", + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@happy-dom/jest-environment/-/jest-environment-20.9.0.tgz", + "integrity": "sha512-6FjF0leAEPLuUOkeN63HmV4kbVHAaddz3I5au44ZtV3WyJS2nxXhH1Xx9mXA/0vIgIEVD20SYzmDtixap2LSpQ==", "dev": true, "dependencies": { - "happy-dom": "^20.0.11" + "happy-dom": "^20.9.0" }, "engines": { "node": ">=20.0.0" @@ -3121,9 +3025,9 @@ } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -3164,7 +3068,6 @@ "version": "8.0.2", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3182,7 +3085,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -3195,7 +3097,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -3206,14 +3107,12 @@ "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3232,7 +3131,6 @@ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^6.2.2" }, @@ -3247,7 +3145,6 @@ "version": "8.1.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3897,8 +3794,7 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.29", @@ -4540,7 +4436,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "engines": { "node": ">=14" } @@ -4559,14 +4454,9 @@ } }, "node_modules/@redux-devtools/extension": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@redux-devtools/extension/-/extension-3.3.0.tgz", - "integrity": "sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2", - "immutable": "^4.3.4" - }, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@redux-devtools/extension/-/extension-4.0.0.tgz", + "integrity": "sha512-pLIzgo5MvqdDLe5D1pzHLgmr8THra/DOyRf5MvOEPZnKKDn6RhFbNSS5oXZ3Cal0cpx08kx7sR6zD8QgoXEnZA==", "peerDependencies": { "redux": "^3.1.0 || ^4.0.0 || ^5.0.0" } @@ -4622,11 +4512,10 @@ "integrity": "sha512-YRCrJdhQLobGIQ8Cj1sta3nn6DrZDTSUnrIYhS2e5V590BmfVDleKoAquclAiKSBKWJwmuXTb+b4BL6rSHnahw==" }, "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.2.tgz", - "integrity": "sha512-tCtHJ2BlhSoK4cCs25NMXfV7EALKr0jyasmqVCq3y9cBrKdmJhtsy1iTz36Xhk/O+pDJbzawxF4K6ZblqCnITQ==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -4651,7 +4540,6 @@ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -4682,350 +4570,325 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", - "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz", + "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", - "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz", + "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", - "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz", + "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", - "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz", + "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", - "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz", + "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", - "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz", + "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", - "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz", + "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", - "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz", + "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", - "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz", + "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", - "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz", + "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", - "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz", + "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", - "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz", + "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", - "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz", + "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", - "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz", + "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", - "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz", + "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", - "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz", + "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", - "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz", + "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", - "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz", + "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", - "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz", + "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", - "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz", + "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", - "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz", + "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openharmony" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", - "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz", + "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", - "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz", + "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", - "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz", + "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", - "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz", + "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -5139,7 +5002,6 @@ "resolved": "https://registry.npmjs.org/@testduet/given-when-then/-/given-when-then-0.1.0.tgz", "integrity": "sha512-Ts2LzdmFycynneaO7l2nOWNej47tQxg0QxMcFmDmguV5PjiX7P8k6H5HjP2vrsiN5tFDY5QyB76SdjyTyOMSjw==", "dev": true, - "license": "MIT", "dependencies": { "@testduet/given-when-then": "^0.1.0" } @@ -5221,8 +5083,7 @@ "version": "2.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.8.tgz", "integrity": "sha512-XnQ7vNz5HRN0r88GYf1J9JJjqtZPiHt2woGJOo2dYqyHGGcd6OLGqSlBB6p1j9mpzja6Oe5BoPqWmeDx6X9rLw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@tsd/typescript": { "version": "5.9.3", @@ -5283,11 +5144,10 @@ } }, "node_modules/@types/dom-speech-recognition": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@types/dom-speech-recognition/-/dom-speech-recognition-0.0.7.tgz", - "integrity": "sha512-NjiUoJbBlKhyufNsMZLSp+pbPNtPAFnR738RCJvtZy/HVQ2TZjmqpMyaeOSMXgxdfZM60nt8QGbtfmQrJAH2sw==", - "dev": true, - "license": "MIT" + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/dom-speech-recognition/-/dom-speech-recognition-0.0.9.tgz", + "integrity": "sha512-uxta75eB62f/Jex9wYTAypKKpiEZ5nOvBRj3TI4yI7JSc65y9eF/Lh9SFjCE3xACj5O5ox2d8nTQFe7Y/nJzfw==", + "dev": true }, "node_modules/@types/eslint": { "version": "9.6.1", @@ -5367,7 +5227,6 @@ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, - "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -5416,14 +5275,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/math-random/-/math-random-1.0.2.tgz", "integrity": "sha512-DGQhRH6YJ4ZYkwd0k+GUax+CXd2aJOiwljwhuxfKCiaTvRoDESs0DpEVdLIKqtcxaGWKNXwfMkmZm99wTEbLsA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -5438,11 +5295,11 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.2.tgz", - "integrity": "sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@types/normalize-package-data": { @@ -5477,7 +5334,6 @@ "version": "16.14.69", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.69.tgz", "integrity": "sha512-NdnAamzkxLX9LBssSdt9Q0tQ3LR94hYxotI4/sRUs1vHKFXaDx9xDbK8S4wuw5bwrxiiXbTYyhKeITtFnwDvEA==", - "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "^0.16", @@ -5488,7 +5344,6 @@ "version": "16.9.25", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.25.tgz", "integrity": "sha512-ZK//eAPhwft9Ul2/Zj+6O11YR6L4JX0J2sVeBC9Ft7x7HFN7xk7yUV/zDxqV6rjvqgl6r8Dq7oQImxtyf/Mzcw==", - "license": "MIT", "peerDependencies": { "@types/react": "^16.0.0" } @@ -5498,7 +5353,6 @@ "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-16.7.5.tgz", "integrity": "sha512-fcPxYqcx6uLZwl+SlcHs2C/3lU2+yM9paQiVokQW5Ux4ywpHRYsfDmraSRGec+5rw3xpXR3w7usvJAoKic6fyg==", "dev": true, - "license": "MIT", "dependencies": { "@types/react": "^16" } @@ -5524,8 +5378,7 @@ "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/scheduler": { "version": "0.16.8", @@ -5551,15 +5404,13 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", "integrity": "sha512-5dyB8nLC/qogMrlCizZnYWQTA4lnb/v+It+sqNl5YnSRAPMlIqY/X0Xn+gZw8vOL+TgTTr28VEbn3uf8fUtAkw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/uuid": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/webrtc": { "version": "0.0.37", @@ -5593,20 +5444,19 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz", - "integrity": "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.0.tgz", + "integrity": "sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/type-utils": "8.56.1", - "@typescript-eslint/utils": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/type-utils": "8.59.0", + "@typescript-eslint/utils": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5616,9 +5466,9 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/parser": "^8.59.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { @@ -5630,16 +5480,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", - "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.0.tgz", + "integrity": "sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "debug": "^4.4.3" }, "engines": { @@ -5651,18 +5500,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz", - "integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.0.tgz", + "integrity": "sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.56.1", - "@typescript-eslint/types": "^8.56.1", + "@typescript-eslint/tsconfig-utils": "^8.59.0", + "@typescript-eslint/types": "^8.59.0", "debug": "^4.4.3" }, "engines": { @@ -5673,18 +5521,17 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz", - "integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.0.tgz", + "integrity": "sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1" + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5695,11 +5542,10 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz", - "integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.0.tgz", + "integrity": "sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -5708,21 +5554,20 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz", - "integrity": "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.0.tgz", + "integrity": "sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/utils": "8.56.1", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/utils": "8.59.0", "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5733,15 +5578,14 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz", - "integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.0.tgz", + "integrity": "sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==", "dev": true, - "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -5751,21 +5595,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz", - "integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.0.tgz", + "integrity": "sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.56.1", - "@typescript-eslint/tsconfig-utils": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/project-service": "8.59.0", + "@typescript-eslint/tsconfig-utils": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5775,7 +5618,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { @@ -5783,7 +5626,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -5792,16 +5634,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz", - "integrity": "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.0.tgz", + "integrity": "sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1" + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5812,17 +5653,16 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz", - "integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.0.tgz", + "integrity": "sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/types": "8.59.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -5838,7 +5678,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" }, @@ -6017,47 +5856,6 @@ "@xtuc/long": "4.2.2" } }, - "node_modules/@webpack-cli/configtest": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "dev": true, @@ -6085,7 +5883,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -6134,9 +5931,9 @@ } }, "node_modules/adm-zip": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", - "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.17.tgz", + "integrity": "sha512-+Ut8d9LLqwEvHHJl1+PIHqoyDxFgVN847JTVM3Izi3xHDWPE4UtzzXysMZQs64DMcrJfBeS/uoEP4AD3HQHnQQ==", "engines": { "node": ">=12.0" } @@ -6493,6 +6290,36 @@ "node": ">=0.10.0" } }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js-rfc2560": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-5.0.1.tgz", + "integrity": "sha512-1PrVg6kuBziDN3PGFmRk3QrjpKvP9h/Hv5yMrFZvC1kpzP6dQRzf5BpKstANqHBkaOUmTpakJWhicTATOA/SbA==", + "dependencies": { + "asn1.js-rfc5280": "^3.0.0" + }, + "peerDependencies": { + "asn1.js": "^5.0.0" + } + }, + "node_modules/asn1.js-rfc5280": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-3.0.0.tgz", + "integrity": "sha512-Y2LZPOWeZ6qehv698ZgOGGCZXBQShObWnGthTrIFlIQjuV1gg2B8QOhWFRExq/MR1VnPpIIe7P9vX2vElxv+Pg==", + "dependencies": { + "asn1.js": "^5.0.0" + } + }, "node_modules/asn1js": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", @@ -6506,6 +6333,34 @@ "node": ">=12.0.0" } }, + "node_modules/async-disk-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/async-disk-cache/-/async-disk-cache-2.1.0.tgz", + "integrity": "sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==", + "dependencies": { + "debug": "^4.1.1", + "heimdalljs": "^0.2.3", + "istextorbinary": "^2.5.1", + "mkdirp": "^0.5.0", + "rimraf": "^3.0.0", + "rsvp": "^4.8.5", + "username-sync": "^1.0.2" + }, + "engines": { + "node": "8.* || >= 10.*" + } + }, + "node_modules/async-disk-cache/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/async-function": { "version": "1.0.0", "dev": true, @@ -6537,25 +6392,23 @@ } }, "node_modules/axe-core": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", - "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", - "license": "MPL-2.0", + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.3.tgz", + "integrity": "sha512-zBQouZixDTbo3jMGqHKyePxYxr1e5W8UdTmBQ7sNtaA9M2bE32daxxPLS/jojhKOHxQ7LWwPjfiwf/fhaJWzlg==", "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz", - "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.2.tgz", + "integrity": "sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", - "proxy-from-env": "^1.1.0" + "proxy-from-env": "^2.1.0" } }, "node_modules/babel-jest": { @@ -6563,7 +6416,6 @@ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -6641,37 +6493,69 @@ } }, "node_modules/babel-plugin-istanbul": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", - "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-8.0.0.tgz", + "integrity": "sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==", "dev": true, - "license": "BSD-3-Clause", - "workspaces": [ - "test/babel-8" - ], "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-instrument": "^6.0.2", - "test-exclude": "^6.0.0" + "test-exclude": "^7.0.1" }, "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "6.0.3", + "node_modules/babel-plugin-istanbul/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { "node": ">=10" } }, @@ -6688,6 +6572,20 @@ "node": ">=10" } }, + "node_modules/babel-plugin-istanbul/node_modules/test-exclude": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", + "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "dev": true, @@ -6759,8 +6657,7 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.4.4.tgz", "integrity": "sha512-bJILBtn5a11SmtR2j/3mBOjX4K3weC6cq+NNZ7hG22wCAqpc3qtj/iN7dSe9HDiS46lgp1nHsQgeYrea/RUe+g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", @@ -6810,7 +6707,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "license": "MIT", "engines": { "node": ">= 0.6.0" } @@ -6832,8 +6728,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/baseline-browser-mapping": { "version": "2.9.10", @@ -6848,7 +6743,6 @@ "version": "7.3.12", "resolved": "https://registry.npmjs.org/bent/-/bent-7.3.12.tgz", "integrity": "sha512-T3yrKnVGB63zRuoco/7Ybl7BwwGZR0lceoVG5XmQyMIH9s19SV5m+a8qam4if0zQuAmOQTyPTPmsQBdAorGK3w==", - "license": "Apache-2.0", "dependencies": { "bytesish": "^0.4.1", "caseless": "~0.12.0", @@ -6866,6 +6760,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/binaryextensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", + "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==" + }, "node_modules/body-parser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.1.tgz", @@ -6909,14 +6819,15 @@ }, "node_modules/boolean": { "version": "3.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true }, "node_modules/botframework-directlinejs": { "version": "0.15.8", "resolved": "https://registry.npmjs.org/botframework-directlinejs/-/botframework-directlinejs-0.15.8.tgz", "integrity": "sha512-w/rt2NPSuKMU02zFuJ5E456j2xjAJskgaR6L0sEb6/osmC+zcRlP9ghAjKEmgO9Bquu9NYVwVtahIiRCdKpqDA==", - "license": "MIT", "dependencies": { "@babel/runtime": "7.26.10", "botframework-streaming": "4.23.0", @@ -7114,9 +7025,9 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dependencies": { "balanced-match": "^1.0.0" } @@ -7512,8 +7423,7 @@ "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" }, "node_modules/cldr-data": { "version": "36.0.5", @@ -7620,14 +7530,13 @@ "version": "0.5.5" }, "node_modules/cleye": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/cleye/-/cleye-1.3.4.tgz", - "integrity": "sha512-Rd6M8ecBDtdYdPR22h6gG37lPqqJ3hSOaplaGwuGYey9xKmEElOvTgupqfyLSlISshroRpVhYjDtW3vwNUNBaQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cleye/-/cleye-2.6.0.tgz", + "integrity": "sha512-u0SQCsega/ox+2GSuUlG6wvA9c2FtH8sPmv9G9Q3JRTs7FK6+LtaziRAQgx7lrJ1J7bOd3palhwgZKMg8R6JbQ==", "dev": true, - "license": "MIT", "dependencies": { - "terminal-columns": "^1.4.1", - "type-flag": "^3.0.0" + "terminal-columns": "^2.0.0", + "type-flag": "^4.1.0" }, "funding": { "url": "https://github.com/privatenumber/cleye?sponsor=1" @@ -7850,7 +7759,6 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", "dev": true, - "license": "MIT", "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", @@ -7882,8 +7790,7 @@ "node_modules/compute-scroll-into-view": { "version": "1.0.20", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", - "license": "MIT" + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -7894,7 +7801,6 @@ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "4.1.2", "rxjs": "7.8.2", @@ -7987,9 +7893,9 @@ } }, "node_modules/content-disposition": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", - "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", "dev": true, "engines": { "node": ">=18" @@ -8040,11 +7946,10 @@ } }, "node_modules/core-js": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", - "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", "hasInstallScript": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -8065,11 +7970,10 @@ } }, "node_modules/core-js-pure": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", - "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", "hasInstallScript": true, - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -8164,7 +8068,6 @@ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", "dev": true, - "license": "MIT", "dependencies": { "@epic-web/invariant": "^1.0.0", "cross-spawn": "^7.0.6" @@ -8387,8 +8290,7 @@ "node_modules/deep-freeze-strict": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-freeze-strict/-/deep-freeze-strict-1.1.1.tgz", - "integrity": "sha512-QemROZMM2IvhAcCFvahdX2Vbm4S/txeq5rFYU9fh4mQP79WTMW5c/HkQ2ICl1zuzcDZdPZ6zarDxQeQMsVYoNA==", - "license": "public domain" + "integrity": "sha512-QemROZMM2IvhAcCFvahdX2Vbm4S/txeq5rFYU9fh4mQP79WTMW5c/HkQ2ICl1zuzcDZdPZ6zarDxQeQMsVYoNA==" }, "node_modules/deep-is": { "version": "0.1.4", @@ -8479,8 +8381,9 @@ }, "node_modules/detect-node": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true }, "node_modules/devlop": { "version": "1.1.0", @@ -8494,11 +8397,10 @@ } }, "node_modules/diff": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", - "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -8596,9 +8498,9 @@ } }, "node_modules/dotenv": { - "version": "17.4.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.1.tgz", - "integrity": "sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "dev": true, "engines": { "node": ">=12" @@ -8608,16 +8510,19 @@ } }, "node_modules/dtsroll": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dtsroll/-/dtsroll-1.4.1.tgz", - "integrity": "sha512-Ih6dWLx/6DGpPMIODGzaeGYYW/L/A4bAk0/5j+XPKYQ9D2vHKyDZt86GaKCAjd2uhLDwHrr4HwGzoBzdl0EQ2w==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/dtsroll/-/dtsroll-1.8.1.tgz", + "integrity": "sha512-rw+Uv4mk7cxndD1sN5GxWj0Mt1UIqGpLVNay6SlcL1spOW07We29ZBrmy4e7D34+NucGLSCY+JT00S6scMLAFg==", "dev": true, "dependencies": { - "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-node-resolve": "^16.0.3", "byte-size": "^9.0.1", - "cleye": "^1.3.2", - "rollup": "^4.29.1", - "rollup-plugin-dts": "6.1.1" + "cleye": "^2.3.0", + "convert-source-map": "^2.0.0", + "empathic": "^2.0.0", + "resolve-pkg-maps": "^1.0.0", + "rollup": "^4.60.1", + "rollup-plugin-import-trace": "^1.0.1" }, "bin": { "dtsroll": "dist/cli.mjs" @@ -8629,8 +8534,8 @@ "url": "https://github.com/privatenumber/dtsroll?sponsor=1" }, "peerDependencies": { - "typescript": "^4.5 || ^5.0", - "vite": "5 || 6" + "typescript": "^4.5 || ^5.0 || ^6.0", + "vite": "5 || 6 || 7" }, "peerDependenciesMeta": { "vite": { @@ -8664,6 +8569,21 @@ "dev": true, "license": "MIT" }, + "node_modules/editions": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", + "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", + "dependencies": { + "errlop": "^2.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/ee-first": { "version": "1.1.1", "dev": true, @@ -8697,6 +8617,15 @@ "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==" }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "dev": true, @@ -8752,6 +8681,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/errlop": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz", + "integrity": "sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==", + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/errno": { "version": "0.1.8", "dev": true, @@ -8848,7 +8788,6 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -8959,16 +8898,16 @@ }, "node_modules/es6-error": { "version": "4.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true }, "node_modules/esbuild": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", - "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -8976,32 +8915,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.3", - "@esbuild/android-arm": "0.27.3", - "@esbuild/android-arm64": "0.27.3", - "@esbuild/android-x64": "0.27.3", - "@esbuild/darwin-arm64": "0.27.3", - "@esbuild/darwin-x64": "0.27.3", - "@esbuild/freebsd-arm64": "0.27.3", - "@esbuild/freebsd-x64": "0.27.3", - "@esbuild/linux-arm": "0.27.3", - "@esbuild/linux-arm64": "0.27.3", - "@esbuild/linux-ia32": "0.27.3", - "@esbuild/linux-loong64": "0.27.3", - "@esbuild/linux-mips64el": "0.27.3", - "@esbuild/linux-ppc64": "0.27.3", - "@esbuild/linux-riscv64": "0.27.3", - "@esbuild/linux-s390x": "0.27.3", - "@esbuild/linux-x64": "0.27.3", - "@esbuild/netbsd-arm64": "0.27.3", - "@esbuild/netbsd-x64": "0.27.3", - "@esbuild/openbsd-arm64": "0.27.3", - "@esbuild/openbsd-x64": "0.27.3", - "@esbuild/openharmony-arm64": "0.27.3", - "@esbuild/sunos-x64": "0.27.3", - "@esbuild/win32-arm64": "0.27.3", - "@esbuild/win32-ia32": "0.27.3", - "@esbuild/win32-x64": "0.27.3" + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" } }, "node_modules/escalade": { @@ -9034,7 +8973,6 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -9287,9 +9225,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -9339,7 +9277,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, - "license": "MIT", "dependencies": { "eslint-plugin-es": "^3.0.0", "eslint-utils": "^2.0.0", @@ -9356,9 +9293,9 @@ } }, "node_modules/eslint-plugin-node/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -9383,7 +9320,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", "dev": true, - "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.1", "synckit": "^0.11.12" @@ -9442,9 +9378,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", - "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", @@ -9457,13 +9393,13 @@ "node": ">=18" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -9519,9 +9455,9 @@ } }, "node_modules/eslint-plugin-security": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-3.0.1.tgz", - "integrity": "sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-4.0.0.tgz", + "integrity": "sha512-tfuQT8K/Li1ZxhFzyD8wPIKtlzZxqBcPr9q0jFMQ77wWAbKBVEhaMPVQRTMTvCMUDhwBe5vPVqQPwAGk/ASfxQ==", "dev": true, "dependencies": { "safe-regex": "^2.1.1" @@ -9592,9 +9528,9 @@ "license": "Python-2.0" }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -9779,8 +9715,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/esutils": { "version": "2.0.3", @@ -9802,7 +9737,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/event-as-promise/-/event-as-promise-2.0.1.tgz", "integrity": "sha512-g0Wpfse1Gf9Pc8RLggBMti+LxHRmnHxGgv/lQeBlwL31xvFSjLS1ab8g9K5XrtSh8fcK8CHAV7h3zMgjg0LFBA==", - "license": "MIT", "dependencies": { "event-as-promise": "^2.0.1" } @@ -9810,8 +9744,7 @@ "node_modules/event-iterator": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==", - "license": "MIT" + "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" }, "node_modules/event-target-shim": { "version": "5.0.1", @@ -9882,7 +9815,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", @@ -9933,14 +9865,6 @@ "node": ">= 0.6" } }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/mime-types": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", @@ -10162,9 +10086,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "dev": true, "funding": [ { @@ -10172,7 +10096,6 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -10200,7 +10123,6 @@ "version": "3.3.0", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -10216,7 +10138,6 @@ "version": "4.1.0", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">=14" }, @@ -10437,7 +10358,6 @@ }, "node_modules/glob": { "version": "7.2.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -10473,10 +10393,9 @@ "license": "BSD-2-Clause" }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", - "dev": true, + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10486,7 +10405,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -10496,18 +10414,15 @@ } }, "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-4.1.3.tgz", + "integrity": "sha512-KUJEViiuFT3I97t+GYMikLPJS2Lfo/S2F+DQuBWzuzaMPnvt5yyZePzArx36fBzpGTxZjIpDbXLeySLgh+k76g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" + "globalthis": "^1.0.2", + "matcher": "^4.0.0", + "semver": "^7.3.5", + "serialize-error": "^8.1.0" }, "engines": { "node": ">=10.0" @@ -10530,7 +10445,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/globalize/-/globalize-1.7.1.tgz", "integrity": "sha512-PFymRL0PtitFOlSniuwwwNfkooi3cLQJo9Uke1+j1DsGfUkkHkwneImqVtGcqKI0TuzhAlHt7hAcgK324902HA==", - "license": "MIT", "dependencies": { "cldrjs": "^0.5.4" } @@ -10540,7 +10454,6 @@ "resolved": "https://registry.npmjs.org/globalize-compiler/-/globalize-compiler-1.1.1.tgz", "integrity": "sha512-oZIwVp3L/waDidle7Qrw4FiCCmOLAqvdM9P7W8nEO4OfXO//l/abBiA+RL2+mYZPOpTAlRDVS2FLfFVWxHovWA==", "dev": true, - "license": "MIT", "dependencies": { "escodegen": "^1.6.1", "esprima": "^2.3.0", @@ -10773,15 +10686,14 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/handler-chain/-/handler-chain-0.1.1.tgz", "integrity": "sha512-5eo8F9UTUiFCMtDUF1ipva1tvOCGE+vFr33aFHSISjTqXfGywCRV2aE6TzPkMhaw1pArOv3wv2Wz3Rh+AJJ8bA==", - "license": "MIT", "dependencies": { "handler-chain": "^0.1.1" } }, "node_modules/happy-dom": { - "version": "20.8.9", - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.8.9.tgz", - "integrity": "sha512-Tz23LR9T9jOGVZm2x1EPdXqwA37G/owYMxRwU0E4miurAtFsPMQ1d2Jc2okUaSjZqAFz2oEn3FLXC5a0a+siyA==", + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.9.0.tgz", + "integrity": "sha512-GZZ9mKe8r646NUAf/zemnGbjYh4Bt8/MqASJY+pSm5ZDtc3YQox+4gsLI7yi1hba6o+eCsGxpHn5+iEVn31/FQ==", "dev": true, "dependencies": { "@types/node": ">=20.0.0", @@ -10891,7 +10803,6 @@ "resolved": "https://registry.npmjs.org/has-resolved/-/has-resolved-2.0.0.tgz", "integrity": "sha512-vt/qMRKKx5m+kKCj6r98uIRI+UWH+mwg/rUNpTwq5i3J81AVvAT3aSVqPSOX4pFvZIMd6jSHMJvaovAAv5erkw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "^25.0.3", "has-resolved": "^2.0.0" @@ -10966,6 +10877,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/heimdalljs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.6.tgz", + "integrity": "sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==", + "dependencies": { + "rsvp": "~3.2.1" + } + }, + "node_modules/heimdalljs/node_modules/rsvp": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", + "integrity": "sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==" + }, "node_modules/hermes-estree": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", @@ -11004,9 +10928,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.2.tgz", - "integrity": "sha512-wgWa6FWQ3QRRJbIjbsldRJZxdxYngT/dO0I5Ynmlnin8qy7tC6xYzbcJjtN4wHLXtkbVwHzk0C+OejVw1XM+DQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "engines": { "node": "20 || >=22" } @@ -11027,37 +10951,6 @@ "htmlparser2": "10.1.0" } }, - "node_modules/html-dom-parser/node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/html-dom-parser/node_modules/htmlparser2": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", - "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "entities": "^7.0.1" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "dev": true, @@ -11104,7 +10997,9 @@ } }, "node_modules/htmlparser2": { - "version": "8.0.2", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -11112,17 +11007,17 @@ "url": "https://github.com/sponsors/fb55" } ], - "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.2.2", + "entities": "^7.0.1" } }, "node_modules/htmlparser2/node_modules/entities": { - "version": "4.5.0", - "license": "BSD-2-Clause", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", "engines": { "node": ">=0.12" }, @@ -11190,7 +11085,6 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -11327,12 +11221,6 @@ "dev": true, "license": "MIT" }, - "node_modules/immutable": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", - "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==", - "license": "MIT" - }, "node_modules/import-fresh": { "version": "3.3.0", "license": "MIT", @@ -11431,7 +11319,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/inject-meta-tag/-/inject-meta-tag-0.1.0.tgz", "integrity": "sha512-2dxkvwL/Ko8Sgehc23plijjenoAXJRNfbaHQnwa24JU5l7faOzYBGsFiFyt+Ew3s0uFA6s1UPeD7zsIBGvYK0Q==", - "license": "MIT", "dependencies": { "inject-meta-tag": "^0.1.0" } @@ -11728,8 +11615,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-negative-zero": { "version": "2.0.3", @@ -11993,7 +11879,6 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -12097,13 +11982,28 @@ "node": ">=8" } }, + "node_modules/istextorbinary": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", + "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", + "dependencies": { + "binaryextensions": "^2.1.2", + "editions": "^2.2.0", + "textextensions": "^2.5.0" + }, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/iter-fest": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/iter-fest/-/iter-fest-0.3.0.tgz", - "integrity": "sha512-t76cnHCl9MEZRaUb0VBwTXP8dWjxbcTYm91VGWfQYjSMXKkjdOAIjUsaMYuLIy9jxk9fT55XIlb4Y/HACK/zlw==", - "peer": true, + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/iter-fest/-/iter-fest-0.3.1.tgz", + "integrity": "sha512-XL7DGglVGVevTuQAAhVAN3MbADeKyDcijPToBKUxZHpOSUJT22CfvGqsV1t34LyoVxDDL3MGPbHZVx20Lky0og==", "dependencies": { - "iter-fest": "^0.3.0" + "iter-fest": "^0.3.1" }, "peerDependencies": { "core-js-pure": "^3.37.1" @@ -12129,7 +12029,6 @@ "version": "3.4.3", "dev": true, "license": "BlueOak-1.0.0", - "peer": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -12145,7 +12044,6 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -12723,7 +12621,6 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -12769,11 +12666,10 @@ } }, "node_modules/jest-image-snapshot": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-6.5.1.tgz", - "integrity": "sha512-xlJFufgfY2Z4DsRsjcnTwxuynvo1bKdhf4OfcEftNuUAK+BwSCUtPmwlBGJhQ0XJXfm9JMAi/4BhQiHbaV8HrA==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-6.5.2.tgz", + "integrity": "sha512-frenWThr5ddnnokcX5N4gwi41hA5TiUOdhv/JoGcJrOaktHjrk4/7XbiHKW52lgKX+vei6QkRlgM7fkYQ15nPg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "chalk": "^4.0.0", "get-stdin": "^5.0.1", @@ -12787,7 +12683,7 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "jest": ">=20 <=29" + "jest": ">=20 <31" }, "peerDependenciesMeta": { "jest": { @@ -13768,8 +13664,9 @@ }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true }, "node_modules/json5": { "version": "2.2.3", @@ -13811,20 +13708,18 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", - "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/katex": { - "version": "0.16.33", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.33.tgz", - "integrity": "sha512-q3N5u+1sY9Bu7T4nlXoiRBXWfwSefNGoKeOwekV+gw0cAXQlz2Ww6BLcmBxVDeXBMUDQv6fK5bcNaJLxob3ZQA==", + "version": "0.16.45", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.45.tgz", + "integrity": "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" ], - "license": "MIT", "dependencies": { "commander": "^8.3.0" }, @@ -13840,15 +13735,37 @@ } }, "node_modules/keep-a-changelog": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/keep-a-changelog/-/keep-a-changelog-2.7.1.tgz", - "integrity": "sha512-uwxVmpiSd2LOT+sffmd+7odV80WLFxe7jUyGLh4K6H3bjnPIlWJ4d/632+13K2WvtRz4NAwak8PPw416hS5NHA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keep-a-changelog/-/keep-a-changelog-3.0.2.tgz", + "integrity": "sha512-MKk4RWduGopP7MoA8bkzdXQk9CV6cbqNjMzpClM/mA2kT+jsbvO6co2h3UuYPe6/bX/UITemzLBNEanplrIOmQ==", "dev": true, "dependencies": { - "@deno/shim-deno": "~0.18.0" + "ini": "6.0.0", + "semver": "7.7.4" }, "bin": { - "changelog": "esm/bin.js" + "changelog": "bin.js" + } + }, + "node_modules/keep-a-changelog/node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "dev": true, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/keep-a-changelog/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/keyborg": { @@ -13935,9 +13852,10 @@ } }, "node_modules/lightningcss": { - "version": "1.30.1", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", "dev": true, - "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" }, @@ -13949,27 +13867,47 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.30.1", - "lightningcss-darwin-x64": "1.30.1", - "lightningcss-freebsd-x64": "1.30.1", - "lightningcss-linux-arm-gnueabihf": "1.30.1", - "lightningcss-linux-arm64-gnu": "1.30.1", - "lightningcss-linux-arm64-musl": "1.30.1", - "lightningcss-linux-x64-gnu": "1.30.1", - "lightningcss-linux-x64-musl": "1.30.1", - "lightningcss-win32-arm64-msvc": "1.30.1", - "lightningcss-win32-x64-msvc": "1.30.1" - } + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "darwin" @@ -13983,14 +13921,13 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "darwin" @@ -14004,14 +13941,13 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "freebsd" @@ -14025,14 +13961,13 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", "cpu": [ "arm" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14046,14 +13981,13 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14067,14 +14001,13 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14088,12 +14021,13 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.1", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14107,12 +14041,13 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.1", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -14126,14 +14061,13 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", "cpu": [ "arm64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "win32" @@ -14147,14 +14081,13 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "win32" @@ -14190,18 +14123,17 @@ } }, "node_modules/lint-staged": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", - "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.4.0.tgz", + "integrity": "sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==", "dev": true, "dependencies": { - "commander": "^14.0.2", + "commander": "^14.0.3", "listr2": "^9.0.5", - "micromatch": "^4.0.8", - "nano-spawn": "^2.0.0", - "pidtree": "^0.6.0", + "picomatch": "^4.0.3", "string-argv": "^0.3.2", - "yaml": "^2.8.1" + "tinyexec": "^1.0.4", + "yaml": "^2.8.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -14223,6 +14155,18 @@ "node": ">=20" } }, + "node_modules/lint-staged/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/listr2": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", @@ -14280,11 +14224,10 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "dev": true, - "license": "MIT" + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -14421,7 +14364,6 @@ "resolved": "https://registry.npmjs.org/lolex/-/lolex-6.0.0.tgz", "integrity": "sha512-ad9IBHbfVJ3bPAotDxnCgJgKcNK5/mrRAfbJzXhY5+PEmuBWP7wyHQlA6L8TfSfPlqlDjY4K7IG6mbzsrIBx1A==", "deprecated": "lolex has been renamed to @sinonjs/fake-timers. No API changes made. Please use the new package instead", - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -14504,7 +14446,6 @@ "version": "13.0.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", - "license": "MIT", "dependencies": { "argparse": "^2.0.1", "entities": "~3.0.1", @@ -14521,14 +14462,18 @@ "license": "Python-2.0" }, "node_modules/matcher": { - "version": "3.0.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-4.0.0.tgz", + "integrity": "sha512-S6x5wmcDmsDRRU/c2dkccDwQPXoFczc5+HpQ2lON8pnvHlnvHAHj5WlLVvw6n6vNyHuVugYrFohYxbS+pvFpKQ==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^4.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/math-intrinsics": { @@ -14542,14 +14487,12 @@ "node_modules/math-random": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-2.0.1.tgz", - "integrity": "sha512-oIEbWiVDxDpl5tIF4S6zYS9JExhh3bun3uLb3YAinHPTlRtW4g1S66LtJrJ4Npq8dgIa8CLK5iPVah5n4n0s2w==", - "license": "CC0-1.0" + "integrity": "sha512-oIEbWiVDxDpl5tIF4S6zYS9JExhh3bun3uLb3YAinHPTlRtW4g1S66LtJrJ4Npq8dgIa8CLK5iPVah5n4n0s2w==" }, "node_modules/mdast-util-from-markdown": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", - "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -14615,8 +14558,7 @@ "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", - "license": "MIT" + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, "node_modules/meow": { "version": "9.0.0", @@ -14723,7 +14665,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-2.0.0.tgz", "integrity": "sha512-3+B21mYK2IqUWnd2EivABLT7ueDhb0b8/dGK8LoFQPrU61YITeCMn14F7y7qZafWNZhUEKb24cJdiT5Wxs3prg==", - "license": "MIT", "funding": { "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1" }, @@ -14763,7 +14704,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -14820,7 +14760,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -15036,7 +14975,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -15209,7 +15147,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -15263,8 +15200,7 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "license": "MIT" + ] }, "node_modules/micromatch": { "version": "4.0.8", @@ -15278,10 +15214,9 @@ } }, "node_modules/microsoft-cognitiveservices-speech-sdk": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.48.0.tgz", - "integrity": "sha512-D/8cZn0+vWE18PHloEXfeSHjxuCTYs1zjMulQ4EgpjIrLdtaqSqa9guDBXPnxFnnysWRnZZwyfM/uoiKZvEXXw==", - "license": "MIT", + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.49.0.tgz", + "integrity": "sha512-4WLkw+wqygqFCjgUOjD/Vj3x12KZhuBF09Bf3/ywZqLDIepPi3jPq42QjuAGyel9lWoa8V5P9cri34fUhzTkEw==", "dependencies": { "@azure/core-auth": "^1.9.0", "@types/webrtc": "^0.0.37", @@ -15338,24 +15273,33 @@ } }, "node_modules/mime-db": { - "version": "1.52.0", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "~1.33.0" }, "engines": { "node": ">= 0.6" } }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "dev": true, @@ -15384,6 +15328,11 @@ "node": ">=4" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, "node_modules/minimatch": { "version": "10.2.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", @@ -15423,7 +15372,6 @@ }, "node_modules/minimist": { "version": "1.2.8", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15454,7 +15402,6 @@ "version": "7.1.2", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -15496,18 +15443,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nano-spawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", - "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", - "dev": true, - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" - } - }, "node_modules/nanoid": { "version": "3.3.8", "funding": [ @@ -15695,7 +15630,6 @@ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.14.tgz", "integrity": "sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==", "dev": true, - "license": "MIT", "dependencies": { "chokidar": "^3.5.2", "debug": "^4", @@ -16053,8 +15987,7 @@ "node_modules/package-json-from-dist": { "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "peer": true + "license": "BlueOak-1.0.0" }, "node_modules/pako": { "version": "1.0.11", @@ -16117,7 +16050,6 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -16143,7 +16075,6 @@ "version": "1.11.1", "dev": true, "license": "BlueOak-1.0.0", - "peer": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -16158,8 +16089,7 @@ "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/path-to-regexp": { "version": "8.4.2", @@ -16204,17 +16134,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidtree": { - "version": "0.6.0", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/pify": { "version": "4.0.1", "dev": true, @@ -16440,11 +16359,10 @@ } }, "node_modules/prettier": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", - "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -16521,7 +16439,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -16554,10 +16471,14 @@ } }, "node_modules/proxy-from-env": { - "version": "1.1.0", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", "dev": true, - "license": "MIT", - "peer": true + "peer": true, + "engines": { + "node": ">=10" + } }, "node_modules/prr": { "version": "1.0.1", @@ -16574,7 +16495,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", "engines": { "node": ">=6" } @@ -16621,6 +16541,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/queue-microtask": { "version": "1.2.3", "dev": true, @@ -16714,7 +16639,6 @@ "version": "16.8.6", "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -16729,7 +16653,6 @@ "version": "0.4.2", "resolved": "https://registry.npmjs.org/react-chain-of-responsibility/-/react-chain-of-responsibility-0.4.2.tgz", "integrity": "sha512-khBaWO1rSLSUw6Ydr3lYFgONwmrx9rSOClrLCyn7cq40QxVJSh5utq1rbey+Pr24trWmQdC9qweTuKG2RptTXw==", - "license": "MIT", "dependencies": { "handler-chain": "^0.1.0", "react-chain-of-responsibility": "^0.4.2", @@ -16743,7 +16666,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/react-dictate-button/-/react-dictate-button-4.0.1.tgz", "integrity": "sha512-UvXx3RhJfGD4I7UkUEtBGBRyKRQrh90gzFsde53sJUhJ0V8iTJo8dthtNBMuanYTUyGdZdfdPCjv5ozIlEPvAQ==", - "license": "MIT", "dependencies": { "@babel/runtime-corejs3": "^7.28.4", "react-dictate-button": "^4.0.1", @@ -16757,7 +16679,6 @@ "version": "16.8.6", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -16772,7 +16693,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/react-film/-/react-film-4.0.0.tgz", "integrity": "sha512-KHhHA+155CBwSq1REa4f9c+68PZUQdISo25JCEnk/2/TuzO+c/feT95usxwO50MCcWyatWefa8chdu0jYIS3WQ==", - "license": "MIT", "dependencies": { "@emotion/css": "^11.13.5", "classnames": "^2.5.1", @@ -16799,7 +16719,6 @@ "version": "7.2.9", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -16824,7 +16743,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-say/-/react-say-2.2.1.tgz", "integrity": "sha512-Iew40Wql10+IC659S1CRbziEO272XeJmWfmLbnSLqyGpCwELTBxTefHvFUvKwEAuJv8Bk+ezjcw0NxgDAZdzWA==", - "license": "MIT", "dependencies": { "prop-types": "^15.8.1", "react-say": "^2.2.1" @@ -16837,7 +16755,6 @@ "version": "4.2.1-main.53844f5", "resolved": "https://registry.npmjs.org/react-scroll-to-bottom/-/react-scroll-to-bottom-4.2.1-main.53844f5.tgz", "integrity": "sha512-YWTDfj15tVwRateyq3yOUjlmZ8BNgAmBahzvwX5J/fjyBTkASbwnZlABuqQt1NspZ9Oe/bO8r/BYWTnIInxlcw==", - "license": "MIT", "dependencies": { "@babel/runtime-corejs3": "^7.15.4", "@emotion/css": "11.1.3", @@ -16900,7 +16817,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/react-wrap-with/-/react-wrap-with-0.1.0.tgz", "integrity": "sha512-8+UKXYLofRBNtSfeZCM81/X0sCvJRv0/nrt42lPozrF/BF0WW2/QDoZQLKuvkMxN+i8qaGzC7mOM6z4UGwlpug==", - "license": "MIT", "dependencies": { "@babel/runtime-corejs3": "^7.24.1", "react-wrap-with": "^0.1.0", @@ -16939,9 +16855,9 @@ } }, "node_modules/read-package-up/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "dependencies": { "tagged-tag": "^1.0.0" }, @@ -16953,15 +16869,15 @@ } }, "node_modules/read-pkg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-10.0.0.tgz", - "integrity": "sha512-A70UlgfNdKI5NSvTTfHzLQj7NJRpJ4mT5tGafkllJ4wh71oYuGm/pzphHcmW4s35iox56KSK721AihodoXSc/A==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-10.1.0.tgz", + "integrity": "sha512-I8g2lArQiP78ll51UeMZojewtYgIRCKCWqZEgOO8c/uefTI+XDXvCSXu3+YNUaTNvZzobrL5+SqHjBrByRRTdg==", "dependencies": { "@types/normalize-package-data": "^2.4.4", "normalize-package-data": "^8.0.0", "parse-json": "^8.3.0", - "type-fest": "^5.2.0", - "unicorn-magic": "^0.3.0" + "type-fest": "^5.4.4", + "unicorn-magic": "^0.4.0" }, "engines": { "node": ">=20" @@ -17075,9 +16991,9 @@ } }, "node_modules/read-pkg/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "dependencies": { "tagged-tag": "^1.0.0" }, @@ -17149,14 +17065,12 @@ "node_modules/redux": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "node_modules/redux-saga": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.4.2.tgz", "integrity": "sha512-QLIn/q+7MX/B+MkGJ/K6R3//60eJ4QNy65eqPsJrfGezbxdh1Jx+37VRKE2K4PsJnNET5JufJtgWdT30WBa+6w==", - "license": "MIT", "dependencies": { "@redux-saga/core": "^1.4.2" } @@ -17346,7 +17260,6 @@ }, "node_modules/requires-port": { "version": "1.0.0", - "dev": true, "license": "MIT" }, "node_modules/reserved-words": { @@ -17355,10 +17268,11 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dependencies": { + "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" @@ -17392,6 +17306,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.3", "dev": true, @@ -17460,7 +17383,6 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -17474,8 +17396,9 @@ }, "node_modules/roarr": { "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "boolean": "^3.0.1", "detect-node": "^2.0.4", @@ -17490,15 +17413,15 @@ }, "node_modules/roarr/node_modules/sprintf-js": { "version": "1.1.3", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true }, "node_modules/rollup": { - "version": "4.59.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", - "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "version": "4.60.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz", + "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.8" }, @@ -17510,55 +17433,56 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.59.0", - "@rollup/rollup-android-arm64": "4.59.0", - "@rollup/rollup-darwin-arm64": "4.59.0", - "@rollup/rollup-darwin-x64": "4.59.0", - "@rollup/rollup-freebsd-arm64": "4.59.0", - "@rollup/rollup-freebsd-x64": "4.59.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", - "@rollup/rollup-linux-arm-musleabihf": "4.59.0", - "@rollup/rollup-linux-arm64-gnu": "4.59.0", - "@rollup/rollup-linux-arm64-musl": "4.59.0", - "@rollup/rollup-linux-loong64-gnu": "4.59.0", - "@rollup/rollup-linux-loong64-musl": "4.59.0", - "@rollup/rollup-linux-ppc64-gnu": "4.59.0", - "@rollup/rollup-linux-ppc64-musl": "4.59.0", - "@rollup/rollup-linux-riscv64-gnu": "4.59.0", - "@rollup/rollup-linux-riscv64-musl": "4.59.0", - "@rollup/rollup-linux-s390x-gnu": "4.59.0", - "@rollup/rollup-linux-x64-gnu": "4.59.0", - "@rollup/rollup-linux-x64-musl": "4.59.0", - "@rollup/rollup-openbsd-x64": "4.59.0", - "@rollup/rollup-openharmony-arm64": "4.59.0", - "@rollup/rollup-win32-arm64-msvc": "4.59.0", - "@rollup/rollup-win32-ia32-msvc": "4.59.0", - "@rollup/rollup-win32-x64-gnu": "4.59.0", - "@rollup/rollup-win32-x64-msvc": "4.59.0", + "@rollup/rollup-android-arm-eabi": "4.60.2", + "@rollup/rollup-android-arm64": "4.60.2", + "@rollup/rollup-darwin-arm64": "4.60.2", + "@rollup/rollup-darwin-x64": "4.60.2", + "@rollup/rollup-freebsd-arm64": "4.60.2", + "@rollup/rollup-freebsd-x64": "4.60.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", + "@rollup/rollup-linux-arm-musleabihf": "4.60.2", + "@rollup/rollup-linux-arm64-gnu": "4.60.2", + "@rollup/rollup-linux-arm64-musl": "4.60.2", + "@rollup/rollup-linux-loong64-gnu": "4.60.2", + "@rollup/rollup-linux-loong64-musl": "4.60.2", + "@rollup/rollup-linux-ppc64-gnu": "4.60.2", + "@rollup/rollup-linux-ppc64-musl": "4.60.2", + "@rollup/rollup-linux-riscv64-gnu": "4.60.2", + "@rollup/rollup-linux-riscv64-musl": "4.60.2", + "@rollup/rollup-linux-s390x-gnu": "4.60.2", + "@rollup/rollup-linux-x64-gnu": "4.60.2", + "@rollup/rollup-linux-x64-musl": "4.60.2", + "@rollup/rollup-openbsd-x64": "4.60.2", + "@rollup/rollup-openharmony-arm64": "4.60.2", + "@rollup/rollup-win32-arm64-msvc": "4.60.2", + "@rollup/rollup-win32-ia32-msvc": "4.60.2", + "@rollup/rollup-win32-x64-gnu": "4.60.2", + "@rollup/rollup-win32-x64-msvc": "4.60.2", "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-dts": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz", - "integrity": "sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==", + "node_modules/rollup-plugin-import-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-import-trace/-/rollup-plugin-import-trace-1.0.1.tgz", + "integrity": "sha512-dWOKrdYba2BXDJh82kkuM4pAR3M6r7WFp6vbVxAgvLfug2WniMFAg2uZ5sNQ/8CoQWo5l2N5EXDG8+QClKk1YQ==", "dev": true, - "license": "LGPL-3.0-only", - "dependencies": { - "magic-string": "^0.30.10" - }, "engines": { - "node": ">=16" + "node": ">=20.20.0" }, "funding": { - "url": "https://github.com/sponsors/Swatinem" - }, - "optionalDependencies": { - "@babel/code-frame": "^7.24.2" + "url": "https://github.com/privatenumber/rollup-plugin-import-trace?sponsor=1" }, "peerDependencies": { - "rollup": "^3.29.4 || ^4", - "typescript": "^4.5 || ^5.0" + "rollup": "^3.0.0 || ^4.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "vite": { + "optional": true + } } }, "node_modules/router": { @@ -17576,6 +17500,14 @@ "node": ">= 18" } }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "engines": { + "node": "6.* || >= 7.*" + } + }, "node_modules/rtl-css-js": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", @@ -17695,18 +17627,16 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, "license": "MIT" }, "node_modules/sanitize-html": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.1.tgz", - "integrity": "sha512-ehFCW+q1a4CSOWRAdX97BX/6/PDEkCqw7/0JXZAGQV57FQB3YOkTa/rrzHPeJ+Aghy4vZAFfWMYyfxIiB7F/gw==", - "license": "MIT", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.3.tgz", + "integrity": "sha512-Kn4srCAo2+wZyvCNKCSyB2g8RQ8IkX/gQs2uqoSRNu5t9I2qvUyAVvRDiFUVAiX3N3PNuwStY0eNr+ooBHVWEg==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", - "htmlparser2": "^8.0.0", + "htmlparser2": "^10.1.0", "is-plain-object": "^5.0.0", "parse-srcset": "^1.0.2", "postcss": "^8.3.11" @@ -17834,9 +17764,9 @@ "dev": true }, "node_modules/selenium-webdriver": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.41.0.tgz", - "integrity": "sha512-1XxuKVhr9az24xwixPBEDGSZP+P0z3ZOnCmr9Oiep0MlJN2Mk+flIjD3iBS9BgyjS4g14dikMqnrYUPIjhQBhA==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.43.0.tgz", + "integrity": "sha512-dV4zBTT37or3Z3/8uD6rS8zvd4ZxPuG4EJVlqYIbZCGZCYttZm7xb9rlFLSk4rrsQHAeDYvudl7cquo0vWpHjg==", "dev": true, "funding": [ { @@ -17848,12 +17778,11 @@ "url": "https://opencollective.com/selenium" } ], - "license": "Apache-2.0", "dependencies": { "@bazel/runfiles": "^6.5.0", "jszip": "^3.10.1", "tmp": "^0.2.5", - "ws": "^8.19.0" + "ws": "^8.20.0" }, "engines": { "node": ">= 20.0.0" @@ -17884,7 +17813,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", - "license": "MIT", "dependencies": { "@peculiar/x509": "^1.14.2", "pkijs": "^3.3.3" @@ -17895,7 +17823,6 @@ }, "node_modules/semver": { "version": "6.3.1", - "devOptional": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -17903,8 +17830,9 @@ }, "node_modules/semver-compare": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true }, "node_modules/send": { "version": "1.2.0", @@ -17927,14 +17855,6 @@ "node": ">= 18" } }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/send/node_modules/mime-types": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", @@ -17952,11 +17872,12 @@ } }, "node_modules/serialize-error": { - "version": "7.0.1", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz", + "integrity": "sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.13.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=10" @@ -17966,9 +17887,10 @@ } }, "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.13.1", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -17981,7 +17903,6 @@ "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.6.tgz", "integrity": "sha512-QEjUSA+sD4Rotm1znR8s50YqA3kYpRGPmtd5GlFxbaL9n/FdUNbqMhxClqdditSk0LlZyA/dhud6XNRTOC9x2Q==", "dev": true, - "license": "MIT", "dependencies": { "@zeit/schemas": "2.36.0", "ajv": "8.18.0", @@ -18006,7 +17927,6 @@ "version": "6.1.7", "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", - "license": "MIT", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", @@ -18018,9 +17938,9 @@ } }, "node_modules/serve-handler/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -18040,23 +17960,6 @@ "node": ">= 0.6" } }, - "node_modules/serve-handler/node_modules/mime-db": { - "version": "1.33.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/mime-types": { - "version": "2.1.18", - "license": "MIT", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/serve-handler/node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -18233,7 +18136,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", - "license": "MIT", "dependencies": { "@shikijs/core": "2.5.0", "@shikijs/engine-javascript": "2.5.0", @@ -18318,11 +18220,15 @@ "dev": true, "license": "ISC" }, + "node_modules/simple-lru-cache": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz", + "integrity": "sha512-uEv/AFO0ADI7d99OHDmh1QfYzQk/izT1vCmu/riQfh7qjBVUUgRT87E5s5h7CxWCA/+YoZerykpEthzVrW3LIw==" + }, "node_modules/simple-update-in": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/simple-update-in/-/simple-update-in-2.2.0.tgz", - "integrity": "sha512-FrW41lLiOs82jKxwq39UrE1HDAHOvirKWk4Nv8tqnFFFknVbTxcHZzDS4vt02qqdU/5+KNsQHWzhKHznDBmrww==", - "license": "MIT" + "integrity": "sha512-FrW41lLiOs82jKxwq39UrE1HDAHOvirKWk4Nv8tqnFFFknVbTxcHZzDS4vt02qqdU/5+KNsQHWzhKHznDBmrww==" }, "node_modules/simple-update-notifier": { "version": "2.0.0", @@ -18409,7 +18315,6 @@ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, - "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" @@ -18572,7 +18477,6 @@ "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -18585,14 +18489,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -18731,7 +18633,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -18744,7 +18645,6 @@ "version": "6.0.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -18995,7 +18895,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", - "license": "MIT", "engines": { "node": ">=20" }, @@ -19018,11 +18917,10 @@ } }, "node_modules/terminal-columns": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terminal-columns/-/terminal-columns-1.4.1.tgz", - "integrity": "sha512-IKVL/itiMy947XWVv4IHV7a0KQXvKjj4ptbi7Ew9MPMcOLzkiQeyx3Gyvh62hKrfJ0RZc4M1nbhzjNM39Kyujw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/terminal-columns/-/terminal-columns-2.0.0.tgz", + "integrity": "sha512-6IByuUjyNZJXUtwDNm+OIe62zgwwaRbH+WMNTcx05O2G5V9WhvluAAHJY8OvUdwmzMPpqAD/7EUpGdI6ae1aiQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/privatenumber/terminal-columns?sponsor=1" } @@ -19147,9 +19045,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -19174,6 +19072,17 @@ "dev": true, "license": "MIT" }, + "node_modules/textextensions": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", + "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/thenify": { "version": "3.3.1", "dev": true, @@ -19193,6 +19102,15 @@ "node": ">=0.8" } }, + "node_modules/tinyexec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -19304,11 +19222,10 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.12" }, @@ -19356,7 +19273,6 @@ "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.33.0.tgz", "integrity": "sha512-/PQtykJFVw90QICG7zyPDMIyueOXKL7jOJVoX5pILnb3Ux+7QqynOxfVvarE+K+yi7BZyOSY4r+OZNWSWRiEwQ==", "dev": true, - "license": "MIT", "dependencies": { "@tsd/typescript": "^5.9.2", "eslint-formatter-pretty": "^4.1.0", @@ -19382,7 +19298,6 @@ "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", "integrity": "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==", "dev": true, - "license": "MIT", "dependencies": { "bundle-require": "^5.1.0", "cac": "^6.7.14", @@ -19531,11 +19446,10 @@ } }, "node_modules/type-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/type-flag/-/type-flag-3.0.0.tgz", - "integrity": "sha512-3YaYwMseXCAhBB14RXW5cRQfJQlEknS6i4C8fCfeUdS3ihG9EdccdR9kt3vP73ZdeTGmPb4bZtkDn5XMIn1DLA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/type-flag/-/type-flag-4.2.0.tgz", + "integrity": "sha512-6h6QpSh5glA+BrMCq8FINo4o/BqSHNQdfIPpeSBt0s/6mynPaQWWZL+RHaYm95htTbid/spUbJer1yOCsA6ezQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/privatenumber/type-flag?sponsor=1" } @@ -19553,14 +19467,6 @@ "node": ">= 0.6" } }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.54.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/type-is/node_modules/mime-types": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", @@ -19648,11 +19554,10 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "devOptional": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19679,7 +19584,6 @@ "resolved": "https://registry.npmjs.org/typescript-plugin-css-modules/-/typescript-plugin-css-modules-5.2.0.tgz", "integrity": "sha512-c5pAU5d+m3GciDr/WhkFldz1NIEGBafuP/3xhFt9BEXS2gmn/LvjkoZ11vEBIuP8LkXfPNhOt1BUhM5efFuwOw==", "dev": true, - "license": "MIT", "dependencies": { "@types/postcss-modules-local-by-default": "^4.0.2", "@types/postcss-modules-scope": "^3.0.4", @@ -19821,10 +19725,9 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "license": "MIT" + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", @@ -19871,11 +19774,11 @@ } }, "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19953,32 +19856,30 @@ } }, "node_modules/unplugin": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", - "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.0.0.tgz", + "integrity": "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==", "dev": true, "dependencies": { "@jridgewell/remapping": "^2.3.5", - "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" }, "engines": { - "node": ">=18.12.0" + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/unplugin-lightningcss": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/unplugin-lightningcss/-/unplugin-lightningcss-0.4.3.tgz", - "integrity": "sha512-duRm9yQq/EbjsHHhNxgQJhelqSvUFNUN9UM/BomglCVQpmE3qD2d17UeAps1Pvoa6LHH23VRAYhEA4YKsf+sCQ==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/unplugin-lightningcss/-/unplugin-lightningcss-0.4.5.tgz", + "integrity": "sha512-PMm6POv3gt1HNbxYFItantjcP6dPG/BiV/9IXcVLVBv3BZ+pf7Eo4yE+siIGKoVMXjs3BfVXeETTw2Gv3D8iOw==", "dev": true, "dependencies": { - "lightningcss": "^1.30.1", - "magic-string": "^0.30.19", - "unplugin": "^2.3.10" + "lightningcss": "^1.31.1", + "unplugin": "^3.0.0" }, "engines": { - "node": ">=20.18.0" + "node": ">=20.19.0" }, "funding": { "url": "https://github.com/sponsors/sxzz" @@ -20043,17 +19944,24 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/url-search-params-polyfill": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/url-search-params-polyfill/-/url-search-params-polyfill-8.2.5.tgz", - "integrity": "sha512-FOEojW4XReTmtZOB7xqSHmJZhrNTmClhBriwLTmle4iA7bwuCo6ldSfbtsFSb8bTf3E0a3XpfonAdaur9vqq8A==", - "license": "MIT" + "integrity": "sha512-FOEojW4XReTmtZOB7xqSHmJZhrNTmClhBriwLTmle4iA7bwuCo6ldSfbtsFSb8bTf3E0a3XpfonAdaur9vqq8A==" }, "node_modules/use-propagate": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/use-propagate/-/use-propagate-0.2.2.tgz", "integrity": "sha512-cuOqTG8JKwkd1DHJAy1fkwIMhjVRZSdSvELJCXsROvmS49yd8CEXg4UDaDC7Qqsea0FAa1d8cFMY5pnodZul1w==", - "license": "MIT", "dependencies": { "use-propagate": "^0.2.2", "use-ref-from": "^0.1.0" @@ -20066,7 +19974,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/use-reduce-memo/-/use-reduce-memo-0.1.0.tgz", "integrity": "sha512-dJK1fMqvI7Lzh5xdKsZkZiqbvTyNtovQB7E3IWJp5tOeG7kdxZKdD5XSROiRGwAfB0qctgzJMcsCTp+m7y77UA==", - "license": "MIT", "dependencies": { "handler-chain": "^0.1.0", "use-reduce-memo": "^0.1.0", @@ -20092,7 +19999,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/use-state-with-ref/-/use-state-with-ref-0.2.1.tgz", "integrity": "sha512-6EPhnqXsdzEVnOQub5VoDmrTLI2PqKp8zIIw/fvfdW9F/qLboIZG5ifaRQpAon8Upu3QYnIYZ+8h+YYQdXUnCw==", - "license": "MIT", "dependencies": { "use-ref-from": "^0.2.1", "use-state-with-ref": "^0.2.1" @@ -20113,6 +20019,11 @@ "react": ">=16.8.0" } }, + "node_modules/username-sync": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/username-sync/-/username-sync-1.0.3.tgz", + "integrity": "sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==" + }, "node_modules/util-deprecate": { "version": "1.0.2", "dev": true, @@ -20122,7 +20033,6 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -20222,7 +20132,6 @@ "version": "8.1.4", "resolved": "https://registry.npmjs.org/web-speech-cognitive-services/-/web-speech-cognitive-services-8.1.4.tgz", "integrity": "sha512-1d/2F5RDAMTJmJdSWWssKzmTsA6hkXz4kz3QzBpDvgjxWjDo4j2erb6KydyfaRzDRk4Pij4MtR1CtpzZtU9rSA==", - "license": "MIT", "dependencies": { "base64-arraybuffer": "^1.0.2", "event-as-promise": "^2.0.1", @@ -20248,11 +20157,10 @@ } }, "node_modules/webpack": { - "version": "5.105.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", - "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", + "version": "5.106.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz", + "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -20270,9 +20178,8 @@ "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", + "mime-db": "^1.54.0", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", @@ -20297,19 +20204,14 @@ } }, "node_modules/webpack-cli": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", - "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-7.0.2.tgz", + "integrity": "sha512-dB0R4T+C/8YuvM+fabdvil6QE44/ChDXikV5lOOkrUeCkW5hTJv2pGLE3keh+D5hjYw8icBaJkZzpFoaHV4T+g==", "dev": true, - "license": "MIT", "dependencies": { - "@discoveryjs/json-ext": "^0.6.1", - "@webpack-cli/configtest": "^3.0.1", - "@webpack-cli/info": "^3.0.1", - "@webpack-cli/serve": "^3.0.1", - "colorette": "^2.0.14", - "commander": "^12.1.0", - "cross-spawn": "^7.0.3", + "@discoveryjs/json-ext": "^1.0.0", + "commander": "^14.0.3", + "cross-spawn": "^7.0.6", "envinfo": "^7.14.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", @@ -20321,14 +20223,16 @@ "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.82.0" + "webpack": "^5.101.0", + "webpack-bundle-analyzer": "^4.0.0 || ^5.0.0", + "webpack-dev-server": "^5.0.0" }, "peerDependenciesMeta": { "webpack-bundle-analyzer": { @@ -20340,11 +20244,12 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "12.1.0", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/webpack-merge": { @@ -20374,8 +20279,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/webpack-stats-plugin/-/webpack-stats-plugin-1.1.3.tgz", "integrity": "sha512-yUKYyy+e0iF/w31QdfioRKY+h3jDBRpthexBOWGKda99iu2l/wxYsI/XqdlP5IU58/0KB9CsJZgWNAl+/MPkRw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", @@ -20406,8 +20310,7 @@ "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" }, "node_modules/whatwg-mimetype": { "version": "3.0.0", @@ -20611,7 +20514,6 @@ "version": "7.0.0", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -20627,14 +20529,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -20643,7 +20543,6 @@ "version": "4.2.3", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -20767,10 +20666,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "bin": { "yaml": "bin.mjs" }, @@ -20907,11 +20805,11 @@ "simple-update-in": "2.2.0", "use-reduce-memo": "0.1.0", "use-ref-from": "0.2.1", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "devDependencies": { "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@msinternal/botframework-webchat-api-graph": "0.0.0-0", @@ -20922,19 +20820,19 @@ "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", "@msinternal/botframework-webchat-redux-store": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/dom-speech-recognition": "^0.0.7", + "@types/dom-speech-recognition": "^0.0.9", "@types/jest": "^29.5.14", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "core-js": "^3.48.0", + "core-js": "^3.49.0", "cross-env": "^10.1.0", "globalize-compiler": "^1.1.1", "iana-tz-data": "^2019.1.0", "nodemon": "^3.1.14", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "react": ">= 16.8.6", @@ -20946,7 +20844,7 @@ "version": "0.0.0-0", "license": "MIT", "dependencies": { - "valibot": "1.2.0" + "valibot": "1.3.1" }, "devDependencies": { "@msinternal/botframework-webchat-base": "0.0.0-0", @@ -20955,8 +20853,8 @@ "@testduet/given-when-then": "^0.1.0", "@types/use-sync-external-store": "^1.5.0", "botframework-webchat-core": "0.0.0-0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "handler-chain": "0.1.1", @@ -20965,9 +20863,9 @@ } }, "packages/api-graph/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "dev": true, "dependencies": { "tagged-tag": "^1.0.0" @@ -20979,6 +20877,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/api-graph/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "packages/api-middleware": { "name": "@msinternal/botframework-webchat-api-middleware", "version": "0.0.0-0", @@ -20986,17 +20897,17 @@ "dependencies": { "handler-chain": "0.1.1", "react-wrap-with": "0.1.0", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "devDependencies": { "@jridgewell/sourcemap-codec": "^1.5.5", "@msinternal/botframework-webchat-base": "0.0.0-0", "@msinternal/botframework-webchat-react-hooks": "0.0.0-0", "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "cross-env": "^10.1.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "react": ">= 16.8.6", @@ -21004,9 +20915,9 @@ } }, "packages/api-middleware/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "dev": true, "dependencies": { "tagged-tag": "^1.0.0" @@ -21018,22 +20929,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/api/node_modules/iter-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/iter-fest/-/iter-fest-0.3.1.tgz", - "integrity": "sha512-XL7DGglVGVevTuQAAhVAN3MbADeKyDcijPToBKUxZHpOSUJT22CfvGqsV1t34LyoVxDDL3MGPbHZVx20Lky0og==", - "license": "MIT", - "dependencies": { - "iter-fest": "^0.3.1" - }, + "packages/api-middleware/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", "peerDependencies": { - "core-js-pure": "^3.37.1" + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "packages/api/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "dev": true, "dependencies": { "tagged-tag": "^1.0.0" @@ -21049,7 +20961,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", - "license": "MIT", "dependencies": { "use-ref-from": "^0.2.1" }, @@ -21057,37 +20968,39 @@ "react": ">=16.8.0" } }, + "packages/api/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "packages/base": { "name": "@msinternal/botframework-webchat-base", "version": "0.0.0-0", "license": "MIT", "devDependencies": { "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/node": "^25.3.3", - "core-js-pure": "^3.48.0", + "@types/node": "^25.6.0", + "core-js-pure": "^3.49.0", "cross-env": "^10.1.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "valibot": "1.2.0" } }, - "packages/base/node_modules/core-js-pure": { - "version": "3.49.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", - "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "packages/base/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", "dev": true, "dependencies": { "tagged-tag": "^1.0.0" @@ -21104,7 +21017,7 @@ "version": "0.0.0-0", "license": "MIT", "dependencies": { - "@babel/runtime": "7.28.6", + "@babel/runtime": "7.29.2", "adaptivecards": "3.0.6", "botframework-directlinejs": "0.15.8", "botframework-directlinespeech-sdk": "0.0.0-0", @@ -21112,8 +21025,8 @@ "botframework-webchat-component": "0.0.0-0", "botframework-webchat-core": "0.0.0-0", "classnames": "2.5.1", - "core-js": "3.48.0", - "katex": "0.16.33", + "core-js": "3.49.0", + "katex": "0.16.45", "math-random": "2.0.1", "mdast-util-from-markdown": "2.0.3", "memoize-one": "6.0.0", @@ -21121,22 +21034,22 @@ "micromark-extension-gfm": "3.0.0", "micromark-util-character": "2.1.1", "micromark-util-sanitize-uri": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.48.0", + "microsoft-cognitiveservices-speech-sdk": "1.49.0", "prop-types": "15.8.1", "punycode": "2.3.1", - "sanitize-html": "2.17.1", + "sanitize-html": "2.17.3", "shiki": "2.5.0", "url-search-params-polyfill": "8.2.5", "use-ref-from": "0.2.1", "uuid": "8.3.2", - "valibot": "1.2.0", + "valibot": "1.3.1", "web-speech-cognitive-services": "8.1.4", "whatwg-fetch": "3.6.20" }, "devDependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-runtime": "^7.29.0", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@msinternal/adaptivecards": "0.0.0-0", @@ -21159,21 +21072,21 @@ "@msinternal/react-is": "0.0.0-0", "@msinternal/react-umd": "0.0.0-0", "@testduet/given-when-then": "^0.1.0", - "@types/dom-speech-recognition": "^0.0.7", + "@types/dom-speech-recognition": "^0.0.9", "@types/mdast": "^4.0.4", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", "@types/react-dom": "^16.9.25", "@types/uuid": "^8.3.4", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", "cross-env": "^10.1.0", - "esbuild": "^0.27.3", + "esbuild": "^0.28.0", "micromark-util-types": "^2.0.2", "read-pkg": "^10.1.0", "tsd": "^0.33.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "react": ">= 16.8.6", @@ -21181,429 +21094,437 @@ "react-dom": ">= 16.8.6" } }, - "packages/bundle/node_modules/botframework-directlinespeech-sdk/node_modules/@babel/runtime": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", - "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", - "extraneous": true, - "license": "MIT", + "packages/bundle/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "packages/bundle/node_modules/botframework-directlinespeech-sdk/node_modules/core-js": { - "version": "3.44.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", - "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", - "extraneous": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "packages/bundle/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "packages/bundle/node_modules/parse-json": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", - "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "packages/bundle/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "index-to-position": "^1.1.0", - "type-fest": "^4.39.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/bundle/node_modules/parse-json/node_modules/type-fest": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "packages/bundle/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "(MIT OR CC0-1.0)", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/bundle/node_modules/read-pkg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-10.1.0.tgz", - "integrity": "sha512-I8g2lArQiP78ll51UeMZojewtYgIRCKCWqZEgOO8c/uefTI+XDXvCSXu3+YNUaTNvZzobrL5+SqHjBrByRRTdg==", + "packages/bundle/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.4", - "normalize-package-data": "^8.0.0", - "parse-json": "^8.3.0", - "type-fest": "^5.4.4", - "unicorn-magic": "^0.4.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/bundle/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "packages/bundle/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "tagged-tag": "^1.0.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/bundle/node_modules/unicorn-magic": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", - "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "packages/bundle/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/bundle/node_modules/use-ref-from": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", - "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", - "license": "MIT", - "dependencies": { - "use-ref-from": "^0.2.1" - }, - "peerDependencies": { - "react": ">=16.8.0" + "packages/bundle/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "packages/component": { - "name": "botframework-webchat-component", - "version": "0.0.0-0", - "license": "MIT", - "dependencies": { - "@emotion/css": "11.13.5", - "base64-js": "1.5.1", - "botframework-webchat-api": "0.0.0-0", - "botframework-webchat-core": "0.0.0-0", - "classnames": "2.5.1", - "compute-scroll-into-view": "1.0.20", - "deep-freeze-strict": "1.1.1", - "markdown-it": "13.0.2", - "math-random": "2.0.1", - "mdast-util-from-markdown": "2.0.3", - "memoize-one": "6.0.0", - "merge-refs": "2.0.0", - "prop-types": "15.8.1", - "punycode": "2.3.1", - "react-chain-of-responsibility": "0.4.2", - "react-dictate-button": "4.0.1", - "react-film": "4.0.0", - "react-redux": "7.2.9", - "react-say": "2.2.1", - "react-scroll-to-bottom": "4.2.1-main.53844f5", - "react-wrap-with": "0.1.0", - "redux": "5.0.1", - "simple-update-in": "2.2.0", - "use-propagate": "0.2.2", - "use-reduce-memo": "0.1.0", - "use-ref-from": "0.2.1", - "use-state-with-ref": "0.2.1", - "valibot": "1.2.0" - }, - "devDependencies": { - "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", - "@babel/preset-react": "^7.28.5", - "@babel/preset-typescript": "^7.28.5", - "@msinternal/botframework-webchat-base": "0.0.0-0", - "@msinternal/botframework-webchat-react-hooks": "0.0.0-0", - "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", - "@msinternal/botframework-webchat-styles": "0.0.0-0", - "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/dom-speech-recognition": "^0.0.7", - "@types/jest": "^29.5.14", - "@types/mdast": "^4.0.4", - "@types/node": "^25.3.3", - "@types/react": "^16.14.69", - "babel-plugin-istanbul": "^7.0.1", - "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "core-js": "^3.48.0", - "cross-env": "^10.1.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" - }, - "peerDependencies": { - "react": ">= 16.8.6", - "react-dom": ">= 16.8.6" + "packages/bundle/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/component/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "packages/bundle/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "tagged-tag": "^1.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/component/node_modules/use-ref-from": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", - "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", - "license": "MIT", - "dependencies": { - "use-ref-from": "^0.2.1" - }, - "peerDependencies": { - "react": ">=16.8.0" + "packages/bundle/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/core": { - "name": "botframework-webchat-core", - "version": "0.0.0-0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "7.28.6", - "@redux-devtools/extension": "3.3.0", - "core-js-pure": "3.48.0", - "iter-fest": "0.3.1", - "jwt-decode": "4.0.0", - "math-random": "2.0.1", - "mime": "4.1.0", - "redux": "5.0.1", - "redux-saga": "1.4.2", - "simple-update-in": "2.2.0", - "uuid": "8.3.2", - "valibot": "1.2.0" - }, - "devDependencies": { - "@babel/core": "^7.29.0", - "@babel/plugin-transform-runtime": "^7.29.0", - "@babel/plugin-transform-typescript": "^7.28.6", - "@babel/preset-env": "^7.29.0", - "@msinternal/botframework-webchat-base": "0.0.0-0", - "@msinternal/botframework-webchat-core-debug-api": "0.0.0-0", - "@msinternal/botframework-webchat-core-graph": "0.0.0-0", - "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@testduet/given-when-then": "^0.1.0", - "@types/jest": "^29.5.14", - "@types/node": "^25.3.3", - "@types/uuid": "^8.3.4", - "babel-plugin-istanbul": "^7.0.1", - "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "botframework-directlinejs": "^0.15.8", - "cross-env": "^10.1.0", - "tsd": "^0.33.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" - }, + "packages/bundle/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.0.0" + "node": ">=18" } }, - "packages/core-debug-api": { - "name": "@msinternal/botframework-webchat-core-debug-api", - "version": "0.0.0-0", - "license": "MIT", - "dependencies": { - "tagged-tag": "1.0.0" - }, - "devDependencies": { - "@msinternal/botframework-webchat-base": "0.0.0-0", - "type-fest": "^5.4.4" + "packages/bundle/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/core-debug-api/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "packages/bundle/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "tagged-tag": "^1.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/core-graph": { - "name": "@msinternal/botframework-webchat-core-graph", - "version": "0.0.0-0", - "license": "MIT", - "dependencies": { - "valibot": "1.2.0" - }, - "devDependencies": { - "@msinternal/botframework-webchat-base": "0.0.0-0", - "@testduet/given-when-then": "^0.1.0", - "@types/uuid": "^8.3.4", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" - }, - "peerDependencies": { - "core-js-pure": "3.47.0", - "iter-fest": "0.3.0", - "uuid": "8.3.2" + "packages/bundle/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/core-graph/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "packages/bundle/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "tagged-tag": "^1.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/core/node_modules/core-js-pure": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", - "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "packages/bundle/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "packages/core/node_modules/iter-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/iter-fest/-/iter-fest-0.3.1.tgz", - "integrity": "sha512-XL7DGglVGVevTuQAAhVAN3MbADeKyDcijPToBKUxZHpOSUJT22CfvGqsV1t34LyoVxDDL3MGPbHZVx20Lky0og==", - "license": "MIT", - "dependencies": { - "iter-fest": "^0.3.1" - }, - "peerDependencies": { - "core-js-pure": "^3.37.1" + "packages/bundle/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "packages/core/node_modules/mime": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", - "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", - "funding": [ - "https://github.com/sponsors/broofa" + "packages/bundle/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" ], - "license": "MIT", - "bin": { - "mime": "bin/cli.js" - }, "engines": { - "node": ">=16" + "node": ">=18" } }, - "packages/core/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "packages/bundle/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "tagged-tag": "^1.0.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "packages/debug-theme": { - "name": "@msinternal/botframework-webchat-debug-theme", - "version": "0.0.0-0", - "license": "MIT", - "dependencies": { - "botframework-webchat-api": "0.0.0-0", - "botframework-webchat-component": "0.0.0-0" - }, - "peerDependencies": { - "react": ">= 16.8.6" + "packages/bundle/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "packages/directlinespeech": { - "name": "botframework-directlinespeech-sdk", - "version": "0.0.0-0", + "packages/bundle/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/bundle/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/bundle/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/bundle/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/bundle/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/bundle/node_modules/botframework-directlinespeech-sdk/node_modules/@babel/runtime": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "extraneous": true, "license": "MIT", - "dependencies": { - "@babel/runtime": "7.28.6", - "abort-controller": "3.0.0", - "base64-arraybuffer": "1.0.2", - "core-js": "3.48.0", - "core-js-pure": "3.48.0", - "event-as-promise": "2.0.1", - "event-target-shim": "6.0.2", - "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.48.0", - "web-speech-cognitive-services": "8.1.4" - }, - "devDependencies": { - "@babel/cli": "^7.28.6", - "@babel/core": "^7.29.0", - "@babel/plugin-transform-runtime": "^7.29.0", - "@babel/preset-env": "^7.29.0", - "@types/jest": "^29.5.14", - "@typescript-eslint/eslint-plugin": "^8.56.1", - "@typescript-eslint/parser": "^8.56.1", - "babel-jest": "^29.7.0", - "babel-plugin-istanbul": "^7.0.1", - "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "cross-env": "^10.1.0", - "dotenv": "^17.3.1", - "eslint": "^8.57.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^5.5.5", - "eslint-plugin-security": "^4.0.0", - "global-agent": "^3.0.0", - "has-resolved": "^2.0.0", - "jest": "^29.7.0", - "prettier": "^3.8.1", - "serve": "^14.2.6", - "simple-update-in": "^2.2.0", - "source-map-loader": "^5.0.0", - "webpack": "^5.105.4", - "webpack-cli": "^6.0.1", - "webpack-stats-plugin": "^1.1.3" - }, "engines": { - "node": ">= 10.14.2" + "node": ">=6.9.0" } }, - "packages/directlinespeech/node_modules/core-js-pure": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", - "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", + "packages/bundle/node_modules/botframework-directlinespeech-sdk/node_modules/core-js": { + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", + "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", + "extraneous": true, "hasInstallScript": true, "license": "MIT", "funding": { @@ -21611,65 +21532,166 @@ "url": "https://opencollective.com/core-js" } }, - "packages/directlinespeech/node_modules/eslint-plugin-security": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-4.0.0.tgz", - "integrity": "sha512-tfuQT8K/Li1ZxhFzyD8wPIKtlzZxqBcPr9q0jFMQ77wWAbKBVEhaMPVQRTMTvCMUDhwBe5vPVqQPwAGk/ASfxQ==", + "packages/bundle/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-regex": "^2.1.1" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=18" }, - "funding": { - "url": "https://opencollective.com/eslint" + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" } }, - "packages/directlinespeech/node_modules/event-target-shim": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", - "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", - "license": "MIT", + "packages/bundle/node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, + "dependencies": { + "tagged-tag": "^1.0.0" + }, "engines": { - "node": ">=10.13.0" + "node": ">=20" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/fluent-theme": { - "name": "botframework-webchat-fluent-theme", + "packages/bundle/node_modules/use-ref-from": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", + "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", + "dependencies": { + "use-ref-from": "^0.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "packages/bundle/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/component": { + "name": "botframework-webchat-component", "version": "0.0.0-0", "license": "MIT", "dependencies": { - "botframework-webchat": "0.0.0-0", + "@emotion/css": "11.13.5", + "base64-js": "1.5.1", + "botframework-webchat-api": "0.0.0-0", + "botframework-webchat-core": "0.0.0-0", "classnames": "2.5.1", - "inject-meta-tag": "0.1.0", + "compute-scroll-into-view": "1.0.20", + "deep-freeze-strict": "1.1.1", + "markdown-it": "13.0.2", "math-random": "2.0.1", + "mdast-util-from-markdown": "2.0.3", + "memoize-one": "6.0.0", + "merge-refs": "2.0.0", + "prop-types": "15.8.1", + "punycode": "2.3.1", + "react-chain-of-responsibility": "0.4.2", + "react-dictate-button": "4.0.1", + "react-film": "4.0.0", + "react-redux": "7.2.9", + "react-say": "2.2.1", + "react-scroll-to-bottom": "4.2.1-main.53844f5", + "react-wrap-with": "0.1.0", + "redux": "5.0.1", + "simple-update-in": "2.2.0", + "use-propagate": "0.2.2", + "use-reduce-memo": "0.1.0", "use-ref-from": "0.2.1", - "valibot": "1.2.0" + "use-state-with-ref": "0.2.1", + "valibot": "1.3.1" }, "devDependencies": { + "@babel/core": "^7.29.0", + "@babel/preset-env": "^7.29.2", + "@babel/preset-react": "^7.28.5", + "@babel/preset-typescript": "^7.28.5", + "@msinternal/botframework-webchat-base": "0.0.0-0", + "@msinternal/botframework-webchat-react-hooks": "0.0.0-0", + "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", "@msinternal/botframework-webchat-styles": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/math-random": "^1.0.2", - "@types/node": "^25.3.3", + "@types/dom-speech-recognition": "^0.0.9", + "@types/jest": "^29.5.14", + "@types/mdast": "^4.0.4", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", - "concurrently": "^9.2.1", - "tsup": "^8.5.1", - "typescript": "^5.9.3" + "babel-plugin-istanbul": "^8.0.0", + "babel-plugin-transform-inline-environment-variables": "^0.4.4", + "core-js": "^3.49.0", + "cross-env": "^10.1.0", + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { - "react": ">= 16.8.6" + "react": ">= 16.8.6", + "react-dom": ">= 16.8.6" } }, - "packages/fluent-theme/node_modules/use-ref-from": { + "packages/component/node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/component/node_modules/use-ref-from": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", - "license": "MIT", "dependencies": { "use-ref-from": "^0.2.1" }, @@ -21677,668 +21699,8181 @@ "react": ">=16.8.0" } }, - "packages/isomorphic-react": { - "name": "@msinternal/isomorphic-react", - "version": "0.0.0-0", - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.28.6", - "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", - "webpack": "^5.105.4", - "webpack-cli": "^6.0.1" - } - }, - "packages/isomorphic-react-dom": { - "name": "@msinternal/isomorphic-react-dom", + "packages/component/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/core": { + "name": "botframework-webchat-core", "version": "0.0.0-0", "license": "MIT", + "dependencies": { + "@babel/runtime": "7.29.2", + "@redux-devtools/extension": "4.0.0", + "core-js-pure": "3.49.0", + "iter-fest": "0.3.1", + "jwt-decode": "4.0.0", + "math-random": "2.0.1", + "mime": "4.1.0", + "redux": "5.0.1", + "redux-saga": "1.4.2", + "simple-update-in": "2.2.0", + "uuid": "8.3.2", + "valibot": "1.3.1" + }, "devDependencies": { - "@babel/cli": "^7.28.6", "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", - "webpack": "^5.105.4", - "webpack-cli": "^6.0.1" + "@babel/plugin-transform-runtime": "^7.29.0", + "@babel/plugin-transform-typescript": "^7.28.6", + "@babel/preset-env": "^7.29.2", + "@msinternal/botframework-webchat-base": "0.0.0-0", + "@msinternal/botframework-webchat-core-debug-api": "0.0.0-0", + "@msinternal/botframework-webchat-core-graph": "0.0.0-0", + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@testduet/given-when-then": "^0.1.0", + "@types/jest": "^29.5.14", + "@types/node": "^25.6.0", + "@types/uuid": "^8.3.4", + "babel-plugin-istanbul": "^8.0.0", + "babel-plugin-transform-inline-environment-variables": "^0.4.4", + "botframework-directlinejs": "^0.15.8", + "cross-env": "^10.1.0", + "tsd": "^0.33.0", + "type-fest": "^5.6.0", + "typescript": "^6.0.3" + }, + "engines": { + "node": ">=12.0.0" } }, - "packages/react-hooks": { - "name": "@msinternal/botframework-webchat-react-hooks", + "packages/core-debug-api": { + "name": "@msinternal/botframework-webchat-core-debug-api", "version": "0.0.0-0", "license": "MIT", + "dependencies": { + "tagged-tag": "1.0.0" + }, "devDependencies": { - "@msinternal/botframework-webchat-base": "0.0.0-0" + "@msinternal/botframework-webchat-base": "0.0.0-0", + "type-fest": "^5.6.0" + } + }, + "packages/core-debug-api/node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, + "dependencies": { + "tagged-tag": "^1.0.0" }, - "peerDependencies": { - "react": ">= 16.8.6" + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/react-valibot": { - "name": "@msinternal/botframework-webchat-react-valibot", + "packages/core-graph": { + "name": "@msinternal/botframework-webchat-core-graph", "version": "0.0.0-0", "license": "MIT", + "dependencies": { + "valibot": "1.3.1" + }, "devDependencies": { - "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/jest": "^29.5.14", - "@types/react": "^16.14.69", - "tsup": "^8.5.1", - "typescript": "^5.9.3" + "@msinternal/botframework-webchat-base": "0.0.0-0", + "@testduet/given-when-then": "^0.1.0", + "@types/uuid": "^8.3.4", + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { - "react": ">= 16.8.6", - "valibot": "1.2.0" + "core-js-pure": "^3.49.0", + "iter-fest": "^0.3.1", + "uuid": "^8.3.2" } }, - "packages/redux-store": { - "name": "@msinternal/botframework-webchat-redux-store", - "version": "0.0.0-0", - "license": "MIT", + "packages/core-graph/node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, "dependencies": { - "botframework-webchat-core": "0.0.0-0", - "valibot": "1.2.0" + "tagged-tag": "^1.0.0" }, - "devDependencies": { - "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", - "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/react": "^16.14.69", - "tsup": "^8.5.1", - "typescript": "^5.9.3" + "engines": { + "node": ">=20" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/core-graph/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", "peerDependencies": { - "react": ">= 16.8.6" + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "packages/repack/adaptivecards": { - "name": "@msinternal/adaptivecards", - "version": "0.0.0-0", + "packages/core/node_modules/mime": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "packages/core/node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, "dependencies": { - "adaptivecards": "3.0.6" + "tagged-tag": "^1.0.0" }, - "devDependencies": { - "esbuild": "^0.27.3" + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/repack/base64-js": { - "name": "@msinternal/base64-js", + "packages/core/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/debug-theme": { + "name": "@msinternal/botframework-webchat-debug-theme", "version": "0.0.0-0", + "license": "MIT", "dependencies": { - "base64-js": "1.5.1" + "botframework-webchat-api": "0.0.0-0", + "botframework-webchat-component": "0.0.0-0" }, - "devDependencies": { - "esbuild": "^0.27.3" + "peerDependencies": { + "react": ">= 16.8.6" } }, - "packages/repack/botframework-directlinejs": { - "name": "@msinternal/botframework-directlinejs", + "packages/directlinespeech": { + "name": "botframework-directlinespeech-sdk", "version": "0.0.0-0", + "license": "MIT", "dependencies": { - "botframework-directlinejs": "0.15.8" + "@babel/runtime": "7.29.2", + "abort-controller": "3.0.0", + "base64-arraybuffer": "1.0.2", + "core-js": "3.49.0", + "core-js-pure": "3.49.0", + "event-as-promise": "2.0.1", + "event-target-shim": "6.0.2", + "math-random": "2.0.1", + "microsoft-cognitiveservices-speech-sdk": "1.17.0", + "web-speech-cognitive-services": "8.1.4" }, "devDependencies": { - "esbuild": "^0.27.3" + "@babel/cli": "^7.28.6", + "@babel/core": "^7.29.0", + "@babel/plugin-transform-runtime": "^7.29.0", + "@babel/preset-env": "^7.29.2", + "@types/jest": "^29.5.14", + "@typescript-eslint/eslint-plugin": "^8.59.0", + "@typescript-eslint/parser": "^8.59.0", + "babel-jest": "^29.7.0", + "babel-plugin-istanbul": "^8.0.0", + "babel-plugin-transform-inline-environment-variables": "^0.4.4", + "cross-env": "^10.1.0", + "dotenv": "^17.4.2", + "eslint": "^8.57.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-security": "^4.0.0", + "global-agent": "^3.0.0", + "has-resolved": "^2.0.0", + "jest": "^29.7.0", + "prettier": "^3.8.3", + "serve": "^14.2.6", + "simple-update-in": "^2.2.0", + "source-map-loader": "^5.0.0", + "webpack": "^5.106.2", + "webpack-cli": "^7.0.2", + "webpack-stats-plugin": "^1.1.3" + }, + "engines": { + "node": ">= 10.14.2" } }, - "packages/repack/html-react-parser": { - "name": "@msinternal/html-react-parser", - "version": "0.0.0-0", + "packages/directlinespeech/node_modules/@angular/common": { + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.9.tgz", + "integrity": "sha512-7spQcF3hPN/fjTx6Pwa32KRRdO0NcixnRuPV4lo50ejtXesjiLVR+fkaX38sawAyGoq89IuuYvUDrbLwCMypmQ==", + "peer": true, "dependencies": { - "html-react-parser": "5.2.17" + "tslib": "^2.3.0" }, - "devDependencies": { - "esbuild": "^0.27.3" + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/core": "21.2.9", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "packages/repack/microsoft-cognitiveservices-speech-sdk": { - "name": "@msinternal/microsoft-cognitiveservices-speech-sdk", - "version": "0.0.0-0", + "packages/directlinespeech/node_modules/@angular/core": { + "version": "21.2.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.9.tgz", + "integrity": "sha512-uZLq2aedJ+0uEZxyf6a1Nc7y1aZ7akAW7K1Kon8JUDZOvI2IDbk0i00MzkELt8q9uSmSSqg9zNKuhjspFf0Pyw==", + "peer": true, "dependencies": { - "microsoft-cognitiveservices-speech-sdk": "1.48.0" + "tslib": "^2.3.0" }, - "devDependencies": { - "esbuild": "^0.27.3" + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/compiler": "21.2.9", + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0 || ~0.16.0" + }, + "peerDependenciesMeta": { + "@angular/compiler": { + "optional": true + }, + "zone.js": { + "optional": true + } } }, - "packages/repack/object-assign": { - "name": "@msinternal/object-assign", - "version": "0.0.0-0" + "packages/directlinespeech/node_modules/event-target-shim": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } }, - "packages/repack/react": { - "name": "@msinternal/react", - "version": "0.0.0-0", + "packages/directlinespeech/node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, "dependencies": { - "react": "18.3.1" + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" }, - "devDependencies": { - "@types/react": "^18.3.28", - "esbuild": "^0.27.3" + "engines": { + "node": ">=10.0" } }, - "packages/repack/react-dom": { - "name": "@msinternal/react-dom", - "version": "0.0.0-0", + "packages/directlinespeech/node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, "dependencies": { - "react-dom": "18.3.1" + "escape-string-regexp": "^4.0.0" }, - "devDependencies": { - "@types/react-dom": "^18.3.7", - "esbuild": "^0.27.3" + "engines": { + "node": ">=10" } }, - "packages/repack/react-dom@baseline": { - "name": "@msinternal/react-dom-baseline", - "version": "0.0.0-0", + "packages/directlinespeech/node_modules/microsoft-cognitiveservices-speech-sdk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.17.0.tgz", + "integrity": "sha512-RVUCpTeu1g+R4HB/PaLQmEfsdHzwEa6+2phgCiPA4lGIiR7ILEL7qZHHUWAG6W4zcjnWeiLnL7tVgMbyd5XGgA==", "dependencies": { - "react-dom": "16.8.6" + "agent-base": "^6.0.1", + "asn1.js-rfc2560": "^5.0.1", + "asn1.js-rfc5280": "^3.0.0", + "async-disk-cache": "^2.1.0", + "https-proxy-agent": "^4.0.0", + "simple-lru-cache": "0.0.2", + "url-parse": "^1.4.7", + "uuid": "^3.3.3", + "ws": "^7.3.1", + "xmlhttprequest-ts": "^1.0.1" + } + }, + "packages/directlinespeech/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "packages/directlinespeech/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/directlinespeech/node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/directlinespeech/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/directlinespeech/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "packages/directlinespeech/node_modules/xmlhttprequest-ts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ts/-/xmlhttprequest-ts-1.0.1.tgz", + "integrity": "sha512-x+7u8NpBcwfBCeGqUpdGrR6+kGUGVjKc4wolyCz7CQqBZQp7VIyaF1xAvJ7ApRzvLeuiC4BbmrA6CWH9NqxK/g==", + "dependencies": { + "tslib": "^1.9.2" + }, + "peerDependencies": { + "@angular/common": ">= 5.0.0", + "@angular/core": ">= 5.0.0" + } + }, + "packages/directlinespeech/node_modules/xmlhttprequest-ts/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "packages/fluent-theme": { + "name": "botframework-webchat-fluent-theme", + "version": "0.0.0-0", + "license": "MIT", + "dependencies": { + "botframework-webchat": "0.0.0-0", + "classnames": "2.5.1", + "inject-meta-tag": "0.1.0", + "math-random": "2.0.1", + "use-ref-from": "0.2.1", + "valibot": "1.3.1" }, "devDependencies": { - "@msinternal/object-assign": "0.0.0-0", - "@types/react-dom": "^16.9.25", - "esbuild": "^0.27.3" + "@msinternal/botframework-webchat-styles": "0.0.0-0", + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@types/math-random": "^1.0.2", + "@types/node": "^25.6.0", + "@types/react": "^16.14.69", + "concurrently": "^9.2.1", + "tsup": "^8.5.1", + "typescript": "^6.0.3" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "packages/fluent-theme/node_modules/use-ref-from": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", + "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", + "dependencies": { + "use-ref-from": "^0.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "packages/fluent-theme/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/isomorphic-react": { + "name": "@msinternal/isomorphic-react", + "version": "0.0.0-0", + "license": "MIT", + "devDependencies": { + "@babel/cli": "^7.28.6", + "@babel/core": "^7.29.0", + "@babel/preset-env": "^7.29.2", + "webpack": "^5.106.2", + "webpack-cli": "^7.0.2" + } + }, + "packages/isomorphic-react-dom": { + "name": "@msinternal/isomorphic-react-dom", + "version": "0.0.0-0", + "license": "MIT", + "devDependencies": { + "@babel/cli": "^7.28.6", + "@babel/core": "^7.29.0", + "@babel/preset-env": "^7.29.2", + "webpack": "^5.106.2", + "webpack-cli": "^7.0.2" + } + }, + "packages/react-hooks": { + "name": "@msinternal/botframework-webchat-react-hooks", + "version": "0.0.0-0", + "license": "MIT", + "devDependencies": { + "@msinternal/botframework-webchat-base": "0.0.0-0" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "packages/react-valibot": { + "name": "@msinternal/botframework-webchat-react-valibot", + "version": "0.0.0-0", + "license": "MIT", + "devDependencies": { + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@types/jest": "^29.5.14", + "@types/react": "^16.14.69", + "tsup": "^8.5.1", + "typescript": "^6.0.3" + }, + "peerDependencies": { + "react": ">= 16.8.6", + "valibot": "1.2.0" + } + }, + "packages/redux-store": { + "name": "@msinternal/botframework-webchat-redux-store", + "version": "0.0.0-0", + "license": "MIT", + "dependencies": { + "botframework-webchat-core": "0.0.0-0", + "valibot": "1.3.1" + }, + "devDependencies": { + "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@types/react": "^16.14.69", + "tsup": "^8.5.1", + "typescript": "^6.0.3" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "packages/redux-store/node_modules/valibot": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.3.1.tgz", + "integrity": "sha512-sfdRir/QFM0JaF22hqTroPc5xy4DimuGQVKFrzF1YfGwaS1nJot3Y8VqMdLO2Lg27fMzat2yD3pY5PbAYO39Gg==", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "packages/repack/adaptivecards": { + "name": "@msinternal/adaptivecards", + "version": "0.0.0-0", + "dependencies": { + "adaptivecards": "3.0.6" + }, + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/adaptivecards/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/base64-js": { + "name": "@msinternal/base64-js", + "version": "0.0.0-0", + "dependencies": { + "base64-js": "1.5.1" + }, + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/base64-js/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/botframework-directlinejs": { + "name": "@msinternal/botframework-directlinejs", + "version": "0.0.0-0", + "dependencies": { + "botframework-directlinejs": "0.15.8" + }, + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/botframework-directlinejs/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/html-react-parser": { + "name": "@msinternal/html-react-parser", + "version": "0.0.0-0", + "dependencies": { + "html-react-parser": "6.0.1" + }, + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/html-react-parser/node_modules/dom-serializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-3.0.0.tgz", + "integrity": "sha512-x+9D6nkC8tdXOQUS32egtZpZFLP90+HBZmWjuT920srbJvD/zPgFB9t4k3pEhlw5BQrXStQtRc1Y1zuriXk+Nw==", + "dependencies": { + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0", + "entities": "^8.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "packages/repack/html-react-parser/node_modules/domelementtype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-3.0.0.tgz", + "integrity": "sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "engines": { + "node": ">=20.19.0" + } + }, + "packages/repack/html-react-parser/node_modules/domhandler": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-6.0.1.tgz", + "integrity": "sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==", + "dependencies": { + "domelementtype": "^3.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "packages/repack/html-react-parser/node_modules/domutils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-4.0.2.tgz", + "integrity": "sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==", + "dependencies": { + "dom-serializer": "^3.0.0", + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "packages/repack/html-react-parser/node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "packages/repack/html-react-parser/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/html-react-parser/node_modules/html-dom-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-7.0.1.tgz", + "integrity": "sha512-loRBDTCY/05/jAC63J1X9ID+xjRucmpLkIcQO0IRbOubBo5ucnpUpyXXob9UMXOskMZlu7KPsDP/2KOMelzJNA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + } + ], + "dependencies": { + "domhandler": "6.0.1", + "htmlparser2": "12.0.0" + } + }, + "packages/repack/html-react-parser/node_modules/html-react-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-6.0.1.tgz", + "integrity": "sha512-tIie2HSIk2Ct1tdupjd/DhBjskxN/NL5J4ncbUnk2smBr5UIfpPpitUo0imGfBM0BlOL7ac8RcqEwne1jXTcsQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/remarkablemark" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/html-react-parser" + } + ], + "dependencies": { + "domhandler": "6.0.1", + "html-dom-parser": "7.0.1", + "react-property": "2.0.2", + "style-to-js": "1.1.21" + }, + "peerDependencies": { + "@types/react": "0.14 || 15 || 16 || 17 || 18 || 19", + "react": "0.14 || 15 || 16 || 17 || 18 || 19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "packages/repack/html-react-parser/node_modules/htmlparser2": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-12.0.0.tgz", + "integrity": "sha512-Tz7u1i95/g2x2jz81+x0FBVhBhY5aRTvD3tXXdFaljuNdzDLJ8UGNRrTcj2cgQvAg3iW/h77Fz15nLW0L0CrZw==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^3.0.0", + "domhandler": "^6.0.0", + "domutils": "^4.0.2", + "entities": "^8.0.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk": { + "name": "@msinternal/microsoft-cognitiveservices-speech-sdk", + "version": "0.0.0-0", + "dependencies": { + "microsoft-cognitiveservices-speech-sdk": "1.49.0" + }, + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/object-assign": { + "name": "@msinternal/object-assign", + "version": "0.0.0-0" + }, + "packages/repack/react": { + "name": "@msinternal/react", + "version": "0.0.0-0", + "dependencies": { + "react": "18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.28", + "esbuild": "^0.28.0" + } + }, + "packages/repack/react-dom": { + "name": "@msinternal/react-dom", + "version": "0.0.0-0", + "dependencies": { + "react-dom": "18.3.1" + }, + "devDependencies": { + "@types/react-dom": "^18.3.7", + "esbuild": "^0.28.0" + } + }, + "packages/repack/react-dom@baseline": { + "name": "@msinternal/react-dom-baseline", + "version": "0.0.0-0", + "dependencies": { + "react-dom": "16.8.6" + }, + "devDependencies": { + "@msinternal/object-assign": "0.0.0-0", + "@types/react-dom": "^16.9.25", + "esbuild": "^0.28.0" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@baseline/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react-dom@umd": { + "name": "@msinternal/react-dom-umd", + "version": "0.0.0-0", + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom@umd/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-dom/node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "packages/repack/react-dom/node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "packages/repack/react-dom/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react-dom/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/repack/react-dom/node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "packages/repack/react-dom/node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "packages/repack/react-is": { + "name": "@msinternal/react-is", + "version": "0.0.0-0", + "dependencies": { + "react-is": "16.13.1" + }, + "devDependencies": { + "@types/react-is": "^16.7.5", + "esbuild": "^0.28.0" + } + }, + "packages/repack/react-is/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react-is/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react-is/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "packages/repack/react@baseline": { + "name": "@msinternal/react-baseline", + "version": "0.0.0-0", + "dependencies": { + "react": "16.8.6" + }, + "devDependencies": { + "@msinternal/object-assign": "0.0.0-0", + "@types/react": "^16.14.69", + "esbuild": "^0.28.0" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@baseline/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react@umd": { + "name": "@msinternal/react-umd", + "version": "0.0.0-0", + "devDependencies": { + "esbuild": "^0.28.0" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react@umd/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/repack/react/node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "packages/repack/react/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/repack/react/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/styles": { + "name": "@msinternal/botframework-webchat-styles", + "version": "0.0.0-0", + "license": "MIT", + "devDependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5", + "@msinternal/botframework-webchat-base": "0.0.0-0", + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@types/node": "^25.6.0", + "cross-env": "^10.1.0", + "esbuild": "^0.28.0", + "tsup": "^8.5.1", + "type-fest": "^5.6.0", + "typescript": "^6.0.3" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "packages/styles/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/styles/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" + } + }, + "packages/styles/node_modules/type-fest": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.6.0.tgz", + "integrity": "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==", + "dev": true, + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/support/cldr-data": { + "name": "@msinternal/botframework-webchat-cldr-data", + "version": "0.0.0-0", + "dependencies": { + "@msinternal/botframework-webchat-cldr-data-downloader": "0.0.0-0", + "glob": "8.1.0", + "read-package-up": "12.0.0", + "read-pkg": "10.1.0" + }, + "engines": { + "node": ">= 12" + } + }, + "packages/support/cldr-data-downloader": { + "name": "@msinternal/botframework-webchat-cldr-data-downloader", + "version": "0.0.0-0", + "dependencies": { + "adm-zip": "0.5.17", + "nopt": "9.0.0", + "progress": "2.0.3", + "q": "1.5.1" + }, + "bin": { + "cldr-data-downloader": "bin/download.sh" + }, + "engines": { + "node": ">= 12" + } + }, + "packages/support/cldr-data/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/support/cldr-data/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "packages/test/dev-server": { + "name": "@msinternal/dev-server", + "version": "0.0.0-0", + "license": "MIT", + "devDependencies": { + "compression": "^1.8.1", + "express": "^5.2.1", + "serve-handler": "^6.1.7" + } + }, + "packages/test/harness": { + "name": "@msinternal/test-harness", + "version": "0.0.0-0", + "license": "MIT", + "dependencies": { + "abort-controller": "3.0.0", + "axe-core": "4.11.3", + "core-js": "3.49.0", + "core-js-pure": "3.49.0", + "event-target-shim": "6.0.2", + "expect": "25.5.0", + "lolex": "6.0.0", + "math-random": "2.0.1" + }, + "devDependencies": { + "concurrently": "^9.2.1", + "esbuild": "^0.28.0", + "express": "^5.2.1", + "global-agent": "^3.0.0", + "http-proxy-middleware": "^2.0.9", + "istanbul-lib-coverage": "^3.2.2", + "jest": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-image-snapshot": "^6.5.2", + "selenium-webdriver": "^4.43.0", + "serve": "^14.2.6", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "packages/test/harness/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/harness/node_modules/@jest/types": { + "version": "25.5.0", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "packages/test/harness/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, - "packages/repack/react-dom@umd": { - "name": "@msinternal/react-dom-umd", - "version": "0.0.0-0", - "devDependencies": { - "esbuild": "^0.27.3" + "packages/test/harness/node_modules/@types/stack-utils": { + "version": "1.0.1", + "license": "MIT" + }, + "packages/test/harness/node_modules/@types/yargs": { + "version": "15.0.20", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.20.tgz", + "integrity": "sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==", + "dependencies": { + "@types/yargs-parser": "*" } }, - "packages/repack/react-dom/node_modules/@types/react": { - "version": "18.3.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", - "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", - "dev": true, + "packages/test/harness/node_modules/chalk": { + "version": "3.0.0", "license": "MIT", - "peer": true, "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.2.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "packages/repack/react-dom/node_modules/@types/react-dom": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", - "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", - "dev": true, + "packages/test/harness/node_modules/diff-sequences": { + "version": "25.2.6", "license": "MIT", - "peerDependencies": { - "@types/react": "^18.0.0" + "engines": { + "node": ">= 8.3" } }, - "packages/repack/react-dom/node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" + "packages/test/harness/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" } }, - "packages/repack/react-dom/node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "packages/test/harness/node_modules/escape-string-regexp": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "engines": { + "node": ">=8" + } + }, + "packages/test/harness/node_modules/event-target-shim": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", + "engines": { + "node": ">=10.13.0" }, - "peerDependencies": { - "react": "^18.3.1" + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "packages/repack/react-dom/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "packages/test/harness/node_modules/expect": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", + "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", "dependencies": { - "loose-envify": "^1.1.0" + "@jest/types": "^25.5.0", + "ansi-styles": "^4.0.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6" + }, + "engines": { + "node": ">= 8.3" } }, - "packages/repack/react-is": { - "name": "@msinternal/react-is", - "version": "0.0.0-0", + "packages/test/harness/node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, "dependencies": { - "react-is": "16.13.1" + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" }, - "devDependencies": { - "@types/react-is": "^16.7.5", - "esbuild": "^0.27.3" + "engines": { + "node": ">=10.0" } }, - "packages/repack/react-is/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" + "packages/test/harness/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "packages/repack/react@baseline": { - "name": "@msinternal/react-baseline", - "version": "0.0.0-0", + "packages/test/harness/node_modules/jest-diff": { + "version": "25.5.0", + "license": "MIT", "dependencies": { - "react": "16.8.6" + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" }, - "devDependencies": { - "@msinternal/object-assign": "0.0.0-0", - "@types/react": "^16.14.69", - "esbuild": "^0.27.3" + "engines": { + "node": ">= 8.3" } }, - "packages/repack/react@umd": { - "name": "@msinternal/react-umd", - "version": "0.0.0-0", - "devDependencies": { - "esbuild": "^0.27.3" + "packages/test/harness/node_modules/jest-get-type": { + "version": "25.2.6", + "license": "MIT", + "engines": { + "node": ">= 8.3" } }, - "packages/repack/react/node_modules/@types/react": { - "version": "18.3.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", - "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", - "dev": true, + "packages/test/harness/node_modules/jest-matcher-utils": { + "version": "25.5.0", "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.2.2" + "chalk": "^3.0.0", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "engines": { + "node": ">= 8.3" } }, - "packages/repack/react/node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "packages/test/harness/node_modules/jest-message-util": { + "version": "25.5.0", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8.3" } }, - "packages/styles": { - "name": "@msinternal/botframework-webchat-styles", - "version": "0.0.0-0", + "packages/test/harness/node_modules/jest-regex-util": { + "version": "25.2.6", "license": "MIT", - "devDependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5", - "@msinternal/botframework-webchat-base": "0.0.0-0", - "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/node": "^25.3.3", - "cross-env": "^10.1.0", - "esbuild": "^0.27.3", - "tsup": "^8.5.1", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" - }, - "peerDependencies": { - "react": ">= 16.8.6" + "engines": { + "node": ">= 8.3" } }, - "packages/styles/node_modules/type-fest": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", - "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "packages/test/harness/node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "dev": true, "dependencies": { - "tagged-tag": "^1.0.0" + "escape-string-regexp": "^4.0.0" }, "engines": { - "node": ">=20" + "node": ">=10" + } + }, + "packages/test/harness/node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/support/cldr-data": { - "name": "@msinternal/botframework-webchat-cldr-data", - "version": "0.0.0-0", + "packages/test/harness/node_modules/pretty-format": { + "version": "25.5.0", + "license": "MIT", "dependencies": { - "@msinternal/botframework-webchat-cldr-data-downloader": "0.0.0-0", - "glob": "8.1.0", - "read-package-up": "12.0.0", - "read-pkg": "10.0.0" + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" }, "engines": { - "node": ">= 12" + "node": ">= 8.3" } }, - "packages/support/cldr-data-downloader": { - "name": "@msinternal/botframework-webchat-cldr-data-downloader", - "version": "0.0.0-0", - "dependencies": { - "adm-zip": "0.5.16", - "nopt": "9.0.0", - "progress": "2.0.3", - "q": "1.5.1" - }, + "packages/test/harness/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "packages/test/harness/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, "bin": { - "cldr-data-downloader": "bin/download.sh" + "semver": "bin/semver.js" }, "engines": { - "node": ">= 12" + "node": ">=10" } }, - "packages/support/cldr-data/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "packages/test/harness/node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "type-fest": "^0.13.1" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/support/cldr-data/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "license": "ISC", + "packages/test/harness/node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "packages/test/harness/node_modules/stack-utils": { + "version": "1.0.5", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "packages/test/dev-server": { - "name": "@msinternal/dev-server", - "version": "0.0.0-0", + "packages/test/harness/node_modules/supports-color": { + "version": "7.2.0", "license": "MIT", - "devDependencies": { - "compression": "^1.8.1", - "express": "^5.2.1", - "serve-handler": "^6.1.7" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "packages/test/harness": { - "name": "@msinternal/test-harness", + "packages/test/harness/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/test/page-object": { + "name": "@msinternal/test-page-object", "version": "0.0.0-0", "license": "MIT", "dependencies": { - "abort-controller": "3.0.0", - "axe-core": "4.11.1", - "core-js": "3.48.0", - "core-js-pure": "3.48.0", + "base64-arraybuffer": "1.0.2", + "bent": "7.3.12", + "classnames": "2.5.1", + "core-js": "3.49.0", + "core-js-pure": "3.49.0", + "event-iterator": "2.0.0", "event-target-shim": "6.0.2", - "expect": "25.5.0", - "lolex": "6.0.0", - "math-random": "2.0.1" + "math-random": "2.0.1", + "microsoft-cognitiveservices-speech-sdk": "1.49.0", + "prop-types": "15.8.1", + "simple-update-in": "2.2.0" }, "devDependencies": { "concurrently": "^9.2.1", - "esbuild": "^0.27.3", - "express": "^5.2.1", - "global-agent": "^3.0.0", - "http-proxy-middleware": "^2.0.9", - "istanbul-lib-coverage": "^3.2.2", - "jest": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-image-snapshot": "^6.5.1", - "selenium-webdriver": "^4.41.0", - "serve": "^14.2.6", - "strip-ansi": "^6.0.1" + "esbuild": "^0.28.0" }, "engines": { "node": ">= 14.0.0" } }, - "packages/test/harness/node_modules/@jest/types": { - "version": "25.5.0", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, + "packages/test/page-object/node_modules/@esbuild/aix-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" + "packages/test/page-object/node_modules/@esbuild/android-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "packages/test/harness/node_modules/@types/stack-utils": { - "version": "1.0.1", - "license": "MIT" + "packages/test/page-object/node_modules/@esbuild/android-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } }, - "packages/test/harness/node_modules/@types/yargs": { - "version": "15.0.20", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.20.tgz", - "integrity": "sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==", - "dependencies": { - "@types/yargs-parser": "*" + "packages/test/page-object/node_modules/@esbuild/android-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "packages/test/harness/node_modules/chalk": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "packages/test/page-object/node_modules/@esbuild/darwin-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/test/harness/node_modules/core-js-pure": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", - "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "packages/test/page-object/node_modules/@esbuild/darwin-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "packages/test/harness/node_modules/diff-sequences": { - "version": "25.2.6", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/escape-string-regexp": { - "version": "2.0.0", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/freebsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/page-object/node_modules/@esbuild/linux-arm": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/page-object/node_modules/@esbuild/linux-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/page-object/node_modules/@esbuild/linux-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/page-object/node_modules/@esbuild/linux-loong64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "packages/test/page-object/node_modules/@esbuild/linux-mips64el": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/test/harness/node_modules/event-target-shim": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", - "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/linux-ppc64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=18" } }, - "packages/test/harness/node_modules/expect": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", - "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^25.5.0", - "ansi-styles": "^4.0.0", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-regex-util": "^25.2.6" - }, + "packages/test/page-object/node_modules/@esbuild/linux-riscv64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/linux-s390x": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/test/harness/node_modules/jest-diff": { - "version": "25.5.0", - "license": "MIT", - "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, + "packages/test/page-object/node_modules/@esbuild/linux-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/jest-get-type": { - "version": "25.2.6", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/jest-matcher-utils": { - "version": "25.5.0", - "license": "MIT", - "dependencies": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, + "packages/test/page-object/node_modules/@esbuild/netbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/jest-message-util": { - "version": "25.5.0", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - }, + "packages/test/page-object/node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/jest-regex-util": { - "version": "25.2.6", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/openbsd-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/pretty-format": { - "version": "25.5.0", - "license": "MIT", - "dependencies": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - }, + "packages/test/page-object/node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">= 8.3" + "node": ">=18" } }, - "packages/test/harness/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "packages/test/harness/node_modules/slash": { - "version": "3.0.0", - "license": "MIT", + "packages/test/page-object/node_modules/@esbuild/sunos-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/test/harness/node_modules/stack-utils": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, + "packages/test/page-object/node_modules/@esbuild/win32-arm64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/test/harness/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, + "packages/test/page-object/node_modules/@esbuild/win32-ia32": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "packages/test/page-object": { - "name": "@msinternal/test-page-object", - "version": "0.0.0-0", - "license": "MIT", - "dependencies": { - "base64-arraybuffer": "1.0.2", - "bent": "7.3.12", - "classnames": "2.5.1", - "core-js": "3.48.0", - "core-js-pure": "3.48.0", - "event-iterator": "2.0.0", - "event-target-shim": "6.0.2", - "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.48.0", - "prop-types": "15.8.1", - "simple-update-in": "2.2.0" - }, - "devDependencies": { - "concurrently": "^9.2.1", - "esbuild": "^0.27.3" - }, + "packages/test/page-object/node_modules/@esbuild/win32-x64": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 14.0.0" + "node": ">=18" } }, - "packages/test/page-object/node_modules/core-js-pure": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", - "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", + "packages/test/page-object/node_modules/esbuild": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "dev": true, "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" } }, "packages/test/page-object/node_modules/event-target-shim": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", - "license": "MIT", "engines": { "node": ">=10.13.0" }, @@ -22378,7 +29913,6 @@ "version": "9.22.15", "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.22.15.tgz", "integrity": "sha512-a+ImgL9DOlylDM4UYPnxQTA3yXxbVj+O0iNEyTZ6fMzdMsHzpALU4GAq6tOyW4L7RaQtRBmNpVfwTCEKpqaTJQ==", - "license": "MIT", "dependencies": { "@fluentui/react-icons": "^2.0.245", "@fluentui/react-jsx-runtime": "^9.4.1", @@ -22451,7 +29985,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -22463,7 +29996,6 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -22491,7 +30023,7 @@ }, "devDependencies": { "tsup": "^8.5.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" } }, "packages/tsconfig": { @@ -22508,8 +30040,8 @@ "version": "0.0.0-0", "license": "MIT", "dependencies": { - "@ast-grep/napi": "0.41.0", - "yaml": "2.8.2" + "@ast-grep/napi": "0.42.1", + "yaml": "2.8.3" }, "bin": { "vg": "src/vg.js" diff --git a/package.json b/package.json index 709db1dca9..aab3783ab1 100644 --- a/package.json +++ b/package.json @@ -227,59 +227,59 @@ "@msinternal/vibe-grep": "development" }, "devDependencies": { - "@babel/plugin-transform-runtime": "^7.28.5", - "@babel/preset-env": "^7.28.5", + "@babel/plugin-transform-runtime": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", - "@babel/runtime": "^7.28.4", - "@biomejs/biome": "^2.3.10", - "@happy-dom/jest-environment": "^20.0.11", + "@babel/runtime": "^7.29.2", + "@biomejs/biome": "^2.4.12", + "@happy-dom/jest-environment": "^20.9.0", "@msinternal/vibe-grep": "^0.0.0-0", "@testing-library/react": "^12.1.5", "@types/jest": "^29.5.14", - "@types/react": "^16.14.68", + "@types/react": "^16.14.69", "@types/react-dom": "^16.9.25", "@types/semver": "^7.7.1", - "@typescript-eslint/eslint-plugin": "^8.50.0", - "@typescript-eslint/parser": "^8.50.0", + "@typescript-eslint/eslint-plugin": "^8.59.0", + "@typescript-eslint/parser": "^8.59.0", "babel-jest": "^29.7.0", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "chalk": "^5.6.2", "concurrently": "^9.2.1", - "core-js": "^3.47.0", + "core-js": "^3.49.0", "cross-env": "^10.1.0", - "diff": "^8.0.2", - "dotenv": "^17.2.3", - "dtsroll": "^1.4.1", + "diff": "^9.0.0", + "dotenv": "^17.4.2", + "dtsroll": "^1.8.1", "eslint": "^8.57.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", "eslint-plugin-local-rules": "^3.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^5.5.4", + "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-security": "^3.0.1", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-security": "^4.0.0", "get-port": "^5.1.1", - "global-agent": "^3.0.0", + "global-agent": "^4.1.3", "husky": "^9.1.7", "jest": "^29.7.0", - "jest-image-snapshot": "^6.5.1", - "keep-a-changelog": "^2.7.1", - "lint-staged": "^16.2.7", + "jest-image-snapshot": "^6.5.2", + "keep-a-changelog": "^3.0.2", + "lint-staged": "^16.4.0", "lolex": "^6.0.0", - "minimatch": "^10.1.1", + "minimatch": "^10.2.5", "node-dev": "^8.0.0", - "prettier": "^3.7.4", + "prettier": "^3.8.3", "read-package-up": "^12.0.0", - "read-pkg": "^10.0.0", - "selenium-webdriver": "^4.39.0", - "serve": "^14.2.5", - "serve-handler": "^6.1.6", + "read-pkg": "^10.1.0", + "selenium-webdriver": "^4.43.0", + "serve": "^14.2.6", + "serve-handler": "^6.1.7", "strip-ansi": "^6.0.1", "tsup": "^8.5.1", - "typescript": "^5.9.3", - "unplugin-lightningcss": "^0.4.3" + "typescript": "^6.0.3", + "unplugin-lightningcss": "^0.4.5" }, "dependencies": { "react": "16.8.6", diff --git a/packages/api-graph/package.json b/packages/api-graph/package.json index 59c256bc58..60cf6debf2 100644 --- a/packages/api-graph/package.json +++ b/packages/api-graph/package.json @@ -66,8 +66,8 @@ "@testduet/given-when-then": "^0.1.0", "@types/use-sync-external-store": "^1.5.0", "botframework-webchat-core": "0.0.0-0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "handler-chain": "0.1.1", @@ -75,6 +75,6 @@ "use-ref-from": "0.1.0" }, "dependencies": { - "valibot": "1.2.0" + "valibot": "1.3.1" } } diff --git a/packages/api-middleware/package.json b/packages/api-middleware/package.json index 32f0d45af7..ce8aeecee4 100644 --- a/packages/api-middleware/package.json +++ b/packages/api-middleware/package.json @@ -91,15 +91,15 @@ "@msinternal/botframework-webchat-base": "0.0.0-0", "@msinternal/botframework-webchat-react-hooks": "0.0.0-0", "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "cross-env": "^10.1.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "dependencies": { "handler-chain": "0.1.1", "react-wrap-with": "0.1.0", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "peerDependencies": { "react": ">= 16.8.6", diff --git a/packages/api/package.json b/packages/api/package.json index b7306fcee0..1d024cdd3b 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -128,7 +128,7 @@ }, "devDependencies": { "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@msinternal/botframework-webchat-api-graph": "0.0.0-0", @@ -139,19 +139,19 @@ "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", "@msinternal/botframework-webchat-redux-store": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/dom-speech-recognition": "^0.0.7", + "@types/dom-speech-recognition": "^0.0.9", "@types/jest": "^29.5.14", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "core-js": "^3.48.0", + "core-js": "^3.49.0", "cross-env": "^10.1.0", "globalize-compiler": "^1.1.1", "iana-tz-data": "^2019.1.0", "nodemon": "^3.1.14", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "dependencies": { "botframework-webchat-core": "0.0.0-0", @@ -165,7 +165,7 @@ "simple-update-in": "2.2.0", "use-reduce-memo": "0.1.0", "use-ref-from": "0.2.1", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "peerDependencies": { "react": ">= 16.8.6", diff --git a/packages/base/package.json b/packages/base/package.json index e5cf6f20d8..bee259447b 100644 --- a/packages/base/package.json +++ b/packages/base/package.json @@ -73,11 +73,11 @@ "pinDependencies": {}, "devDependencies": { "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/node": "^25.3.3", - "core-js-pure": "^3.48.0", + "@types/node": "^25.6.0", + "core-js-pure": "^3.49.0", "cross-env": "^10.1.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "valibot": "1.2.0" diff --git a/packages/bundle/package.json b/packages/bundle/package.json index 5ab2f1b69d..851811f05b 100644 --- a/packages/bundle/package.json +++ b/packages/bundle/package.json @@ -184,7 +184,7 @@ "devDependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-runtime": "^7.29.0", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@msinternal/adaptivecards": "0.0.0-0", @@ -207,24 +207,24 @@ "@msinternal/react-is": "0.0.0-0", "@msinternal/react-umd": "0.0.0-0", "@testduet/given-when-then": "^0.1.0", - "@types/dom-speech-recognition": "^0.0.7", + "@types/dom-speech-recognition": "^0.0.9", "@types/mdast": "^4.0.4", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", "@types/react-dom": "^16.9.25", "@types/uuid": "^8.3.4", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", "cross-env": "^10.1.0", - "esbuild": "^0.27.3", + "esbuild": "^0.28.0", "micromark-util-types": "^2.0.2", "read-pkg": "^10.1.0", "tsd": "^0.33.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "dependencies": { - "@babel/runtime": "7.28.6", + "@babel/runtime": "7.29.2", "adaptivecards": "3.0.6", "botframework-directlinejs": "0.15.8", "botframework-directlinespeech-sdk": "0.0.0-0", @@ -232,8 +232,8 @@ "botframework-webchat-component": "0.0.0-0", "botframework-webchat-core": "0.0.0-0", "classnames": "2.5.1", - "core-js": "3.48.0", - "katex": "0.16.33", + "core-js": "3.49.0", + "katex": "0.16.45", "math-random": "2.0.1", "mdast-util-from-markdown": "2.0.3", "memoize-one": "6.0.0", @@ -241,15 +241,15 @@ "micromark-extension-gfm": "3.0.0", "micromark-util-character": "2.1.1", "micromark-util-sanitize-uri": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.48.0", + "microsoft-cognitiveservices-speech-sdk": "1.49.0", "prop-types": "15.8.1", "punycode": "2.3.1", - "sanitize-html": "2.17.1", + "sanitize-html": "2.17.3", "shiki": "2.5.0", "url-search-params-polyfill": "8.2.5", "use-ref-from": "0.2.1", "uuid": "8.3.2", - "valibot": "1.2.0", + "valibot": "1.3.1", "web-speech-cognitive-services": "8.1.4", "whatwg-fetch": "3.6.20" }, diff --git a/packages/component/package.json b/packages/component/package.json index 9e7de56239..67f5ad0fa1 100644 --- a/packages/component/package.json +++ b/packages/component/package.json @@ -142,7 +142,7 @@ }, "devDependencies": { "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@msinternal/botframework-webchat-base": "0.0.0-0", @@ -150,17 +150,17 @@ "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", "@msinternal/botframework-webchat-styles": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/dom-speech-recognition": "^0.0.7", + "@types/dom-speech-recognition": "^0.0.9", "@types/jest": "^29.5.14", "@types/mdast": "^4.0.4", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", - "core-js": "^3.48.0", + "core-js": "^3.49.0", "cross-env": "^10.1.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "dependencies": { "@emotion/css": "11.13.5", @@ -190,7 +190,7 @@ "use-reduce-memo": "0.1.0", "use-ref-from": "0.2.1", "use-state-with-ref": "0.2.1", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "peerDependencies": { "react": ">= 16.8.6", diff --git a/packages/core-debug-api/package.json b/packages/core-debug-api/package.json index 4d5e879cc5..4c66b928c1 100644 --- a/packages/core-debug-api/package.json +++ b/packages/core-debug-api/package.json @@ -53,7 +53,7 @@ }, "devDependencies": { "@msinternal/botframework-webchat-base": "0.0.0-0", - "type-fest": "^5.4.4" + "type-fest": "^5.6.0" }, "dependencies": { "tagged-tag": "1.0.0" diff --git a/packages/core-graph/package.json b/packages/core-graph/package.json index f54b040735..c5ee36710e 100644 --- a/packages/core-graph/package.json +++ b/packages/core-graph/package.json @@ -64,15 +64,15 @@ "@msinternal/botframework-webchat-base": "0.0.0-0", "@testduet/given-when-then": "^0.1.0", "@types/uuid": "^8.3.4", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { - "core-js-pure": "3.47.0", - "iter-fest": "0.3.0", - "uuid": "8.3.2" + "core-js-pure": "^3.49.0", + "iter-fest": "^0.3.1", + "uuid": "^8.3.2" }, "dependencies": { - "valibot": "1.2.0" + "valibot": "1.3.1" } } diff --git a/packages/core/package.json b/packages/core/package.json index a7da7b57a2..78777f4cee 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -122,27 +122,27 @@ "@babel/core": "^7.29.0", "@babel/plugin-transform-runtime": "^7.29.0", "@babel/plugin-transform-typescript": "^7.28.6", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@msinternal/botframework-webchat-base": "0.0.0-0", "@msinternal/botframework-webchat-core-debug-api": "0.0.0-0", "@msinternal/botframework-webchat-core-graph": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", "@testduet/given-when-then": "^0.1.0", "@types/jest": "^29.5.14", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/uuid": "^8.3.4", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", "botframework-directlinejs": "^0.15.8", "cross-env": "^10.1.0", "tsd": "^0.33.0", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "dependencies": { - "@babel/runtime": "7.28.6", - "@redux-devtools/extension": "3.3.0", - "core-js-pure": "3.48.0", + "@babel/runtime": "7.29.2", + "@redux-devtools/extension": "4.0.0", + "core-js-pure": "3.49.0", "iter-fest": "0.3.1", "jwt-decode": "4.0.0", "math-random": "2.0.1", @@ -151,6 +151,6 @@ "redux-saga": "1.4.2", "simple-update-in": "2.2.0", "uuid": "8.3.2", - "valibot": "1.2.0" + "valibot": "1.3.1" } } diff --git a/packages/directlinespeech/package.json b/packages/directlinespeech/package.json index a21325efe5..7e3ddaa3f6 100644 --- a/packages/directlinespeech/package.json +++ b/packages/directlinespeech/package.json @@ -78,15 +78,15 @@ "@babel/cli": "^7.28.6", "@babel/core": "^7.29.0", "@babel/plugin-transform-runtime": "^7.29.0", - "@babel/preset-env": "^7.29.0", + "@babel/preset-env": "^7.29.2", "@types/jest": "^29.5.14", - "@typescript-eslint/eslint-plugin": "^8.56.1", - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/eslint-plugin": "^8.59.0", + "@typescript-eslint/parser": "^8.59.0", "babel-jest": "^29.7.0", - "babel-plugin-istanbul": "^7.0.1", + "babel-plugin-istanbul": "^8.0.0", "babel-plugin-transform-inline-environment-variables": "^0.4.4", "cross-env": "^10.1.0", - "dotenv": "^17.3.1", + "dotenv": "^17.4.2", "eslint": "^8.57.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^5.5.5", @@ -94,24 +94,24 @@ "global-agent": "^3.0.0", "has-resolved": "^2.0.0", "jest": "^29.7.0", - "prettier": "^3.8.1", + "prettier": "^3.8.3", "serve": "^14.2.6", "simple-update-in": "^2.2.0", "source-map-loader": "^5.0.0", - "webpack": "^5.105.4", - "webpack-cli": "^6.0.1", + "webpack": "^5.106.2", + "webpack-cli": "^7.0.2", "webpack-stats-plugin": "^1.1.3" }, "dependencies": { - "@babel/runtime": "7.28.6", + "@babel/runtime": "7.29.2", "abort-controller": "3.0.0", "base64-arraybuffer": "1.0.2", - "core-js": "3.48.0", - "core-js-pure": "3.48.0", + "core-js": "3.49.0", + "core-js-pure": "3.49.0", "event-as-promise": "2.0.1", "event-target-shim": "6.0.2", "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.48.0", + "microsoft-cognitiveservices-speech-sdk": "1.17.0", "web-speech-cognitive-services": "8.1.4" } } diff --git a/packages/fluent-theme/package.json b/packages/fluent-theme/package.json index fb349573fc..fcbbc539f9 100644 --- a/packages/fluent-theme/package.json +++ b/packages/fluent-theme/package.json @@ -81,11 +81,11 @@ "@msinternal/botframework-webchat-styles": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", "@types/math-random": "^1.0.2", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "@types/react": "^16.14.69", "concurrently": "^9.2.1", "tsup": "^8.5.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "dependencies": { "botframework-webchat": "0.0.0-0", @@ -93,7 +93,7 @@ "inject-meta-tag": "0.1.0", "math-random": "2.0.1", "use-ref-from": "0.2.1", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "peerDependencies": { "react": ">= 16.8.6" diff --git a/packages/isomorphic-react-dom/package.json b/packages/isomorphic-react-dom/package.json index 293f3ae062..6bf83b901a 100644 --- a/packages/isomorphic-react-dom/package.json +++ b/packages/isomorphic-react-dom/package.json @@ -25,8 +25,8 @@ "devDependencies": { "@babel/cli": "^7.28.6", "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", - "webpack": "^5.105.4", - "webpack-cli": "^6.0.1" + "@babel/preset-env": "^7.29.2", + "webpack": "^5.106.2", + "webpack-cli": "^7.0.2" } } diff --git a/packages/isomorphic-react/package.json b/packages/isomorphic-react/package.json index b76c09977e..a79ebfd57c 100644 --- a/packages/isomorphic-react/package.json +++ b/packages/isomorphic-react/package.json @@ -25,8 +25,8 @@ "devDependencies": { "@babel/cli": "^7.28.6", "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.0", - "webpack": "^5.105.4", - "webpack-cli": "^6.0.1" + "@babel/preset-env": "^7.29.2", + "webpack": "^5.106.2", + "webpack-cli": "^7.0.2" } } diff --git a/packages/react-valibot/package.json b/packages/react-valibot/package.json index 7dca3aafd1..1493de0293 100644 --- a/packages/react-valibot/package.json +++ b/packages/react-valibot/package.json @@ -68,7 +68,7 @@ "@types/jest": "^29.5.14", "@types/react": "^16.14.69", "tsup": "^8.5.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "peerDependencies": { "react": ">= 16.8.6", diff --git a/packages/redux-store/package.json b/packages/redux-store/package.json index 76556929b7..2eb91c104b 100644 --- a/packages/redux-store/package.json +++ b/packages/redux-store/package.json @@ -65,11 +65,11 @@ "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", "@types/react": "^16.14.69", "tsup": "^8.5.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "dependencies": { "botframework-webchat-core": "0.0.0-0", - "valibot": "1.2.0" + "valibot": "1.3.1" }, "peerDependencies": { "react": ">= 16.8.6" diff --git a/packages/repack/adaptivecards/package.json b/packages/repack/adaptivecards/package.json index e097ff318d..bbdd860298 100644 --- a/packages/repack/adaptivecards/package.json +++ b/packages/repack/adaptivecards/package.json @@ -27,7 +27,7 @@ }, "localDependencies": {}, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "adaptivecards": "3.0.6" diff --git a/packages/repack/base64-js/package.json b/packages/repack/base64-js/package.json index 29282dfe35..3778aff6ab 100644 --- a/packages/repack/base64-js/package.json +++ b/packages/repack/base64-js/package.json @@ -22,7 +22,7 @@ "pinDependencies": {}, "localDependencies": {}, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "base64-js": "1.5.1" diff --git a/packages/repack/botframework-directlinejs/package.json b/packages/repack/botframework-directlinejs/package.json index 3c4a5c01bf..cc045808df 100644 --- a/packages/repack/botframework-directlinejs/package.json +++ b/packages/repack/botframework-directlinejs/package.json @@ -25,6 +25,6 @@ "botframework-directlinejs": "0.15.8" }, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" } } diff --git a/packages/repack/html-react-parser/package.json b/packages/repack/html-react-parser/package.json index 09d398c2a7..fa77c54379 100644 --- a/packages/repack/html-react-parser/package.json +++ b/packages/repack/html-react-parser/package.json @@ -24,9 +24,9 @@ "pinDependencies": {}, "localDependencies": {}, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { - "html-react-parser": "5.2.17" + "html-react-parser": "6.0.1" } } diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json b/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json index dc2d81e565..e3bd53a754 100644 --- a/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json @@ -28,17 +28,12 @@ "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", "start": "../../../scripts/npm/notify-build.sh \"src\"" }, - "pinDependencies": { - "microsoft-cognitiveservices-speech-sdk": [ - "1.17.0", - "<=1.45.0 is using new protocol that does not connect may need some tune." - ] - }, + "pinDependencies": {}, "localDependencies": {}, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { - "microsoft-cognitiveservices-speech-sdk": "1.48.0" + "microsoft-cognitiveservices-speech-sdk": "1.49.0" } } diff --git a/packages/repack/react-dom/package.json b/packages/repack/react-dom/package.json index 93511e55a2..d8e2a55a4d 100644 --- a/packages/repack/react-dom/package.json +++ b/packages/repack/react-dom/package.json @@ -35,7 +35,7 @@ "localDependencies": {}, "devDependencies": { "@types/react-dom": "^18.3.7", - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "react-dom": "18.3.1" diff --git a/packages/repack/react-dom@baseline/package.json b/packages/repack/react-dom@baseline/package.json index 90dbc4888f..a9391d9b59 100644 --- a/packages/repack/react-dom@baseline/package.json +++ b/packages/repack/react-dom@baseline/package.json @@ -37,7 +37,7 @@ "devDependencies": { "@msinternal/object-assign": "0.0.0-0", "@types/react-dom": "^16.9.25", - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "react-dom": "16.8.6" diff --git a/packages/repack/react-dom@umd/package.json b/packages/repack/react-dom@umd/package.json index 451213cbe5..926617862e 100644 --- a/packages/repack/react-dom@umd/package.json +++ b/packages/repack/react-dom@umd/package.json @@ -24,6 +24,6 @@ "pinDependencies": {}, "localDependencies": {}, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" } } diff --git a/packages/repack/react-is/package.json b/packages/repack/react-is/package.json index 25b3dc80da..714d353902 100644 --- a/packages/repack/react-is/package.json +++ b/packages/repack/react-is/package.json @@ -34,7 +34,7 @@ "localDependencies": {}, "devDependencies": { "@types/react-is": "^16.7.5", - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "react-is": "16.13.1" diff --git a/packages/repack/react/package.json b/packages/repack/react/package.json index a5d5f19f72..07a001508b 100644 --- a/packages/repack/react/package.json +++ b/packages/repack/react/package.json @@ -36,7 +36,7 @@ "localDependencies": {}, "devDependencies": { "@types/react": "^18.3.28", - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "react": "18.3.1" diff --git a/packages/repack/react@baseline/package.json b/packages/repack/react@baseline/package.json index 9e1a3b8225..f582470e2a 100644 --- a/packages/repack/react@baseline/package.json +++ b/packages/repack/react@baseline/package.json @@ -37,7 +37,7 @@ "devDependencies": { "@msinternal/object-assign": "0.0.0-0", "@types/react": "^16.14.69", - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "react": "16.8.6" diff --git a/packages/repack/react@umd/package.json b/packages/repack/react@umd/package.json index 6e742327ba..672c78fa8b 100644 --- a/packages/repack/react@umd/package.json +++ b/packages/repack/react@umd/package.json @@ -24,6 +24,6 @@ "pinDependencies": {}, "localDependencies": {}, "devDependencies": { - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" } } diff --git a/packages/styles/package.json b/packages/styles/package.json index 47e9e3e0ea..5f80acbcf4 100644 --- a/packages/styles/package.json +++ b/packages/styles/package.json @@ -84,12 +84,12 @@ "@jridgewell/sourcemap-codec": "^1.5.5", "@msinternal/botframework-webchat-base": "0.0.0-0", "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", - "@types/node": "^25.3.3", + "@types/node": "^25.6.0", "cross-env": "^10.1.0", - "esbuild": "^0.27.3", + "esbuild": "^0.28.0", "tsup": "^8.5.1", - "type-fest": "^5.4.4", - "typescript": "^5.9.3" + "type-fest": "^5.6.0", + "typescript": "^6.0.3" }, "peerDependencies": { "react": ">= 16.8.6" diff --git a/packages/support/cldr-data-downloader/package.json b/packages/support/cldr-data-downloader/package.json index 759716aaf1..dccf41e83d 100644 --- a/packages/support/cldr-data-downloader/package.json +++ b/packages/support/cldr-data-downloader/package.json @@ -56,7 +56,7 @@ "pinDependencies": {}, "localDependencies": {}, "dependencies": { - "adm-zip": "0.5.16", + "adm-zip": "0.5.17", "nopt": "9.0.0", "progress": "2.0.3", "q": "1.5.1" diff --git a/packages/support/cldr-data/package.json b/packages/support/cldr-data/package.json index 43ce851a6b..5ce09cd096 100644 --- a/packages/support/cldr-data/package.json +++ b/packages/support/cldr-data/package.json @@ -66,6 +66,6 @@ "@msinternal/botframework-webchat-cldr-data-downloader": "0.0.0-0", "glob": "8.1.0", "read-package-up": "12.0.0", - "read-pkg": "10.0.0" + "read-pkg": "10.1.0" } } diff --git a/packages/test/harness/package.json b/packages/test/harness/package.json index 767dd4a5b5..cfabac58a0 100644 --- a/packages/test/harness/package.json +++ b/packages/test/harness/package.json @@ -58,23 +58,23 @@ "localDependencies": {}, "devDependencies": { "concurrently": "^9.2.1", - "esbuild": "^0.27.3", + "esbuild": "^0.28.0", "express": "^5.2.1", "global-agent": "^3.0.0", "http-proxy-middleware": "^2.0.9", "istanbul-lib-coverage": "^3.2.2", "jest": "^29.7.0", "jest-environment-node": "^29.7.0", - "jest-image-snapshot": "^6.5.1", - "selenium-webdriver": "^4.41.0", + "jest-image-snapshot": "^6.5.2", + "selenium-webdriver": "^4.43.0", "serve": "^14.2.6", "strip-ansi": "^6.0.1" }, "dependencies": { "abort-controller": "3.0.0", - "axe-core": "4.11.1", - "core-js": "3.48.0", - "core-js-pure": "3.48.0", + "axe-core": "4.11.3", + "core-js": "3.49.0", + "core-js-pure": "3.49.0", "event-target-shim": "6.0.2", "expect": "25.5.0", "lolex": "6.0.0", diff --git a/packages/test/page-object/package.json b/packages/test/page-object/package.json index 166373d265..2ed8939c9b 100644 --- a/packages/test/page-object/package.json +++ b/packages/test/page-object/package.json @@ -34,18 +34,18 @@ "localDependencies": {}, "devDependencies": { "concurrently": "^9.2.1", - "esbuild": "^0.27.3" + "esbuild": "^0.28.0" }, "dependencies": { "base64-arraybuffer": "1.0.2", "bent": "7.3.12", "classnames": "2.5.1", - "core-js": "3.48.0", - "core-js-pure": "3.48.0", + "core-js": "3.49.0", + "core-js-pure": "3.49.0", "event-iterator": "2.0.0", "event-target-shim": "6.0.2", "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.48.0", + "microsoft-cognitiveservices-speech-sdk": "1.49.0", "prop-types": "15.8.1", "simple-update-in": "2.2.0" } diff --git a/packages/test/web-server/package.json b/packages/test/web-server/package.json index a0eb029c66..6c6651c0bf 100644 --- a/packages/test/web-server/package.json +++ b/packages/test/web-server/package.json @@ -24,7 +24,7 @@ "localDependencies": {}, "devDependencies": { "tsup": "^8.5.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "dependencies": { "selfsigned": "5.5.0", diff --git a/packages/vibe-grep/package.json b/packages/vibe-grep/package.json index 4aa4cd09d7..8e253cc369 100644 --- a/packages/vibe-grep/package.json +++ b/packages/vibe-grep/package.json @@ -30,7 +30,7 @@ "pinDependencies": {}, "localDependencies": {}, "dependencies": { - "@ast-grep/napi": "0.41.0", - "yaml": "2.8.2" + "@ast-grep/napi": "0.42.1", + "yaml": "2.8.3" } } diff --git a/samples/01.getting-started/k.direct-line-token/javascript/bot/package-lock.json b/samples/01.getting-started/k.direct-line-token/javascript/bot/package-lock.json index f2cdbead34..e1f17d15bf 100644 --- a/samples/01.getting-started/k.direct-line-token/javascript/bot/package-lock.json +++ b/samples/01.getting-started/k.direct-line-token/javascript/bot/package-lock.json @@ -9,9 +9,9 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "botbuilder": "^4.23.3", - "dotenv": "^17.2.3", - "restify": "^11.1.0" + "botbuilder": "4.23.3", + "dotenv": "17.4.2", + "restify": "11.1.0" }, "devDependencies": { "node-dev": "^8.0.0" @@ -113,9 +113,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.0.tgz", - "integrity": "sha512-uWC0fssc+hs1TGGVkkghiaFkkS7NkTxfnCH+Hdg+yTehTpMcehpok4PgUKKdyCH+9ldu6FhiHRv84Ntqj1vVcw==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.1.tgz", + "integrity": "sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==", "dependencies": { "@azure/abort-controller": "^2.0.0", "@azure/core-auth": "^1.9.0", @@ -124,8 +124,8 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^4.2.0", - "@azure/msal-node": "^3.5.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.0", "open": "^10.1.0", "tslib": "^2.2.0" }, @@ -134,24 +134,24 @@ } }, "node_modules/@azure/identity/node_modules/@azure/msal-common": { - "version": "15.13.3", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.13.3.tgz", - "integrity": "sha512-shSDU7Ioecya+Aob5xliW9IGq1Ui8y4EVSdWGyI1Gbm4Vg61WpP95LuzcY214/wEjSn6w4PZYD4/iVldErHayQ==", + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.5.1.tgz", + "integrity": "sha512-WS9w9SfI8SEYO7mTnxGeZ3UwQfhAVYCWglYF2/7GNx3ioHiAs2gPkl9eSwVs8cPrmiGh+zi9ai/OOKoq4cyzDw==", "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/identity/node_modules/@azure/msal-node": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-3.8.4.tgz", - "integrity": "sha512-lvuAwsDpPDE/jSuVQOBMpLbXuVuLsPNRwWCyK3/6bPlBk0fGWegqoZ0qjZclMWyQ2JNvIY3vHY7hoFmFmFQcOw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.1.4.tgz", + "integrity": "sha512-G4LXGGggok1QC48uKu64/SV2DPRDlddmV8EieK8pflsNYMj9/Zz+Y9OHoEBhT15h+zpdwXXLYA/7PJCR/yZ8aw==", "dependencies": { - "@azure/msal-common": "15.13.3", + "@azure/msal-common": "16.5.1", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/@azure/identity/node_modules/uuid": { @@ -175,20 +175,20 @@ } }, "node_modules/@azure/msal-browser": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.27.0.tgz", - "integrity": "sha512-bZ8Pta6YAbdd0o0PEaL1/geBsPrLEnyY/RDWqvF1PP9RUH8EMLvUMGoZFYS6jSlUan6KZ9IMTLCnwpWWpQRK/w==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.8.0.tgz", + "integrity": "sha512-X7IZV77bN56l7sbLjkcbQJX1t3U4tgxqztDr/XFbUcUfKk+z2FavcLgKP+OYUNj0wl/pEEtV9lldW9siY8BuHQ==", "dependencies": { - "@azure/msal-common": "15.13.3" + "@azure/msal-common": "16.5.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-browser/node_modules/@azure/msal-common": { - "version": "15.13.3", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.13.3.tgz", - "integrity": "sha512-shSDU7Ioecya+Aob5xliW9IGq1Ui8y4EVSdWGyI1Gbm4Vg61WpP95LuzcY214/wEjSn6w4PZYD4/iVldErHayQ==", + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.5.1.tgz", + "integrity": "sha512-WS9w9SfI8SEYO7mTnxGeZ3UwQfhAVYCWglYF2/7GNx3ioHiAs2gPkl9eSwVs8cPrmiGh+zi9ai/OOKoq4cyzDw==", "engines": { "node": ">=0.8.0" } @@ -331,13 +331,13 @@ } }, "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.2.tgz", + "integrity": "sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" } }, "node_modules/base64-js": { @@ -769,9 +769,9 @@ } }, "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "engines": { "node": ">=12" }, @@ -1020,9 +1020,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", @@ -1507,9 +1507,9 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, "node_modules/lodash.includes": { "version": "4.3.0", @@ -1825,14 +1825,17 @@ "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" }, "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "engines": { + "node": ">=10" + } }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", "dependencies": { "side-channel": "^1.1.0" }, diff --git a/samples/01.getting-started/k.direct-line-token/javascript/bot/package.json b/samples/01.getting-started/k.direct-line-token/javascript/bot/package.json index 0aad3ea30c..a038ddb49c 100644 --- a/samples/01.getting-started/k.direct-line-token/javascript/bot/package.json +++ b/samples/01.getting-started/k.direct-line-token/javascript/bot/package.json @@ -25,9 +25,9 @@ } }, "dependencies": { - "botbuilder": "^4.23.3", - "dotenv": "^17.2.3", - "restify": "^11.1.0" + "botbuilder": "4.23.3", + "dotenv": "17.4.2", + "restify": "11.1.0" }, "devDependencies": { "node-dev": "^8.0.0" diff --git a/samples/01.getting-started/k.direct-line-token/javascript/web/package-lock.json b/samples/01.getting-started/k.direct-line-token/javascript/web/package-lock.json index e2f903a13d..8bd5fb08cd 100644 --- a/samples/01.getting-started/k.direct-line-token/javascript/web/package-lock.json +++ b/samples/01.getting-started/k.direct-line-token/javascript/web/package-lock.json @@ -9,9 +9,9 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "dotenv": "^17.2.3", - "http-proxy": "^1.18.1", - "restify": "^11.1.0" + "dotenv": "17.4.2", + "http-proxy": "1.18.1", + "restify": "11.1.0" }, "devDependencies": { "node-dev": "^8.0.0" @@ -243,9 +243,9 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", "engines": { "node": ">=12" }, @@ -441,9 +441,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", @@ -770,9 +770,9 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, "node_modules/lru-cache": { "version": "7.18.3", @@ -984,9 +984,9 @@ "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", "dependencies": { "side-channel": "^1.1.0" }, diff --git a/samples/01.getting-started/k.direct-line-token/javascript/web/package.json b/samples/01.getting-started/k.direct-line-token/javascript/web/package.json index f4ae23f1d0..ab6ee0f56f 100644 --- a/samples/01.getting-started/k.direct-line-token/javascript/web/package.json +++ b/samples/01.getting-started/k.direct-line-token/javascript/web/package.json @@ -21,9 +21,9 @@ } }, "dependencies": { - "dotenv": "^17.2.3", - "http-proxy": "^1.18.1", - "restify": "^11.1.0" + "dotenv": "17.4.2", + "http-proxy": "1.18.1", + "restify": "11.1.0" }, "devDependencies": { "node-dev": "^8.0.0" diff --git a/samples/04.api/e.piping-to-redux/package.json b/samples/04.api/e.piping-to-redux/package.json index 0f87f2465c..0a9fbda727 100644 --- a/samples/04.api/e.piping-to-redux/package.json +++ b/samples/04.api/e.piping-to-redux/package.json @@ -28,13 +28,13 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "react-redux": "^7.2.9", - "redux": "^5.0.1" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6", + "react-redux": "7.2.9", + "redux": "5.0.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/04.api/f.selectable-activity/package.json b/samples/04.api/f.selectable-activity/package.json index 87c817be6e..b058d89ae2 100644 --- a/samples/04.api/f.selectable-activity/package.json +++ b/samples/04.api/f.selectable-activity/package.json @@ -27,12 +27,12 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "botframework-webchat-api": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "botframework-webchat-api": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/04.api/g.chat-send-history/package.json b/samples/04.api/g.chat-send-history/package.json index 7ce1bc8134..690d6095bc 100644 --- a/samples/04.api/g.chat-send-history/package.json +++ b/samples/04.api/g.chat-send-history/package.json @@ -24,12 +24,12 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "use-state-with-ref": "^0.1.0" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6", + "use-state-with-ref": "0.2.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/04.api/h.clear-after-idle/package.json b/samples/04.api/h.clear-after-idle/package.json index 73c57e7773..f366d1482c 100644 --- a/samples/04.api/h.clear-after-idle/package.json +++ b/samples/04.api/h.clear-after-idle/package.json @@ -24,12 +24,12 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/06.recomposing-ui/a.minimizable-web-chat/package.json b/samples/06.recomposing-ui/a.minimizable-web-chat/package.json index fde859c7a3..6a073d01ea 100644 --- a/samples/06.recomposing-ui/a.minimizable-web-chat/package.json +++ b/samples/06.recomposing-ui/a.minimizable-web-chat/package.json @@ -24,12 +24,12 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/06.recomposing-ui/b.speech-ui/package.json b/samples/06.recomposing-ui/b.speech-ui/package.json index cebe2fd224..38e909819d 100644 --- a/samples/06.recomposing-ui/b.speech-ui/package.json +++ b/samples/06.recomposing-ui/b.speech-ui/package.json @@ -28,14 +28,14 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "react-redux": "^7.2.9", - "redux": "^5.0.1" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "react": "16.8.6", + "react-dom": "16.8.6", + "react-redux": "7.2.9", + "redux": "5.0.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/06.recomposing-ui/c.smart-display/package.json b/samples/06.recomposing-ui/c.smart-display/package.json index 96b5374dd1..7734cfb9f5 100644 --- a/samples/06.recomposing-ui/c.smart-display/package.json +++ b/samples/06.recomposing-ui/c.smart-display/package.json @@ -28,16 +28,16 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "punycode": "^2.3.1", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "react-film": "^4.0.0", - "react-redux": "^7.2.9", - "redux": "^5.0.1" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "punycode": "2.3.1", + "react": "16.8.6", + "react-dom": "16.8.6", + "react-film": "4.0.0", + "react-redux": "7.2.9", + "redux": "5.0.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/06.recomposing-ui/d.plain-ui/package.json b/samples/06.recomposing-ui/d.plain-ui/package.json index 47de93b42f..87321f7635 100644 --- a/samples/06.recomposing-ui/d.plain-ui/package.json +++ b/samples/06.recomposing-ui/d.plain-ui/package.json @@ -24,11 +24,11 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/06.recomposing-ui/e.extending-ui/package.json b/samples/06.recomposing-ui/e.extending-ui/package.json index aa1a85f499..ba0461074d 100644 --- a/samples/06.recomposing-ui/e.extending-ui/package.json +++ b/samples/06.recomposing-ui/e.extending-ui/package.json @@ -24,11 +24,11 @@ ] }, "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } } diff --git a/samples/package-lock.json b/samples/package-lock.json index fdce02acac..50d9dfcf3b 100644 --- a/samples/package-lock.json +++ b/samples/package-lock.json @@ -28,14 +28,14 @@ "name": "@msinternal/sample-customization-piping-to-redux", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "react-redux": "^7.2.9", - "redux": "^5.0.1" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6", + "react-redux": "7.2.9", + "redux": "5.0.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "04.api/e.piping-to-redux/node_modules/react": { @@ -85,13 +85,13 @@ "name": "@msinternal/sample-customization-selectable-activity", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "botframework-webchat-api": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "botframework-webchat-api": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "04.api/f.selectable-activity/node_modules/react": { @@ -136,13 +136,13 @@ "name": "@msinternal/sample-chat-send-history", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "use-state-with-ref": "^0.1.0" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6", + "use-state-with-ref": "0.2.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "04.api/g.chat-send-history/node_modules/react": { @@ -187,13 +187,13 @@ "name": "@msinternal/sample-clear-after-idle", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "04.api/h.clear-after-idle/node_modules/react": { @@ -238,13 +238,13 @@ "name": "@msinternal/sample-customization-minimizable-web-chat", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "06.recomposing-ui/a.minimizable-web-chat/node_modules/react": { @@ -289,15 +289,15 @@ "name": "@msinternal/sample-customization-speech-ui", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "react-redux": "^7.2.9", - "redux": "^5.0.1" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "react": "16.8.6", + "react-dom": "16.8.6", + "react-redux": "7.2.9", + "redux": "5.0.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "06.recomposing-ui/b.speech-ui/node_modules/react": { @@ -347,17 +347,17 @@ "name": "@msinternal/sample-customization-smart-display", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "classnames": "^2.5.1", - "punycode": "^2.3.1", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "react-film": "^4.0.0", - "react-redux": "^7.2.9", - "redux": "^5.0.1" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "classnames": "2.5.1", + "punycode": "2.3.1", + "react": "16.8.6", + "react-dom": "16.8.6", + "react-film": "4.0.0", + "react-redux": "7.2.9", + "redux": "5.0.1" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "06.recomposing-ui/c.smart-display/node_modules/react": { @@ -407,12 +407,12 @@ "name": "@msinternal/sample-customization-plain-ui", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "06.recomposing-ui/d.plain-ui/node_modules/react": { @@ -457,12 +457,12 @@ "name": "@msinternal/sample-customization-extending-ui", "version": "0.1.0", "dependencies": { - "botframework-webchat": "^4.18.1-main.20250804.93043a9", - "react": "^16.8.6", - "react-dom": "^16.8.6" + "botframework-webchat": "4.18.1-main.20260416.88357ae", + "react": "16.8.6", + "react-dom": "16.8.6" }, "devDependencies": { - "esbuild": "^0.27.2" + "esbuild": "^0.28.0" } }, "06.recomposing-ui/e.extending-ui/node_modules/react": { @@ -503,6 +503,43 @@ "object-assign": "^4.1.1" } }, + "node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz", + "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz", + "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -575,19 +612,19 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", - "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.2.tgz", - "integrity": "sha512-FVFaVs2/dZgD3Y9ZD+AKNKjyGKzwu0C54laAXWUXgLcVXcCX6YZ6GhK2cp7FogSN2OA0Fu+QT8dP3FUdo9ShSQ==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.2.tgz", + "integrity": "sha512-Lc94FOD5+0aXhdb0Tdg3RUtqT6yWbI/BbFWvlaSJ3gAb9Ks+99nHRDKADVqC37er4eCB0fHyWT+y+K3QOvJKbw==", "dependencies": { - "core-js-pure": "^3.43.0" + "core-js-pure": "^3.48.0" }, "engines": { "node": ">=6.9.0" @@ -732,9 +769,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", "cpu": [ "ppc64" ], @@ -748,9 +785,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", "cpu": [ "arm" ], @@ -764,9 +801,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", "cpu": [ "arm64" ], @@ -780,9 +817,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", "cpu": [ "x64" ], @@ -796,9 +833,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", "cpu": [ "arm64" ], @@ -812,9 +849,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", "cpu": [ "x64" ], @@ -828,9 +865,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", "cpu": [ "arm64" ], @@ -844,9 +881,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", "cpu": [ "x64" ], @@ -860,9 +897,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", "cpu": [ "arm" ], @@ -876,9 +913,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", "cpu": [ "arm64" ], @@ -892,9 +929,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", "cpu": [ "ia32" ], @@ -908,9 +945,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", "cpu": [ "loong64" ], @@ -924,9 +961,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", "cpu": [ "mips64el" ], @@ -940,9 +977,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", "cpu": [ "ppc64" ], @@ -956,9 +993,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", "cpu": [ "riscv64" ], @@ -972,9 +1009,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", "cpu": [ "s390x" ], @@ -988,9 +1025,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", "cpu": [ "x64" ], @@ -1004,9 +1041,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", "cpu": [ "arm64" ], @@ -1020,9 +1057,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", "cpu": [ "x64" ], @@ -1036,9 +1073,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", "cpu": [ "arm64" ], @@ -1052,9 +1089,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", "cpu": [ "x64" ], @@ -1068,9 +1105,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", "cpu": [ "arm64" ], @@ -1084,9 +1121,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", "cpu": [ "x64" ], @@ -1100,9 +1137,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", "cpu": [ "arm64" ], @@ -1116,9 +1153,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", "cpu": [ "ia32" ], @@ -1132,9 +1169,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", "cpu": [ "x64" ], @@ -1248,16 +1285,16 @@ } }, "node_modules/@redux-saga/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.3.0.tgz", - "integrity": "sha512-L+i+qIGuyWn7CIg7k1MteHGfttKPmxwZR5E7OsGikCL2LzYA0RERlaUY00Y3P3ZV2EYgrsYlBrGs6cJP5OKKqA==", - "dependencies": { - "@babel/runtime": "^7.6.3", - "@redux-saga/deferred": "^1.2.1", - "@redux-saga/delay-p": "^1.2.1", - "@redux-saga/is": "^1.1.3", - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.4.2.tgz", + "integrity": "sha512-nIMLGKo6jV6Wc1sqtVQs1iqbB3Kq20udB/u9XEaZQisT6YZ0NRB8+4L6WqD/E+YziYutd27NJbG8EWUPkb7c6Q==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@redux-saga/deferred": "^1.3.1", + "@redux-saga/delay-p": "^1.3.1", + "@redux-saga/is": "^1.2.1", + "@redux-saga/symbols": "^1.2.1", + "@redux-saga/types": "^1.3.1", "typescript-tuple": "^2.2.1" }, "funding": { @@ -1266,36 +1303,36 @@ } }, "node_modules/@redux-saga/deferred": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", - "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.3.1.tgz", + "integrity": "sha512-0YZ4DUivWojXBqLB/TmuRRpDDz7tyq1I0AuDV7qi01XlLhM5m51W7+xYtIckH5U2cMlv9eAuicsfRAi1XHpXIg==" }, "node_modules/@redux-saga/delay-p": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", - "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.3.1.tgz", + "integrity": "sha512-597I7L5MXbD/1i3EmcaOOjL/5suxJD7p5tnbV1PiWnE28c2cYiIHqmSMK2s7us2/UrhOL2KTNBiD0qBg6KnImg==", "dependencies": { - "@redux-saga/symbols": "^1.1.3" + "@redux-saga/symbols": "^1.2.1" } }, "node_modules/@redux-saga/is": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", - "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.2.1.tgz", + "integrity": "sha512-x3aWtX3GmQfEvn8dh0ovPbsXgK9JjpiR24wKztpGbZP8JZUWWvUgKrvnWZ/T/4iphOBftyVc9VrIwhAnsM+OFA==", "dependencies": { - "@redux-saga/symbols": "^1.1.3", - "@redux-saga/types": "^1.2.1" + "@redux-saga/symbols": "^1.2.1", + "@redux-saga/types": "^1.3.1" } }, "node_modules/@redux-saga/symbols": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", - "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.2.1.tgz", + "integrity": "sha512-3dh+uDvpBXi7EUp/eO+N7eFM4xKaU4yuGBXc50KnZGzIrR/vlvkTFQsX13zsY8PB6sCFYAgROfPSRUj8331QSA==" }, "node_modules/@redux-saga/types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", - "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.3.1.tgz", + "integrity": "sha512-YRCrJdhQLobGIQ8Cj1sta3nn6DrZDTSUnrIYhS2e5V590BmfVDleKoAquclAiKSBKWJwmuXTb+b4BL6rSHnahw==" }, "node_modules/@shikijs/core": { "version": "2.5.0", @@ -1459,6 +1496,39 @@ "@types/node": "*" } }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.5.tgz", + "integrity": "sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@typespec/ts-http-runtime/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", @@ -1484,12 +1554,11 @@ } }, "node_modules/adaptivecards": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-3.0.2.tgz", - "integrity": "sha512-ioniHtm8c5uENw6jmddnntpjC4MvSOjN2Xrg9YhxuTtoVqz0XoYrInRIq0uf9WmONm7p+wqjAqBkoI6IRDeNwA==", - "license": "MIT", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-3.0.6.tgz", + "integrity": "sha512-WDCIb2WXZ7cOHJ9HIHRNdhSt861HySVOdN2xPk2aKHAF3JvD8QGQ8/XcNFrDJxCteOog8MM7EBlXfSAR8JXKAg==", "peerDependencies": { - "swiper": "^8.2.6" + "swiper": "^12.1.2" } }, "node_modules/agent-base": { @@ -1508,53 +1577,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js-rfc2560": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-5.0.1.tgz", - "integrity": "sha512-1PrVg6kuBziDN3PGFmRk3QrjpKvP9h/Hv5yMrFZvC1kpzP6dQRzf5BpKstANqHBkaOUmTpakJWhicTATOA/SbA==", - "dependencies": { - "asn1.js-rfc5280": "^3.0.0" - }, - "peerDependencies": { - "asn1.js": "^5.0.0" - } - }, - "node_modules/asn1.js-rfc5280": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-3.0.0.tgz", - "integrity": "sha512-Y2LZPOWeZ6qehv698ZgOGGCZXBQShObWnGthTrIFlIQjuV1gg2B8QOhWFRExq/MR1VnPpIIe7P9vX2vElxv+Pg==", - "dependencies": { - "asn1.js": "^5.0.0" - } - }, - "node_modules/async-disk-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/async-disk-cache/-/async-disk-cache-2.1.0.tgz", - "integrity": "sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==", - "dependencies": { - "debug": "^4.1.1", - "heimdalljs": "^0.2.3", - "istextorbinary": "^2.5.1", - "mkdirp": "^0.5.0", - "rimraf": "^3.0.0", - "rsvp": "^4.8.5", - "username-sync": "^1.0.2" - }, - "engines": { - "node": "8.* || >= 10.*" - } - }, "node_modules/babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", @@ -1570,11 +1592,6 @@ "npm": ">=6" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, "node_modules/base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", @@ -1612,26 +1629,10 @@ "is-stream": "^2.0.0" } }, - "node_modules/binaryextensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", - "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/bn.js": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", - "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" - }, "node_modules/botframework-directlinejs": { - "version": "0.15.6", - "resolved": "https://registry.npmjs.org/botframework-directlinejs/-/botframework-directlinejs-0.15.6.tgz", - "integrity": "sha512-l7zRsFb22eEAglGgopqw+3G2kCy3iBMJqTCKykJi2M/VNJikxyjJTIVx3bvuHq7KpUfiTxSZrnr61d7+ulEaYw==", + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/botframework-directlinejs/-/botframework-directlinejs-0.15.8.tgz", + "integrity": "sha512-w/rt2NPSuKMU02zFuJ5E456j2xjAJskgaR6L0sEb6/osmC+zcRlP9ghAjKEmgO9Bquu9NYVwVtahIiRCdKpqDA==", "dependencies": { "@babel/runtime": "7.26.10", "botframework-streaming": "4.23.0", @@ -1671,118 +1672,25 @@ "integrity": "sha512-KmkCs6SjE6t4ihrfW9JelAPQIIIFbJweaaSLTh/4AO+c58JlDcb+GbdPt8yr5lRcFg4rPswRFRRhBGpWwh0K/Q==" }, "node_modules/botframework-directlinespeech-sdk": { - "version": "4.18.1-main.20250804.93043a9", - "resolved": "https://registry.npmjs.org/botframework-directlinespeech-sdk/-/botframework-directlinespeech-sdk-4.18.1-main.20250804.93043a9.tgz", - "integrity": "sha512-HCdOcQtNHMrXdsniXkKyZRtBZCz9f4kgVlt2QTVIOt5wJUZrwxR+31S0kBfcSDjejJ5VyTZUjpnjU7RbJr6BwQ==", + "version": "4.18.1-main.20260416.88357ae", + "resolved": "https://registry.npmjs.org/botframework-directlinespeech-sdk/-/botframework-directlinespeech-sdk-4.18.1-main.20260416.88357ae.tgz", + "integrity": "sha512-fEwT+BltKzpk3CJECJJJ0twVj906OqaNwduHlkhhHuJGoWNzJLqR2pvGVZpHSkRhRtgKfs82UZofQqjbC8nz0g==", "dependencies": { - "@babel/runtime": "7.28.2", + "@babel/runtime": "7.28.6", "abort-controller": "3.0.0", "base64-arraybuffer": "1.0.2", - "core-js": "3.44.0", - "core-js-pure": "3.44.0", - "event-as-promise": "2.0.0", + "core-js": "3.48.0", + "core-js-pure": "3.48.0", + "event-as-promise": "2.0.1", "event-target-shim": "6.0.2", "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.17.0", - "web-speech-cognitive-services": "8.1.3" + "microsoft-cognitiveservices-speech-sdk": "1.48.0", + "web-speech-cognitive-services": "8.1.4" }, "engines": { "node": ">= 10.14.2" } }, - "node_modules/botframework-directlinespeech-sdk/node_modules/@angular/common": { - "version": "21.0.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.6.tgz", - "integrity": "sha512-Yd8PF0dR37FAzqEcBHAyVCiSGMJOezSJe6rV/4BC6AVLfaZ7oZLl8CNVxKsod2UHd6rKxt1hzx05QdVcVvYNeA==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/core": "21.0.6", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/botframework-directlinespeech-sdk/node_modules/@angular/core": { - "version": "21.0.6", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.0.6.tgz", - "integrity": "sha512-SvWbOkkrsqprYJSBmzQEWkWjfZB/jkRYyFp2ClMJBPqOLxP1a+i3Om2rolcNQjZPz87bs9FszwgRlXUy7sw5cQ==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/compiler": "21.0.6", - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.15.0 || ~0.16.0" - }, - "peerDependenciesMeta": { - "@angular/compiler": { - "optional": true - }, - "zone.js": { - "optional": true - } - } - }, - "node_modules/botframework-directlinespeech-sdk/node_modules/microsoft-cognitiveservices-speech-sdk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.17.0.tgz", - "integrity": "sha512-RVUCpTeu1g+R4HB/PaLQmEfsdHzwEa6+2phgCiPA4lGIiR7ILEL7qZHHUWAG6W4zcjnWeiLnL7tVgMbyd5XGgA==", - "dependencies": { - "agent-base": "^6.0.1", - "asn1.js-rfc2560": "^5.0.1", - "asn1.js-rfc5280": "^3.0.0", - "async-disk-cache": "^2.1.0", - "https-proxy-agent": "^4.0.0", - "simple-lru-cache": "0.0.2", - "url-parse": "^1.4.7", - "uuid": "^3.3.3", - "ws": "^7.3.1", - "xmlhttprequest-ts": "^1.0.1" - } - }, - "node_modules/botframework-directlinespeech-sdk/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "peer": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/botframework-directlinespeech-sdk/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/botframework-directlinespeech-sdk/node_modules/xmlhttprequest-ts": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ts/-/xmlhttprequest-ts-1.0.1.tgz", - "integrity": "sha512-x+7u8NpBcwfBCeGqUpdGrR6+kGUGVjKc4wolyCz7CQqBZQp7VIyaF1xAvJ7ApRzvLeuiC4BbmrA6CWH9NqxK/g==", - "dependencies": { - "tslib": "^1.9.2" - }, - "peerDependencies": { - "@angular/common": ">= 5.0.0", - "@angular/core": ">= 5.0.0" - } - }, - "node_modules/botframework-directlinespeech-sdk/node_modules/xmlhttprequest-ts/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/botframework-streaming": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/botframework-streaming/-/botframework-streaming-4.23.0.tgz", @@ -1795,60 +1703,62 @@ } }, "node_modules/botframework-webchat": { - "version": "4.18.1-main.20250804.93043a9", - "resolved": "https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.18.1-main.20250804.93043a9.tgz", - "integrity": "sha512-JOTxvLBCh6FeWIqnpRI7AsIiRqx9MaUiADEjEOwsNFRdvp/rJ/JMum3VU2EEgOhHmll7MnsnAN3YIubA05GNrA==", - "dependencies": { - "@babel/runtime": "7.28.2", - "adaptivecards": "3.0.2", - "botframework-directlinejs": "0.15.6", - "botframework-directlinespeech-sdk": "4.18.1-main.20250804.93043a9", - "botframework-webchat-api": "4.18.1-main.20250804.93043a9", - "botframework-webchat-component": "4.18.1-main.20250804.93043a9", - "botframework-webchat-core": "4.18.1-main.20250804.93043a9", + "version": "4.18.1-main.20260416.88357ae", + "resolved": "https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.18.1-main.20260416.88357ae.tgz", + "integrity": "sha512-qn92mVO46zb2HldNTp+gdmAcAri3tN9SRGlw2PZujakhncGC+A9ao7xL6sCCczuk42Zycx7gaWBWhQbPqyirNw==", + "dependencies": { + "@babel/runtime": "7.28.6", + "adaptivecards": "3.0.6", + "botframework-directlinejs": "0.15.8", + "botframework-directlinespeech-sdk": "4.18.1-main.20260416.88357ae", + "botframework-webchat-api": "4.18.1-main.20260416.88357ae", + "botframework-webchat-component": "4.18.1-main.20260416.88357ae", + "botframework-webchat-core": "4.18.1-main.20260416.88357ae", "classnames": "2.5.1", - "core-js": "3.44.0", - "katex": "0.16.22", + "core-js": "3.48.0", + "katex": "0.16.33", "math-random": "2.0.1", - "mdast-util-from-markdown": "2.0.2", + "mdast-util-from-markdown": "2.0.3", "memoize-one": "6.0.0", "micromark": "4.0.2", "micromark-extension-gfm": "3.0.0", "micromark-util-character": "2.1.1", - "microsoft-cognitiveservices-speech-sdk": "1.45.0", + "micromark-util-sanitize-uri": "2.0.1", + "microsoft-cognitiveservices-speech-sdk": "1.48.0", "prop-types": "15.8.1", "punycode": "2.3.1", - "sanitize-html": "2.17.0", + "sanitize-html": "2.17.1", "shiki": "2.5.0", - "swiper": "8.4.7", "url-search-params-polyfill": "8.2.5", - "use-ref-from": "0.1.0", + "use-ref-from": "0.2.1", "uuid": "8.3.2", - "valibot": "1.1.0", - "web-speech-cognitive-services": "8.1.3", + "valibot": "1.2.0", + "web-speech-cognitive-services": "8.1.4", "whatwg-fetch": "3.6.20" }, "peerDependencies": { "react": ">= 16.8.6", + "react-chain-of-responsibility": "0.4.2", "react-dom": ">= 16.8.6" } }, "node_modules/botframework-webchat-api": { - "version": "4.18.1-main.20250804.93043a9", - "resolved": "https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.18.1-main.20250804.93043a9.tgz", - "integrity": "sha512-dQBrFBFURGHzjJ4Scg5DN1RbeDD0nHtZA8H+yE5qHis2DIz6qgwjk4n5jqgDfEdWLccljaql/fsIHHBGNdwrcQ==", + "version": "4.18.1-main.20260416.88357ae", + "resolved": "https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.18.1-main.20260416.88357ae.tgz", + "integrity": "sha512-TcwV4/P/1iD0CLfhf+wL4zfDsPzx9/rw+hr4IhphwAWuPVfGYFXZZBSIL/tTO5sF2r3y84e6TU+HX4zoJ/W1qw==", "dependencies": { - "botframework-webchat-core": "4.18.1-main.20250804.93043a9", - "globalize": "1.7.0", - "iter-fest": "0.3.0", + "botframework-webchat-core": "4.18.1-main.20260416.88357ae", + "globalize": "1.7.1", + "iter-fest": "0.3.1", "math-random": "2.0.1", "prop-types": "15.8.1", - "react-chain-of-responsibility": "0.3.0", + "react-chain-of-responsibility": "0.4.2", "react-redux": "7.2.9", "redux": "5.0.1", "simple-update-in": "2.2.0", - "use-ref-from": "0.1.0", - "valibot": "1.1.0" + "use-reduce-memo": "0.1.0", + "use-ref-from": "0.2.1", + "valibot": "1.2.0" }, "peerDependencies": { "react": ">= 16.8.6", @@ -1861,37 +1771,38 @@ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "node_modules/botframework-webchat-component": { - "version": "4.18.1-main.20250804.93043a9", - "resolved": "https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.18.1-main.20250804.93043a9.tgz", - "integrity": "sha512-RFcj0QlWl70NTg/s3Yu+kNDEEaDTbW8cHnQYPSzGqDLQAq6udbz2p6Ssxob6I5jOvUSajpfnbt2klTKuuqVzmg==", + "version": "4.18.1-main.20260416.88357ae", + "resolved": "https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.18.1-main.20260416.88357ae.tgz", + "integrity": "sha512-6VN6fECZg9xcjZ+vBBhh32yFYFaicMdbPjZd3hsQtnvstG0WMHX70sZLhLRrZUHmlEQijsuKwGxafMSum5AJ2g==", "dependencies": { "@emotion/css": "11.13.5", "base64-js": "1.5.1", - "botframework-webchat-api": "4.18.1-main.20250804.93043a9", - "botframework-webchat-core": "4.18.1-main.20250804.93043a9", + "botframework-webchat-api": "4.18.1-main.20260416.88357ae", + "botframework-webchat-core": "4.18.1-main.20260416.88357ae", "classnames": "2.5.1", "compute-scroll-into-view": "1.0.20", "deep-freeze-strict": "1.1.1", "markdown-it": "13.0.2", "math-random": "2.0.1", - "mdast-util-from-markdown": "2.0.2", + "mdast-util-from-markdown": "2.0.3", "memoize-one": "6.0.0", "merge-refs": "2.0.0", "prop-types": "15.8.1", "punycode": "2.3.1", - "react-chain-of-responsibility": "0.3.0", - "react-dictate-button": "4.0.0", + "react-chain-of-responsibility": "0.4.2", + "react-dictate-button": "4.0.1", "react-film": "4.0.0", "react-redux": "7.2.9", - "react-say": "2.2.0", + "react-say": "2.2.1", "react-scroll-to-bottom": "4.2.1-main.53844f5", "react-wrap-with": "0.1.0", "redux": "5.0.1", "simple-update-in": "2.2.0", - "use-propagate": "0.2.1", - "use-ref-from": "0.1.0", - "use-state-with-ref": "0.1.0", - "valibot": "1.1.0" + "use-propagate": "0.2.2", + "use-reduce-memo": "0.1.0", + "use-ref-from": "0.2.1", + "use-state-with-ref": "0.2.1", + "valibot": "1.2.0" }, "peerDependencies": { "react": ">= 16.8.6", @@ -1904,19 +1815,22 @@ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "node_modules/botframework-webchat-core": { - "version": "4.18.1-main.20250804.93043a9", - "resolved": "https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.18.1-main.20250804.93043a9.tgz", - "integrity": "sha512-05FKLfyUmoKHW3P0tofc09Q7eRG3zjHzg/86cp7HxAWnKu/hJJWpabM7nVGI9BAy78pHNrGkEDE/KedEQWNRwA==", + "version": "4.18.1-main.20260416.88357ae", + "resolved": "https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.18.1-main.20260416.88357ae.tgz", + "integrity": "sha512-3jnsPdserlV/0fKyrmJ2lwl2YKREHHss7xOlsw7art3IN4AeIRk6IGVRCQIyfjDY26VY8OxhiDgqupg5yHEHQg==", "dependencies": { - "@babel/runtime": "7.28.2", + "@babel/runtime": "7.28.6", "@redux-devtools/extension": "3.3.0", + "core-js-pure": "3.48.0", + "iter-fest": "0.3.1", "jwt-decode": "4.0.0", "math-random": "2.0.1", - "mime": "4.0.7", + "mime": "4.1.0", "redux": "5.0.1", - "redux-saga": "1.3.0", + "redux-saga": "1.4.2", "simple-update-in": "2.2.0", - "valibot": "1.1.0" + "uuid": "8.3.2", + "valibot": "1.2.0" }, "engines": { "node": ">=12.0.0" @@ -1935,15 +1849,6 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -2042,20 +1947,23 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, "node_modules/compute-scroll-into-view": { "version": "1.0.20", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, "node_modules/core-js": { - "version": "3.44.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", - "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", + "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -2063,9 +1971,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.44.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.44.0.tgz", - "integrity": "sha512-gvMQAGB4dfVUxpYD0k3Fq8J+n5bB6Ytl15lqlZrOIXFzxOhtPaObfkQGHtMRdyjIf7z2IeNULwi1jEwyS+ltKQ==", + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", + "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -2193,15 +2101,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/dom7": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.6.tgz", - "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", - "license": "MIT", - "dependencies": { - "ssr-window": "^4.0.0" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -2242,21 +2141,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/editions": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", - "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", - "dependencies": { - "errlop": "^2.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/emoji-regex-xs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", @@ -2273,17 +2157,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/errlop": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz", - "integrity": "sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==", - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2294,9 +2167,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -2306,32 +2179,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.2", - "@esbuild/android-arm": "0.27.2", - "@esbuild/android-arm64": "0.27.2", - "@esbuild/android-x64": "0.27.2", - "@esbuild/darwin-arm64": "0.27.2", - "@esbuild/darwin-x64": "0.27.2", - "@esbuild/freebsd-arm64": "0.27.2", - "@esbuild/freebsd-x64": "0.27.2", - "@esbuild/linux-arm": "0.27.2", - "@esbuild/linux-arm64": "0.27.2", - "@esbuild/linux-ia32": "0.27.2", - "@esbuild/linux-loong64": "0.27.2", - "@esbuild/linux-mips64el": "0.27.2", - "@esbuild/linux-ppc64": "0.27.2", - "@esbuild/linux-riscv64": "0.27.2", - "@esbuild/linux-s390x": "0.27.2", - "@esbuild/linux-x64": "0.27.2", - "@esbuild/netbsd-arm64": "0.27.2", - "@esbuild/netbsd-x64": "0.27.2", - "@esbuild/openbsd-arm64": "0.27.2", - "@esbuild/openbsd-x64": "0.27.2", - "@esbuild/openharmony-arm64": "0.27.2", - "@esbuild/sunos-x64": "0.27.2", - "@esbuild/win32-arm64": "0.27.2", - "@esbuild/win32-ia32": "0.27.2", - "@esbuild/win32-x64": "0.27.2" + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" } }, "node_modules/escape-string-regexp": { @@ -2347,11 +2220,11 @@ } }, "node_modules/event-as-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-as-promise/-/event-as-promise-2.0.0.tgz", - "integrity": "sha512-veBES20Er4NLmbcpvTJxmdSeQt1YP+NmK/6CKlx2kkkitCZ0gRYi/Q6iwx5iwBBeHdGcD4W4uHxitv6oPB2X3A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/event-as-promise/-/event-as-promise-2.0.1.tgz", + "integrity": "sha512-g0Wpfse1Gf9Pc8RLggBMti+LxHRmnHxGgv/lQeBlwL31xvFSjLS1ab8g9K5XrtSh8fcK8CHAV7h3zMgjg0LFBA==", "dependencies": { - "event-as-promise": "^2.0.0" + "event-as-promise": "^2.0.1" } }, "node_modules/event-target-shim": { @@ -2371,11 +2244,6 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", "license": "MIT" }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -2385,31 +2253,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globalize": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/globalize/-/globalize-1.7.0.tgz", - "integrity": "sha512-faR46vTIbFCeAemyuc9E6/d7Wrx9k2ae2L60UhakztFg6VuE42gENVJNuPFtt7Sdjrk9m2w8+py7Jj+JTNy59w==", - "license": "MIT", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/globalize/-/globalize-1.7.1.tgz", + "integrity": "sha512-PFymRL0PtitFOlSniuwwwNfkooi3cLQJo9Uke1+j1DsGfUkkHkwneImqVtGcqKI0TuzhAlHt7hAcgK324902HA==", "dependencies": { "cldrjs": "^0.5.4" } @@ -2423,6 +2270,14 @@ "node": ">=4" } }, + "node_modules/handler-chain": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/handler-chain/-/handler-chain-0.1.1.tgz", + "integrity": "sha512-5eo8F9UTUiFCMtDUF1ipva1tvOCGE+vFr33aFHSISjTqXfGywCRV2aE6TzPkMhaw1pArOv3wv2Wz3Rh+AJJ8bA==", + "dependencies": { + "handler-chain": "^0.1.1" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -2469,19 +2324,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/heimdalljs": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.6.tgz", - "integrity": "sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA==", - "dependencies": { - "rsvp": "~3.2.1" - } - }, - "node_modules/heimdalljs/node_modules/rsvp": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", - "integrity": "sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg==" - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -2587,6 +2429,26 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "engines": { + "node": ">= 14" + } + }, "node_modules/https-proxy-agent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", @@ -2627,9 +2489,9 @@ ] }, "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==" + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.8.tgz", + "integrity": "sha512-d/Ld9aLbKpNwyl0KiM2CT1WYvkitQ1TSvmRtkcV8FKStiDoA7Slzgjmb/1G2yhKM1p0XeNOieaTbFZmU1d3Xuw==" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -2647,21 +2509,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "node_modules/inline-style-parser": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", @@ -2707,28 +2554,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istextorbinary": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", - "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", - "dependencies": { - "binaryextensions": "^2.1.2", - "editions": "^2.2.0", - "textextensions": "^2.5.0" - }, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/iter-fest": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/iter-fest/-/iter-fest-0.3.0.tgz", - "integrity": "sha512-t76cnHCl9MEZRaUb0VBwTXP8dWjxbcTYm91VGWfQYjSMXKkjdOAIjUsaMYuLIy9jxk9fT55XIlb4Y/HACK/zlw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/iter-fest/-/iter-fest-0.3.1.tgz", + "integrity": "sha512-XL7DGglVGVevTuQAAhVAN3MbADeKyDcijPToBKUxZHpOSUJT22CfvGqsV1t34LyoVxDDL3MGPbHZVx20Lky0og==", "dependencies": { - "iter-fest": "^0.3.0" + "iter-fest": "^0.3.1" }, "peerDependencies": { "core-js-pure": "^3.37.1" @@ -2764,9 +2595,9 @@ "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" }, "node_modules/katex": { - "version": "0.16.22", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", - "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "version": "0.16.33", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.33.tgz", + "integrity": "sha512-q3N5u+1sY9Bu7T4nlXoiRBXWfwSefNGoKeOwekV+gw0cAXQlz2Ww6BLcmBxVDeXBMUDQv6fK5bcNaJLxob3ZQA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -2778,14 +2609,6 @@ "katex": "cli.js" } }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -2834,9 +2657,9 @@ "license": "CC0-1.0" }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -3394,9 +3217,9 @@ } }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -3407,7 +3230,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -3469,10 +3291,11 @@ "license": "MIT" }, "node_modules/microsoft-cognitiveservices-speech-sdk": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.45.0.tgz", - "integrity": "sha512-etTSMGxDELxBQtNL8cgq2bwMrE6CjgfC8oIqKH9I9ghFs4/ITyLXy9HZuo0wQItN1zfDH3FhBeR72TmApe6pCQ==", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.48.0.tgz", + "integrity": "sha512-D/8cZn0+vWE18PHloEXfeSHjxuCTYs1zjMulQ4EgpjIrLdtaqSqa9guDBXPnxFnnysWRnZZwyfM/uoiKZvEXXw==", "dependencies": { + "@azure/core-auth": "^1.9.0", "@types/webrtc": "^0.0.37", "agent-base": "^6.0.1", "bent": "^7.3.12", @@ -3494,9 +3317,9 @@ } }, "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "engines": { "node": ">=10.0.0" }, @@ -3514,9 +3337,9 @@ } }, "node_modules/mime": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.7.tgz", - "integrity": "sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", "funding": [ "https://github.com/sponsors/broofa" ], @@ -3527,41 +3350,6 @@ "node": ">=16" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3614,19 +3402,11 @@ } }, "node_modules/on-error-resume-next": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/on-error-resume-next/-/on-error-resume-next-2.0.2.tgz", - "integrity": "sha512-xGi+R6gp5OyWz/BbGIxyXbdcaGl0SFjvCyC0HgquupNC5t15L+7B/KYwLQ47EPRfpegmX0uOa85GAj4NO4Ujlg==", - "dependencies": { - "on-error-resume-next": "^2.0.2" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/on-error-resume-next/-/on-error-resume-next-2.0.3.tgz", + "integrity": "sha512-M/0RUYYlgKwoVhtdMNHSp//HxuqdAM5gDXtwitDfupoW+L773ZEitgqaYzZIuPFNZA3jf83bffkx4tm0QQxnuw==", "dependencies": { - "wrappy": "1" + "on-error-resume-next": "^2.0.3" } }, "node_modules/oniguruma-to-es": { @@ -3674,14 +3454,6 @@ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -3703,9 +3475,9 @@ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "funding": [ { "type": "opencollective", @@ -3757,11 +3529,6 @@ "node": ">=6" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -3776,30 +3543,43 @@ } }, "node_modules/react-chain-of-responsibility": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/react-chain-of-responsibility/-/react-chain-of-responsibility-0.3.0.tgz", - "integrity": "sha512-ord5r2WtHbioakZ7EG3LPHR3zCpMzmNAHtb+rTkaU0SRB7xj3YvWgPQDhoPeBDMgPoCKuBsYabJhNVYoFPODpQ==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/react-chain-of-responsibility/-/react-chain-of-responsibility-0.4.2.tgz", + "integrity": "sha512-khBaWO1rSLSUw6Ydr3lYFgONwmrx9rSOClrLCyn7cq40QxVJSh5utq1rbey+Pr24trWmQdC9qweTuKG2RptTXw==", "dependencies": { - "react-chain-of-responsibility": "^0.3.0" + "handler-chain": "^0.1.0", + "react-chain-of-responsibility": "^0.4.2", + "valibot": "^1.1.0" }, "peerDependencies": { - "react": ">=16.8.0" + "react": ">=16.8.6" } }, "node_modules/react-dictate-button": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/react-dictate-button/-/react-dictate-button-4.0.0.tgz", - "integrity": "sha512-v+92/yHShDzCapCZm2Y6UoKEKzt32gCJWFTIcJxRTwySfP8+eulUG/2U2ttu74YD6i0z9dYsRfFEHHwC+UfwKQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-dictate-button/-/react-dictate-button-4.0.1.tgz", + "integrity": "sha512-UvXx3RhJfGD4I7UkUEtBGBRyKRQrh90gzFsde53sJUhJ0V8iTJo8dthtNBMuanYTUyGdZdfdPCjv5ozIlEPvAQ==", "dependencies": { - "@babel/runtime-corejs3": "^7.14.0", - "core-js": "^3.12.1", - "react-dictate-button": "^4.0.0", + "@babel/runtime-corejs3": "^7.28.4", + "react-dictate-button": "^4.0.1", "use-ref-from": "^0.1.0" }, "peerDependencies": { "react": ">=16.8.6" } }, + "node_modules/react-dictate-button/node_modules/use-ref-from": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.1.0.tgz", + "integrity": "sha512-PRjmfhUGUKghhOjKV1dBU66M7CASdb4NkMsaaWLdJA81yOZFlVL7Pi3O9aD+68pRh0VrRQjZfS6Ux3vPy1VhRg==", + "dependencies": { + "@babel/runtime-corejs3": "^7.24.1", + "use-ref-from": "^0.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -3873,12 +3653,12 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/react-say": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-say/-/react-say-2.2.0.tgz", - "integrity": "sha512-PbP3InO5bXeWEZyYi/QCu3CPsPKzT+1V/LnlxRsJ8gyL2utaEm1/cg+8WR2n6aHutzgvRP1Cq01jk9oYwectQA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-say/-/react-say-2.2.1.tgz", + "integrity": "sha512-Iew40Wql10+IC659S1CRbziEO272XeJmWfmLbnSLqyGpCwELTBxTefHvFUvKwEAuJv8Bk+ezjcw0NxgDAZdzWA==", "dependencies": { "prop-types": "^15.8.1", - "react-say": "^2.2.0" + "react-say": "^2.2.1" }, "peerDependencies": { "react": ">= 16.8.6" @@ -3970,11 +3750,11 @@ } }, "node_modules/redux-saga": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.3.0.tgz", - "integrity": "sha512-J9RvCeAZXSTAibFY0kGw6Iy4EdyDNW7k6Q+liwX+bsck7QVsU78zz8vpBRweEfANxnnlG/xGGeOvf6r8UXzNJQ==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.4.2.tgz", + "integrity": "sha512-QLIn/q+7MX/B+MkGJ/K6R3//60eJ4QNy65eqPsJrfGezbxdh1Jx+37VRKE2K4PsJnNET5JufJtgWdT30WBa+6w==", "dependencies": { - "@redux-saga/core": "^1.3.0" + "@redux-saga/core": "^1.4.2" } }, "node_modules/regenerator-runtime": { @@ -4003,11 +3783,6 @@ "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==" }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -4034,29 +3809,6 @@ "node": ">=4" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "engines": { - "node": "6.* || >= 7.*" - } - }, "node_modules/rxjs": { "version": "5.5.12", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", @@ -4068,15 +3820,10 @@ "npm": ">=2.0.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "node_modules/sanitize-html": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.0.tgz", - "integrity": "sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.1.tgz", + "integrity": "sha512-ehFCW+q1a4CSOWRAdX97BX/6/PDEkCqw7/0JXZAGQV57FQB3YOkTa/rrzHPeJ+Aghy4vZAFfWMYyfxIiB7F/gw==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", @@ -4096,14 +3843,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/shiki": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", @@ -4119,11 +3858,6 @@ "@types/hast": "^3.0.4" } }, - "node_modules/simple-lru-cache": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz", - "integrity": "sha512-uEv/AFO0ADI7d99OHDmh1QfYzQk/izT1vCmu/riQfh7qjBVUUgRT87E5s5h7CxWCA/+YoZerykpEthzVrW3LIw==" - }, "node_modules/simple-update-in": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/simple-update-in/-/simple-update-in-2.2.0.tgz", @@ -4156,12 +3890,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ssr-window": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz", - "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==", - "license": "MIT" - }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -4210,9 +3938,9 @@ } }, "node_modules/swiper": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.7.tgz", - "integrity": "sha512-VwO/KU3i9IV2Sf+W2NqyzwWob4yX9Qdedq6vBtS0rFqJ6Fa5iLUJwxQkuD4I38w0WDJwmFl8ojkdcRFPHWD+2g==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.1.3.tgz", + "integrity": "sha512-XcWlVmkHFICI4fuoJKgbp8PscDcS4i7pBH8nwJRBi3dpQvhCySwsWRYm4bOf/BzKVWkHOYaFw7qz9uBSrY3oug==", "funding": [ { "type": "patreon", @@ -4223,12 +3951,7 @@ "url": "http://opencollective.com/swiper" } ], - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "dom7": "^4.0.4", - "ssr-window": "^4.0.2" - }, + "peer": true, "engines": { "node": ">= 4.7.0" } @@ -4241,17 +3964,6 @@ "node": ">=0.10.0" } }, - "node_modules/textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -4269,8 +3981,7 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "peer": true + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/type-fest": { "version": "4.41.0", @@ -4373,15 +4084,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/url-search-params-polyfill": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/url-search-params-polyfill/-/url-search-params-polyfill-8.2.5.tgz", @@ -4389,22 +4091,21 @@ "license": "MIT" }, "node_modules/use-propagate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/use-propagate/-/use-propagate-0.2.1.tgz", - "integrity": "sha512-sEqlR9Zq63fCmJbxD33j3+nRkR4tAiu6K6/P++ks4A9ZLJjKZcgllaaufTBSW29dQzjWdaMT2JsPwBskamWwQQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/use-propagate/-/use-propagate-0.2.2.tgz", + "integrity": "sha512-cuOqTG8JKwkd1DHJAy1fkwIMhjVRZSdSvELJCXsROvmS49yd8CEXg4UDaDC7Qqsea0FAa1d8cFMY5pnodZul1w==", "dependencies": { - "use-propagate": "^0.2.1", + "use-propagate": "^0.2.2", "use-ref-from": "^0.1.0" }, "peerDependencies": { "react": ">=16.8.0" } }, - "node_modules/use-ref-from": { + "node_modules/use-propagate/node_modules/use-ref-from": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.1.0.tgz", "integrity": "sha512-PRjmfhUGUKghhOjKV1dBU66M7CASdb4NkMsaaWLdJA81yOZFlVL7Pi3O9aD+68pRh0VrRQjZfS6Ux3vPy1VhRg==", - "license": "MIT", "dependencies": { "@babel/runtime-corejs3": "^7.24.1", "use-ref-from": "^0.1.0" @@ -4413,23 +4114,41 @@ "react": ">=16.8.0" } }, - "node_modules/use-state-with-ref": { + "node_modules/use-reduce-memo": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/use-state-with-ref/-/use-state-with-ref-0.1.0.tgz", - "integrity": "sha512-l8/Dsu9XjhhhFSsBWmit+7WYsRSrKHafp+eJURhhVvv9K9fVIKxDaEAq/dW4pHgxCYcjWgD6EaofiW8NiwGabQ==", + "resolved": "https://registry.npmjs.org/use-reduce-memo/-/use-reduce-memo-0.1.0.tgz", + "integrity": "sha512-dJK1fMqvI7Lzh5xdKsZkZiqbvTyNtovQB7E3IWJp5tOeG7kdxZKdD5XSROiRGwAfB0qctgzJMcsCTp+m7y77UA==", "dependencies": { - "@babel/runtime-corejs3": "^7.23.6", - "use-ref-from": "^0.1.0", - "use-state-with-ref": "^0.1.0" + "handler-chain": "^0.1.0", + "use-reduce-memo": "^0.1.0", + "valibot": "^1.1.0" }, "peerDependencies": { "react": ">=16.8.0" } }, - "node_modules/username-sync": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/username-sync/-/username-sync-1.0.3.tgz", - "integrity": "sha512-m/7/FSqjJNAzF2La448c/aEom0gJy7HY7Y509h6l0ePvEkFictAGptwWaj1msWJ38JbfEDOUoE8kqFee9EHKdA==" + "node_modules/use-ref-from": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/use-ref-from/-/use-ref-from-0.2.1.tgz", + "integrity": "sha512-iwRcKtgIPP4K++mR3LO5DLUf4WMfBWyAM20oUL9jbKfywoMTiRScUixGv0HkhlJxFm6uFv5yDnr5YwcSiJSm1g==", + "dependencies": { + "use-ref-from": "^0.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/use-state-with-ref": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/use-state-with-ref/-/use-state-with-ref-0.2.1.tgz", + "integrity": "sha512-6EPhnqXsdzEVnOQub5VoDmrTLI2PqKp8zIIw/fvfdW9F/qLboIZG5ifaRQpAon8Upu3QYnIYZ+8h+YYQdXUnCw==", + "dependencies": { + "use-ref-from": "^0.2.1", + "use-state-with-ref": "^0.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + } }, "node_modules/uuid": { "version": "8.3.2", @@ -4441,9 +4160,9 @@ } }, "node_modules/valibot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.1.0.tgz", - "integrity": "sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.2.0.tgz", + "integrity": "sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==", "peerDependencies": { "typescript": ">=5" }, @@ -4480,18 +4199,18 @@ } }, "node_modules/web-speech-cognitive-services": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/web-speech-cognitive-services/-/web-speech-cognitive-services-8.1.3.tgz", - "integrity": "sha512-StlM8XsScA6Z/HGl4aAR9dmIe/+B5Tlc0ke1Bp7T/TSafzjszzDvXp/65u9vfbnJ2ZuCX+ie8IXR2y6q5rgYww==", + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/web-speech-cognitive-services/-/web-speech-cognitive-services-8.1.4.tgz", + "integrity": "sha512-1d/2F5RDAMTJmJdSWWssKzmTsA6hkXz4kz3QzBpDvgjxWjDo4j2erb6KydyfaRzDRk4Pij4MtR1CtpzZtU9rSA==", "dependencies": { "base64-arraybuffer": "^1.0.2", - "event-as-promise": "^2.0.0", + "event-as-promise": "^2.0.1", "event-target-shim": "^6.0.2", "memoize-one": "^6.0.0", - "on-error-resume-next": "^2.0.2", + "on-error-resume-next": "^2.0.3", "simple-update-in": "^2.2.0", - "valibot": "^1.1.0", - "web-speech-cognitive-services": "^8.1.3" + "valibot": "^1.2.0", + "web-speech-cognitive-services": "^8.1.4" }, "peerDependencies": { "microsoft-cognitiveservices-speech-sdk": "^1.17.0" @@ -4517,11 +4236,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, "node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -4543,10 +4257,9 @@ } }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "engines": { "node": ">= 6" } From 87bb8652b77facd862e81ac8d4786cad1a5d5ed8 Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:45:54 +0000 Subject: [PATCH 05/59] Update PR number --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc11197c03..2c3739911f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -187,7 +187,7 @@ Breaking changes in this release: - Activity "copy" button will use `outerHTML` and `textContent` for clipboard content, in PR [#5378](https://github.com/microsoft/BotFramework-WebChat/pull/5378), by [@compulim](https://github.com/compulim) - Enabled icon customization in Fluent theme through CSS variables, in PR [#5413](https://github.com/microsoft/BotFramework-WebChat/pull/5413), by [@OEvgeny](https://github.com/OEvgeny) - Reworked, enabled in Web Chat, in PR [#5502](https://github.com/microsoft/BotFramework-WebChat/pull/5502), by [@OEvgeny](https://github.com/OEvgeny) -- Bumped dependencies, by [@compulim](https://github.com/compulim) in PR [#5385](https://github.com/microsoft/BotFramework-WebChat/pull/5385), PR [#5400](https://github.com/microsoft/BotFramework-WebChat/pull/5400), PR [#5426](https://github.com/microsoft/BotFramework-WebChat/pull/5426), PR [#5427](https://github.com/microsoft/BotFramework-WebChat/pull/5427), PR [#5476](https://github.com/microsoft/BotFramework-WebChat/pull/5476), PR [#5516](https://github.com/microsoft/BotFramework-WebChat/pull/5516), PR [#5529](https://github.com/microsoft/BotFramework-WebChat/pull/5529), PR [#5532](https://github.com/microsoft/BotFramework-WebChat/pull/5532), PR [#5659](https://github.com/microsoft/BotFramework-WebChat/pull/5659), PR [#5661](https://github.com/microsoft/BotFramework-WebChat/pull/5661), PR [#5768](https://github.com/microsoft/BotFramework-WebChat/pull/5768), and PR [#XXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXX), by [@OEvgeny](https://github.com/OEvgeny) in PR [#5662](https://github.com/microsoft/BotFramework-WebChat/pull/5662) +- Bumped dependencies, by [@compulim](https://github.com/compulim) in PR [#5385](https://github.com/microsoft/BotFramework-WebChat/pull/5385), PR [#5400](https://github.com/microsoft/BotFramework-WebChat/pull/5400), PR [#5426](https://github.com/microsoft/BotFramework-WebChat/pull/5426), PR [#5427](https://github.com/microsoft/BotFramework-WebChat/pull/5427), PR [#5476](https://github.com/microsoft/BotFramework-WebChat/pull/5476), PR [#5516](https://github.com/microsoft/BotFramework-WebChat/pull/5516), PR [#5529](https://github.com/microsoft/BotFramework-WebChat/pull/5529), PR [#5532](https://github.com/microsoft/BotFramework-WebChat/pull/5532), PR [#5659](https://github.com/microsoft/BotFramework-WebChat/pull/5659), PR [#5661](https://github.com/microsoft/BotFramework-WebChat/pull/5661), PR [#5768](https://github.com/microsoft/BotFramework-WebChat/pull/5768), and PR [#5813](https://github.com/microsoft/BotFramework-WebChat/pull/5813), by [@OEvgeny](https://github.com/OEvgeny) in PR [#5662](https://github.com/microsoft/BotFramework-WebChat/pull/5662) - Production dependencies - [`@babel/runtime@7.29.2`](https://npmjs.com/package/@babel/runtime/v/7.29.2) - [`@emotion/css@11.13.5`](https://npmjs.com/package/@emotion/css/v/11.13.5) From b97d85ed71199e1073b5ca943fa811c45f67f14b Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:48:28 +0000 Subject: [PATCH 06/59] Add ignoreDeprecations --- packages/react-valibot/src/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-valibot/src/tsconfig.json b/packages/react-valibot/src/tsconfig.json index 1a8e530c21..a7aa6e5e4f 100644 --- a/packages/react-valibot/src/tsconfig.json +++ b/packages/react-valibot/src/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "allowSyntheticDefaultImports": true, + "ignoreDeprecations": "6.0" // Required for tsup@8.5.1 to work in typescript@6.0.3 }, "extends": "@msinternal/botframework-webchat-tsconfig/current" } From 340d31d84f1656aba18f33a7e2aaa67eb301369d Mon Sep 17 00:00:00 2001 From: William Wong Date: Wed, 22 Apr 2026 23:51:25 +0000 Subject: [PATCH 07/59] Add ignoreDeprecations --- packages/react-valibot/src/tsconfig.json | 3 +-- packages/tsconfig/src/current/tsconfig.json | 1 + packages/tsconfig/src/legacy/tsconfig.json | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-valibot/src/tsconfig.json b/packages/react-valibot/src/tsconfig.json index a7aa6e5e4f..281599ac3f 100644 --- a/packages/react-valibot/src/tsconfig.json +++ b/packages/react-valibot/src/tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { - "allowSyntheticDefaultImports": true, - "ignoreDeprecations": "6.0" // Required for tsup@8.5.1 to work in typescript@6.0.3 + "allowSyntheticDefaultImports": true }, "extends": "@msinternal/botframework-webchat-tsconfig/current" } diff --git a/packages/tsconfig/src/current/tsconfig.json b/packages/tsconfig/src/current/tsconfig.json index 9bdd69c62e..621d2f0632 100644 --- a/packages/tsconfig/src/current/tsconfig.json +++ b/packages/tsconfig/src/current/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "ignoreDeprecations": "6.0", // Required for tsup@8.5.1 to work in typescript@6.0.3 "jsx": "react", "module": "ESNext", "moduleResolution": "Bundler", diff --git a/packages/tsconfig/src/legacy/tsconfig.json b/packages/tsconfig/src/legacy/tsconfig.json index 432d170f8b..e0372e43ea 100644 --- a/packages/tsconfig/src/legacy/tsconfig.json +++ b/packages/tsconfig/src/legacy/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "allowSyntheticDefaultImports": true, + "ignoreDeprecations": "6.0", // Required for tsup@8.5.1 to work in typescript@6.0.3 "jsx": "react", "module": "ESNext", "moduleResolution": "Bundler", From 03953eb6636d1bab1803c1c16f8eae17f9f9843e Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 11:01:47 +0000 Subject: [PATCH 08/59] Fix Schema.org schema --- packages/core/src/actions/connect.ts | 10 +- packages/core/src/actions/sendEvent.ts | 2 +- packages/core/src/actions/sendMessageBack.ts | 2 +- packages/core/src/actions/sendPostBack.ts | 2 +- .../core/src/actions/setDictateInterims.ts | 2 +- packages/core/src/actions/setDictateState.ts | 4 +- packages/core/src/actions/setLanguage.ts | 2 +- packages/core/src/actions/setSendBox.ts | 2 +- packages/core/src/actions/setSendTimeout.ts | 2 +- .../src/actions/setSendTypingIndicator.ts | 2 +- ...yClientState.js => ActivityClientState.ts} | 6 +- packages/core/src/constants/DictateState.js | 7 - packages/core/src/constants/DictateState.ts | 12 ++ packages/core/src/createStore.ts | 14 +- packages/core/src/index.ts | 28 +-- .../src/types/external/OrgSchema/Action.ts | 91 ++++++---- .../types/external/OrgSchema/ActionStatus.ts | 13 ++ .../types/external/OrgSchema/Claim.spec.ts | 15 +- .../src/types/external/OrgSchema/Claim.ts | 56 ++++-- .../types/external/OrgSchema/CreativeWork.ts | 170 ++++++++++++------ .../external/OrgSchema/CreativeWorkStatus.ts | 8 + .../types/external/OrgSchema/DefinedTerm.ts | 52 ++++-- .../src/types/external/OrgSchema/Person.ts | 29 +++ .../src/types/external/OrgSchema/Project.ts | 55 ++++-- .../OrgSchema/Thing.parseThing.spec.ts | 12 +- .../src/types/external/OrgSchema/Thing.ts | 137 ++++++++++---- .../types/external/OrgSchema/UserReview.ts | 37 ++-- .../types/external/OrgSchema/VoteAction.ts | 43 +++-- .../private/orgSchemaProperties.spec.ts | 1 + .../OrgSchema/private/orgSchemaProperties.ts | 23 ++- .../private/orgSchemaProperty.spec.ts | 1 + .../OrgSchema/private/orgSchemaProperty.ts | 22 ++- .../src/types/external/OrgSchema/types.ts | 15 ++ .../src/types/internal/GlobalScopeClock.ts | 20 +-- .../core/src/utils/getOrgSchemaMessage.ts | 13 +- 35 files changed, 648 insertions(+), 262 deletions(-) rename packages/core/src/constants/{ActivityClientState.js => ActivityClientState.ts} (79%) delete mode 100644 packages/core/src/constants/DictateState.js create mode 100644 packages/core/src/constants/DictateState.ts create mode 100644 packages/core/src/types/external/OrgSchema/ActionStatus.ts create mode 100644 packages/core/src/types/external/OrgSchema/CreativeWorkStatus.ts create mode 100644 packages/core/src/types/external/OrgSchema/Person.ts create mode 100644 packages/core/src/types/external/OrgSchema/types.ts diff --git a/packages/core/src/actions/connect.ts b/packages/core/src/actions/connect.ts index db8b068a6b..df51c913f7 100644 --- a/packages/core/src/actions/connect.ts +++ b/packages/core/src/actions/connect.ts @@ -5,7 +5,15 @@ const CONNECT_PENDING = `${CONNECT}_PENDING`; const CONNECT_REJECTED = `${CONNECT}_REJECTED`; const CONNECT_STILL_PENDING = `${CONNECT}_STILL_PENDING`; -export default function connect({ directLine, userID, username }) { +export default function connect({ + directLine, + userID, + username +}: { + readonly directLine: any; + readonly userID: string; + readonly username: string; +}) { return { type: CONNECT, payload: { diff --git a/packages/core/src/actions/sendEvent.ts b/packages/core/src/actions/sendEvent.ts index badd442fa5..5168d356af 100644 --- a/packages/core/src/actions/sendEvent.ts +++ b/packages/core/src/actions/sendEvent.ts @@ -1,6 +1,6 @@ const SEND_EVENT = 'WEB_CHAT/SEND_EVENT'; -export default function sendEvent(name, value) { +export default function sendEvent(name: string, value: any) { return { type: SEND_EVENT, payload: { name, value } diff --git a/packages/core/src/actions/sendMessageBack.ts b/packages/core/src/actions/sendMessageBack.ts index d75f9d95ef..272a5261a4 100644 --- a/packages/core/src/actions/sendMessageBack.ts +++ b/packages/core/src/actions/sendMessageBack.ts @@ -1,6 +1,6 @@ const SEND_MESSAGE_BACK = 'WEB_CHAT/SEND_MESSAGE_BACK'; -export default function sendMessageback(value, text, displayText) { +export default function sendMessageback(value: any, text: string | undefined, displayText: string | undefined) { return { type: SEND_MESSAGE_BACK, payload: { displayText, text, value } diff --git a/packages/core/src/actions/sendPostBack.ts b/packages/core/src/actions/sendPostBack.ts index 77e8bc200c..10e1173576 100644 --- a/packages/core/src/actions/sendPostBack.ts +++ b/packages/core/src/actions/sendPostBack.ts @@ -1,6 +1,6 @@ const SEND_POST_BACK = 'WEB_CHAT/SEND_POST_BACK'; -export default function sendPostback(value) { +export default function sendPostback(value: any) { return { type: SEND_POST_BACK, payload: { value } diff --git a/packages/core/src/actions/setDictateInterims.ts b/packages/core/src/actions/setDictateInterims.ts index b485728f36..5bc98c29ff 100644 --- a/packages/core/src/actions/setDictateInterims.ts +++ b/packages/core/src/actions/setDictateInterims.ts @@ -1,6 +1,6 @@ const SET_DICTATE_INTERIMS = 'WEB_CHAT/SET_DICTATE_INTERIMS'; -export default function setDictateInterims(dictateInterims) { +export default function setDictateInterims(dictateInterims: readonly string[]) { return { type: SET_DICTATE_INTERIMS, payload: { dictateInterims } diff --git a/packages/core/src/actions/setDictateState.ts b/packages/core/src/actions/setDictateState.ts index c706044448..b0ae68c1dd 100644 --- a/packages/core/src/actions/setDictateState.ts +++ b/packages/core/src/actions/setDictateState.ts @@ -1,6 +1,8 @@ +import type { DictateState } from '../constants/DictateState'; + const SET_DICTATE_STATE = 'WEB_CHAT/SET_DICTATE_STATE'; -export default function setDictateState(dictateState) { +export default function setDictateState(dictateState: DictateState) { return { type: SET_DICTATE_STATE, payload: { dictateState } diff --git a/packages/core/src/actions/setLanguage.ts b/packages/core/src/actions/setLanguage.ts index f8b3bd7b42..e04460b308 100644 --- a/packages/core/src/actions/setLanguage.ts +++ b/packages/core/src/actions/setLanguage.ts @@ -1,6 +1,6 @@ const SET_LANGUAGE = 'WEB_CHAT/SET_LANGUAGE'; -export default function setLanguage(language) { +export default function setLanguage(language: string) { return { type: SET_LANGUAGE, payload: { language } diff --git a/packages/core/src/actions/setSendBox.ts b/packages/core/src/actions/setSendBox.ts index 28de1a8ef3..3e4f265c79 100644 --- a/packages/core/src/actions/setSendBox.ts +++ b/packages/core/src/actions/setSendBox.ts @@ -1,6 +1,6 @@ const SET_SEND_BOX = 'WEB_CHAT/SET_SEND_BOX'; -export default function setSendBox(text) { +export default function setSendBox(text: string) { return { type: SET_SEND_BOX, payload: { text } diff --git a/packages/core/src/actions/setSendTimeout.ts b/packages/core/src/actions/setSendTimeout.ts index 4fa8be804a..b70521cf18 100644 --- a/packages/core/src/actions/setSendTimeout.ts +++ b/packages/core/src/actions/setSendTimeout.ts @@ -1,6 +1,6 @@ const SET_SEND_TIMEOUT = 'WEB_CHAT/SET_SEND_TIMEOUT'; -export default function setSendTimeout(sendTimeout) { +export default function setSendTimeout(sendTimeout: number) { return { type: SET_SEND_TIMEOUT, payload: { sendTimeout } diff --git a/packages/core/src/actions/setSendTypingIndicator.ts b/packages/core/src/actions/setSendTypingIndicator.ts index bee0df415e..80734788ac 100644 --- a/packages/core/src/actions/setSendTypingIndicator.ts +++ b/packages/core/src/actions/setSendTypingIndicator.ts @@ -5,7 +5,7 @@ type SetSendTypingIndicatorAction = { type: typeof SET_SEND_TYPING_INDICATOR; }; -export default function setSendTypingIndicator(value): SetSendTypingIndicatorAction { +export default function setSendTypingIndicator(value: boolean): SetSendTypingIndicatorAction { return { payload: { sendTypingIndicator: !!value }, type: SET_SEND_TYPING_INDICATOR diff --git a/packages/core/src/constants/ActivityClientState.js b/packages/core/src/constants/ActivityClientState.ts similarity index 79% rename from packages/core/src/constants/ActivityClientState.js rename to packages/core/src/constants/ActivityClientState.ts index 5eee652eba..02dbf17b20 100644 --- a/packages/core/src/constants/ActivityClientState.js +++ b/packages/core/src/constants/ActivityClientState.ts @@ -1,8 +1,8 @@ /** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */ -const SEND_FAILED = 'send failed'; +const SEND_FAILED = 'send failed' as const; /** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */ -const SENDING = 'sending'; +const SENDING = 'sending' as const; /** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */ -const SENT = 'sent'; +const SENT = 'sent' as const; export { SEND_FAILED, SENDING, SENT }; diff --git a/packages/core/src/constants/DictateState.js b/packages/core/src/constants/DictateState.js deleted file mode 100644 index 7aef0394c4..0000000000 --- a/packages/core/src/constants/DictateState.js +++ /dev/null @@ -1,7 +0,0 @@ -const IDLE = 0; -const WILL_START = 1; -const STARTING = 2; -const DICTATING = 3; -const STOPPING = 4; - -export { DICTATING, IDLE, STARTING, STOPPING, WILL_START }; diff --git a/packages/core/src/constants/DictateState.ts b/packages/core/src/constants/DictateState.ts new file mode 100644 index 0000000000..dac7eb8263 --- /dev/null +++ b/packages/core/src/constants/DictateState.ts @@ -0,0 +1,12 @@ +const IDLE = 0 as const; +const WILL_START = 1 as const; +// eslint-disable-next-line no-magic-numbers +const STARTING = 2 as const; +// eslint-disable-next-line no-magic-numbers +const DICTATING = 3 as const; +// eslint-disable-next-line no-magic-numbers +const STOPPING = 4 as const; + +type DictateState = typeof DICTATING | typeof IDLE | typeof STARTING | typeof STOPPING | typeof WILL_START; + +export { DICTATING, IDLE, STARTING, STOPPING, WILL_START, type DictateState }; diff --git a/packages/core/src/createStore.ts b/packages/core/src/createStore.ts index 02abafc5fd..fd523b8e43 100644 --- a/packages/core/src/createStore.ts +++ b/packages/core/src/createStore.ts @@ -1,5 +1,5 @@ import { composeWithDevTools } from '@redux-devtools/extension'; -import { applyMiddleware, createStore as createReduxStore, type Store } from 'redux'; +import { applyMiddleware, createStore as createReduxStore, type Middleware, type Store } from 'redux'; import createSagaMiddleware from 'redux-saga'; import sagaError from './actions/sagaError'; @@ -31,7 +31,7 @@ type CreateStoreOptions = { ponyfill?: Partial; }; -function createEnhancerAndSagaMiddleware(getStore, ...middlewares) { +function createEnhancerAndSagaMiddleware(getStore: () => any, ...middlewares: readonly Middleware[]) { const sagaMiddleware = createSagaMiddleware({ onError: (...args) => { const [err] = args; @@ -58,7 +58,11 @@ function createEnhancerAndSagaMiddleware(getStore, ...middlewares) { // The complexity is introduced by the check of ponyfill. // eslint-disable-next-line complexity -export function withOptions(options: CreateStoreOptions, initialState?, ...middlewares): Store { +export function withOptions( + options: CreateStoreOptions, + initialState?: any | undefined, + ...middlewares: readonly Middleware[] +): Store { // IE Mode does not have `globalThis`. const globalThisOrWindow = typeof globalThis === 'undefined' ? window : globalThis; const ponyfillFromOptions: Partial = options.ponyfill || {}; @@ -139,7 +143,7 @@ export function withOptions(options: CreateStoreOptions, initialState?, ...middl * * This store is critical for Web Chat business logics to operate, please use with cautions. */ -export default function createStore(initialState?, ...middlewares): Store { +export default function createStore(initialState?: any, ...middlewares: readonly Middleware[]): Store { return withOptions({}, initialState, ...middlewares); } @@ -150,6 +154,6 @@ export default function createStore(initialState?, ...middlewares): Store { * * @deprecated Use `withOptions` instead and pass `{ devTools: true }` */ -export function withDevTools(initialState?, ...middlewares): Store { +export function withDevTools(initialState?: any, ...middlewares: readonly Middleware[]): Store { return withOptions({ devTools: true }, initialState, ...middlewares); } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index fadb704911..dec4cdf361 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -38,13 +38,6 @@ import createStore, { withDevTools as createStoreWithDevTools, withOptions as createStoreWithOptions } from './createStore'; -import { parseAction } from './types/external/OrgSchema/Action'; -import { parseClaim } from './types/external/OrgSchema/Claim'; -import { parseCreativeWork } from './types/external/OrgSchema/CreativeWork'; -import { parseDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; -import { parseProject } from './types/external/OrgSchema/Project'; -import { parseThing } from './types/external/OrgSchema/Thing'; -import { parseVoteAction } from './types/external/OrgSchema/VoteAction'; import getActivityLivestreamingMetadata from './utils/getActivityLivestreamingMetadata'; import getOrgSchemaMessage from './utils/getOrgSchemaMessage'; import onErrorResumeNext from './utils/onErrorResumeNext'; @@ -90,13 +83,13 @@ import type { DirectLineSuggestedAction } from './types/external/DirectLineSugge import type { DirectLineThumbnailCard } from './types/external/DirectLineThumbnailCard'; import type { DirectLineVideoCard } from './types/external/DirectLineVideoCard'; import type { Observable } from './types/external/Observable'; -import type { Action as OrgSchemaAction } from './types/external/OrgSchema/Action'; -import type { Claim as OrgSchemaClaim } from './types/external/OrgSchema/Claim'; -import type { CreativeWork as OrgSchemaCreativeWork } from './types/external/OrgSchema/CreativeWork'; -import type { DefinedTerm as OrgSchemaDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; -import type { Project as OrgSchemaProject } from './types/external/OrgSchema/Project'; -import type { Thing as OrgSchemaThing } from './types/external/OrgSchema/Thing'; -import type { UserReview as OrgSchemaUserReview } from './types/external/OrgSchema/UserReview'; +import type { ActionOutput as OrgSchemaAction } from './types/external/OrgSchema/Action'; +import type { ClaimOutput as OrgSchemaClaim } from './types/external/OrgSchema/Claim'; +import type { CreativeWorkOutput as OrgSchemaCreativeWork } from './types/external/OrgSchema/CreativeWork'; +import type { DefinedTermOutput as OrgSchemaDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; +import type { ProjectOutput as OrgSchemaProject } from './types/external/OrgSchema/Project'; +import type { ThingOutput as OrgSchemaThing } from './types/external/OrgSchema/Thing'; +import type { UserReviewOutput as OrgSchemaUserReview } from './types/external/OrgSchema/UserReview'; /** @deprecated */ export { singleToArray, type OneOrMany } from '@msinternal/botframework-webchat-base/utils'; @@ -121,13 +114,6 @@ export { markActivity, muteVoiceRecording, onErrorResumeNext, - parseAction, - parseClaim, - parseCreativeWork, - parseDefinedTerm, - parseProject, - parseThing, - parseVoteAction, postActivity, postVoiceActivity, registerVoiceHandler, diff --git a/packages/core/src/types/external/OrgSchema/Action.ts b/packages/core/src/types/external/OrgSchema/Action.ts index 6c9b0ced14..3b0728b7bb 100644 --- a/packages/core/src/types/external/OrgSchema/Action.ts +++ b/packages/core/src/types/external/OrgSchema/Action.ts @@ -1,9 +1,10 @@ -import { lazy, parse, picklist, pipe, string, type ObjectEntries } from 'valibot'; +import { intersect, lazy, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; -import orgSchemaProperty from './private/orgSchemaProperty'; -import { project, type Project } from './Project'; -import { thing, type Thing } from './Thing'; -import { userReview, type UserReview } from './UserReview'; +import { actionStatusSchema, type ActionStatusInput, type ActionStatusOutput } from './ActionStatus'; +import orgSchemaProperties from './private/orgSchemaProperties'; +import { projectSchema, type ProjectInput, type ProjectOutput } from './Project'; +import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { userReviewSchema, type UserReviewInput, type UserReviewOutput } from './UserReview'; /** * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role. @@ -14,50 +15,78 @@ import { userReview, type UserReview } from './UserReview'; * * @see https://schema.org/Action */ -export type Action = Thing & { +type ActionInput = ThingInput & { /** * A sub property of object. The options subject to this action. Supersedes [`option`](https://schema.org/option). */ - actionOption?: string | Thing; + readonly actionOption?: string | ThingInput | readonly (string | ThingInput)[] | undefined; /** * Indicates the current disposition of the Action. * * @see https://schema.org/actionStatus */ - actionStatus?: - | 'ActiveActionStatus' - | 'CompletedActionStatus' - | 'FailedActionStatus' - | 'PotentialActionStatus' - | undefined; + readonly actionStatus?: ActionStatusInput | readonly ActionStatusInput[] | undefined; /** * The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller. Supersedes [carrier](https://schema.org/carrier). * * @see https://schema.org/provider */ - provider?: Project | undefined; + readonly provider?: ProjectInput | readonly ProjectInput[] | undefined; /** * The result produced in the action. E.g. John wrote *a book*. */ - result?: Thing | UserReview | undefined; + readonly result?: ThingInput | UserReviewInput | readonly (ThingInput | UserReviewInput)[] | undefined; }; -export const action = (entries?: TEntries | undefined) => - thing({ - actionOption: orgSchemaProperty(string()), - actionStatus: orgSchemaProperty( - pipe( - string(), - picklist(['ActiveActionStatus', 'CompletedActionStatus', 'FailedActionStatus', 'PotentialActionStatus']) - ) - ), - provider: orgSchemaProperty(lazy(() => project())), - result: orgSchemaProperty(userReview()), - - ...entries - }); - -export const parseAction = (data: unknown): Action => parse(action(), data); +/** + * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role. + * + * See also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html). + * + * This is partial implementation of https://schema.org/Action. + * + * @see https://schema.org/Action + */ +type ActionOutput = ThingOutput & { + /** + * A sub property of object. The options subject to this action. Supersedes [`option`](https://schema.org/option). + */ + readonly actionOption?: readonly (string | ThingOutput)[] | undefined; + + /** + * Indicates the current disposition of the Action. + * + * @see https://schema.org/actionStatus + */ + readonly actionStatus?: readonly ActionStatusOutput[] | undefined; + + /** + * The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller. Supersedes [carrier](https://schema.org/carrier). + * + * @see https://schema.org/provider + */ + readonly provider?: readonly ProjectOutput[] | undefined; + + /** + * The result produced in the action. E.g. John wrote *a book*. + */ + readonly result?: readonly (ThingOutput | UserReviewOutput)[] | undefined; +}; + +const actionSchema: GenericSchema = intersect([ + thingSchema, + pipe( + looseObject({ + actionOption: orgSchemaProperties(string()), + actionStatus: orgSchemaProperties(actionStatusSchema), + provider: orgSchemaProperties(lazy(() => projectSchema)), + result: orgSchemaProperties(userReviewSchema) + }), + readonly() + ) +]); + +export { actionSchema, type ActionInput, type ActionOutput }; diff --git a/packages/core/src/types/external/OrgSchema/ActionStatus.ts b/packages/core/src/types/external/OrgSchema/ActionStatus.ts new file mode 100644 index 0000000000..244c7dce36 --- /dev/null +++ b/packages/core/src/types/external/OrgSchema/ActionStatus.ts @@ -0,0 +1,13 @@ +import { picklist, type InferInput, type InferOutput } from 'valibot'; + +const actionStatusSchema = picklist([ + 'ActiveActionStatus', + 'CompletedActionStatus', + 'FailedActionStatus', + 'PotentialActionStatus' +]); + +type ActionStatusInput = InferInput; +type ActionStatusOutput = InferOutput; + +export { actionStatusSchema, type ActionStatusInput, type ActionStatusOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Claim.spec.ts b/packages/core/src/types/external/OrgSchema/Claim.spec.ts index a409826118..5a38e9e51e 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.spec.ts @@ -1,9 +1,11 @@ -import { parseClaim } from './Claim'; +import { describe, expect, test } from '@jest/globals'; +import { parse } from 'valibot'; +import { claimSchema } from './Claim'; describe('Claim', () => { test('should parse appearance', () => expect( - parseClaim({ + parse(claimSchema, { '@type': 'Claim', appearance: { '@type': 'Book', @@ -20,7 +22,7 @@ describe('Claim', () => { test('should parse claimInterpreter', () => expect( - parseClaim({ + parse(claimSchema, { '@type': 'Claim', claimInterpreter: { '@type': 'Project', @@ -37,9 +39,12 @@ describe('Claim', () => { describe('should parse position', () => { test('as a number', () => - expect(parseClaim({ '@type': 'Claim', position: 1 })).toEqual({ '@type': 'Claim', position: 1 })); + expect(parse(claimSchema, { '@type': 'Claim', position: 1 })).toEqual({ '@type': 'Claim', position: 1 })); test('as a string', () => - expect(parseClaim({ '@type': 'Claim', position: 'First' })).toEqual({ '@type': 'Claim', position: 'First' })); + expect(parse(claimSchema, { '@type': 'Claim', position: 'First' })).toEqual({ + '@type': 'Claim', + position: 'First' + })); }); }); diff --git a/packages/core/src/types/external/OrgSchema/Claim.ts b/packages/core/src/types/external/OrgSchema/Claim.ts index 68a6a751ab..7b68c5fa00 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.ts @@ -1,8 +1,8 @@ -import { lazy, parse, type ObjectEntries } from 'valibot'; +import { intersect, lazy, looseObject, pipe, readonly, type GenericSchema } from 'valibot'; -import { creativeWork, type CreativeWork } from './CreativeWork'; -import { project, type Project } from './Project'; -import orgSchemaProperty from './private/orgSchemaProperty'; +import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; +import { projectSchema, type ProjectInput, type ProjectOutput } from './Project'; +import orgSchemaProperties from './private/orgSchemaProperties'; /** * A [Claim](https://schema.org/Claim) in Schema.org represents a specific, factually-oriented claim that could be the [itemReviewed](https://schema.org/itemReviewed) in a [ClaimReview](https://schema.org/ClaimReview). The content of a claim can be summarized with the [text](https://schema.org/text) property. Variations on well known claims can have their common identity indicated via [sameAs](https://schema.org/sameAs) links, and summarized with a name. Ideally, a [Claim](https://schema.org/Claim) description includes enough contextual information to minimize the risk of ambiguity or inclarity. In practice, many claims are better understood in the context in which they appear or the interpretations provided by claim reviews. @@ -13,28 +13,56 @@ import orgSchemaProperty from './private/orgSchemaProperty'; * * @see https://schema.org/Claim. */ -export type Claim = CreativeWork & { +type ClaimInput = CreativeWorkInput & { /** * Indicates an occurrence of a [Claim](https://schema.org/Claim) in some [CreativeWork](https://schema.org/CreativeWork). * * @see https://schema.org/appearance. */ - appearance?: CreativeWork | undefined; + readonly appearance?: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; /** * For a [Claim](https://schema.org/Claim) interpreted from [MediaObject](https://schema.org/MediaObject) content sed to indicate a claim contained, implied or refined from the content of a [MediaObject](https://schema.org/MediaObject). * * @see https://schema.org/claimInterpreter. */ - claimInterpreter?: Project | undefined; + readonly claimInterpreter?: ProjectInput | readonly ProjectInput[] | undefined; }; -export const claim = (entries?: TEntries | undefined) => - creativeWork({ - appearance: orgSchemaProperty(lazy(() => creativeWork())), - claimInterpreter: orgSchemaProperty(lazy(() => project())), +/** + * A [Claim](https://schema.org/Claim) in Schema.org represents a specific, factually-oriented claim that could be the [itemReviewed](https://schema.org/itemReviewed) in a [ClaimReview](https://schema.org/ClaimReview). The content of a claim can be summarized with the [text](https://schema.org/text) property. Variations on well known claims can have their common identity indicated via [sameAs](https://schema.org/sameAs) links, and summarized with a name. Ideally, a [Claim](https://schema.org/Claim) description includes enough contextual information to minimize the risk of ambiguity or inclarity. In practice, many claims are better understood in the context in which they appear or the interpretations provided by claim reviews. + * + * Beyond [ClaimReview](https://schema.org/ClaimReview), the Claim type can be associated with related creative works - for example a [ScholarlyArticle](https://schema.org/ScholarlyArticle) or [Question](https://schema.org/Question) might be about some [Claim](https://schema.org/Claim). + * + * This is partial implementation of https://schema.org/Claim. + * + * @see https://schema.org/Claim. + */ +type ClaimOutput = CreativeWorkOutput & { + /** + * Indicates an occurrence of a [Claim](https://schema.org/Claim) in some [CreativeWork](https://schema.org/CreativeWork). + * + * @see https://schema.org/appearance. + */ + readonly appearance?: readonly CreativeWorkOutput[] | undefined; + + /** + * For a [Claim](https://schema.org/Claim) interpreted from [MediaObject](https://schema.org/MediaObject) content sed to indicate a claim contained, implied or refined from the content of a [MediaObject](https://schema.org/MediaObject). + * + * @see https://schema.org/claimInterpreter. + */ + readonly claimInterpreter?: readonly ProjectOutput[] | undefined; +}; - ...entries - }); +const claimSchema: GenericSchema = intersect([ + creativeWorkSchema, + pipe( + looseObject({ + appearance: orgSchemaProperties(lazy(() => creativeWorkSchema)), + claimInterpreter: orgSchemaProperties(lazy(() => projectSchema)) + }), + readonly() + ) +]); -export const parseClaim = (data: unknown): Claim => parse(claim(), data); +export { claimSchema, type ClaimInput, type ClaimOutput }; diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index 6a4225f900..97905b578c 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -1,9 +1,14 @@ -import { lazy, literal, number, object, parse, string, union, type ObjectEntries } from 'valibot'; - -import { definedTerm, type DefinedTerm } from './DefinedTerm'; +import { intersect, lazy, looseObject, number, pipe, readonly, string, union, type GenericSchema } from 'valibot'; + +import { + creativeWorkStatusSchema, + type CreativeWorkStatusInput, + type CreativeWorkStatusOutput +} from './CreativeWorkStatus'; +import { definedTermSchema, type DefinedTermInput, type DefinedTermOutput } from './DefinedTerm'; +import { personSchema, type PersonInput, type PersonOutput } from './Person'; import orgSchemaProperties from './private/orgSchemaProperties'; -import orgSchemaProperty from './private/orgSchemaProperty'; -import { thing, type Thing } from './Thing'; +import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; /** * The most generic kind of creative work, including books, movies, photographs, software programs, etc. @@ -12,110 +17,173 @@ import { thing, type Thing } from './Thing'; * * @see https://schema.org/CreativeWork */ -// Due to limitations of TypeScript, when using valibot.lazy(), the output type must be explicitly set. -export type CreativeWork = Thing & { +type CreativeWorkInput = ThingInput & { /** * An abstract is a short description that summarizes a [CreativeWork](https://schema.org/CreativeWork). * * @see https://schema.org/abstract */ - abstract?: string | undefined; + readonly abstract?: string | readonly string[] | undefined; /** * The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably. * * @see https://schema.org/author */ - author?: Person | string | undefined; + readonly author?: PersonInput | string | readonly (PersonInput | string)[] | undefined; /** * A citation or reference to another creative work, such as another publication, web page, scholarly article, etc. * * @see https://schema.org/citation */ - citation?: readonly CreativeWork[] | undefined; + readonly citation?: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; /** * The status of the creative work, such as whether it is incomplete or published. * * @see https://schema.org/creativeWorkStatus */ - creativeWorkStatus?: 'Incomplete' | 'Published' | undefined; + readonly creativeWorkStatus?: CreativeWorkStatusInput | readonly CreativeWorkStatusInput[] | undefined; /** * The schema.org [isBasedOn](https://schema.org/isBasedOn) property provides a resource from which this work is derived or from which it is a modification or adaptation. */ - isBasedOn?: CreativeWork | undefined; + readonly isBasedOn?: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; /** * Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property. * * @see https://schema.org/keywords */ - keywords?: readonly (DefinedTerm | string)[] | undefined; + readonly keywords: DefinedTermInput | string | readonly (DefinedTermInput | string)[] | undefined; /** * A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported. * * @see https://schema.org/pattern */ - pattern?: DefinedTerm | undefined; + readonly pattern: DefinedTermInput | readonly DefinedTermInput[] | undefined; /** * The position of an item in a series or sequence of items. * * @see https://schema.org/position */ - position?: number; + readonly position: number | string | readonly (number | string)[] | undefined; /** * The textual content of this CreativeWork. * * @see https://schema.org/text */ - text?: string | undefined; + readonly text: string | readonly string[] | undefined; /** * The schema.org [usageInfo](https://schema.org/usageInfo) property indicates further information about a [CreativeWork](https://schema.org/CreativeWork). This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. * * This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses. */ - usageInfo?: CreativeWork | undefined; + readonly usageInfo: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; }; -type Person = { - '@type': 'Person'; - description?: string | undefined; - image?: string | undefined; - name?: string | undefined; +/** + * The most generic kind of creative work, including books, movies, photographs, software programs, etc. + * + * This is partial implementation of https://schema.org/CreativeWork. + * + * @see https://schema.org/CreativeWork + */ +type CreativeWorkOutput = ThingOutput & { + /** + * An abstract is a short description that summarizes a [CreativeWork](https://schema.org/CreativeWork). + * + * @see https://schema.org/abstract + */ + readonly abstract?: readonly string[] | undefined; + + /** + * The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably. + * + * @see https://schema.org/author + */ + readonly author?: readonly (PersonOutput | string)[] | undefined; + + /** + * A citation or reference to another creative work, such as another publication, web page, scholarly article, etc. + * + * @see https://schema.org/citation + */ + readonly citation?: readonly CreativeWorkOutput[] | undefined; + + /** + * The status of the creative work, such as whether it is incomplete or published. + * + * @see https://schema.org/creativeWorkStatus + */ + readonly creativeWorkStatus?: readonly CreativeWorkStatusOutput[] | undefined; + + /** + * The schema.org [isBasedOn](https://schema.org/isBasedOn) property provides a resource from which this work is derived or from which it is a modification or adaptation. + */ + readonly isBasedOn?: readonly CreativeWorkOutput[] | undefined; + + /** + * Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property. + * + * @see https://schema.org/keywords + */ + readonly keywords: readonly (DefinedTermOutput | string)[] | undefined; + + /** + * A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported. + * + * @see https://schema.org/pattern + */ + readonly pattern: readonly DefinedTermOutput[] | undefined; + + /** + * The position of an item in a series or sequence of items. + * + * @see https://schema.org/position + */ + readonly position: readonly (number | string)[] | undefined; + + /** + * The textual content of this CreativeWork. + * + * @see https://schema.org/text + */ + readonly text: readonly string[] | undefined; + + /** + * The schema.org [usageInfo](https://schema.org/usageInfo) property indicates further information about a [CreativeWork](https://schema.org/CreativeWork). This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. + * + * This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses. + */ + readonly usageInfo: readonly CreativeWorkOutput[] | undefined; }; -const person = (entries?: TEntries | undefined) => - object({ - description: orgSchemaProperty(string()), - image: orgSchemaProperty(string()), - name: orgSchemaProperty(string()), - - ...entries - }); - -export const creativeWork = (entries?: TEntries | undefined) => - thing({ - // For forward compatibility, we did not enforce @type must be "CreativeWork" or any other subtypes. - // In future, if Schema.org introduced a new subtype of CreativeWork, we should still able to parse that one as a CreativeWork. - - abstract: orgSchemaProperty(string()), - author: orgSchemaProperty(union([person(), string()])), - citation: orgSchemaProperties(lazy(() => creativeWork())), - creativeWorkStatus: orgSchemaProperty(union([literal('Incomplete'), literal('Published')])), - isBasedOn: orgSchemaProperty(lazy(() => creativeWork())), - keywords: orgSchemaProperties(union([lazy(() => definedTerm()), string()])), - pattern: orgSchemaProperty(lazy(() => definedTerm())), - position: orgSchemaProperty(union([number(), string()])), - text: orgSchemaProperty(string()), - usageInfo: orgSchemaProperty(lazy(() => creativeWork())), - - ...entries - }); - -export const parseCreativeWork = (data: unknown): CreativeWork => parse(creativeWork(), data); +const creativeWorkSchema: GenericSchema = intersect([ + thingSchema, + pipe( + looseObject({ + // For forward compatibility, we did not enforce @type must be "CreativeWork" or any other subtypes. + // In future, if Schema.org introduced a new subtype of CreativeWork, we should still able to parse that one as a CreativeWork. + + abstract: orgSchemaProperties(string()), + author: orgSchemaProperties(union([personSchema, string()])), + citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), + creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), + isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), + keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), + pattern: orgSchemaProperties(lazy(() => definedTermSchema)), + position: orgSchemaProperties(union([number(), string()])), + text: orgSchemaProperties(string()), + usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema)) + }), + readonly() + ) +]); + +export { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput }; diff --git a/packages/core/src/types/external/OrgSchema/CreativeWorkStatus.ts b/packages/core/src/types/external/OrgSchema/CreativeWorkStatus.ts new file mode 100644 index 0000000000..c74413ff70 --- /dev/null +++ b/packages/core/src/types/external/OrgSchema/CreativeWorkStatus.ts @@ -0,0 +1,8 @@ +import { picklist, type InferInput, type InferOutput } from 'valibot'; + +const creativeWorkStatusSchema = picklist(['Incomplete', 'Published']); + +type CreativeWorkStatusInput = InferInput; +type CreativeWorkStatusOutput = InferOutput; + +export { creativeWorkStatusSchema, type CreativeWorkStatusInput, type CreativeWorkStatusOutput }; diff --git a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts index 544fd27f9a..d0000df7a9 100644 --- a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts +++ b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts @@ -1,15 +1,30 @@ -import { parse, string, type ObjectEntries } from 'valibot'; +import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { thing, type Thing } from './Thing'; -import orgSchemaProperty from './private/orgSchemaProperty'; +import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import orgSchemaProperties from './private/orgSchemaProperties'; -export const definedTerm = (entries?: TEntries | undefined) => - thing({ - inDefinedTermSet: orgSchemaProperty(string()), - termCode: orgSchemaProperty(string()), +/** + * A word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term. + * + * This is partial implementation of https://schema.org/DefinedTerm. + * + * @see https://schema.org/DefinedTerm + */ +type DefinedTermInput = ThingInput & { + /** + * A [DefinedTermSet](https://schema.org/DefinedTermSet) that contains this term. + * + * @see https://schema.org/inDefinedTermSet + */ + readonly inDefinedTermSet?: string | readonly string[] | undefined; - ...entries - }); + /** + * A code that identifies this [DefinedTerm](https://schema.org/DefinedTerm) within a [DefinedTermSet](https://schema.org/DefinedTermSet). + * + * @see https://schema.org/termCode + */ + readonly termCode?: string | readonly string[] | undefined; +}; /** * A word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term. @@ -18,20 +33,31 @@ export const definedTerm = (entries?: TEntries | * * @see https://schema.org/DefinedTerm */ -export type DefinedTerm = Thing & { +type DefinedTermOutput = ThingOutput & { /** * A [DefinedTermSet](https://schema.org/DefinedTermSet) that contains this term. * * @see https://schema.org/inDefinedTermSet */ - inDefinedTermSet?: string | undefined; + readonly inDefinedTermSet?: readonly string[] | undefined; /** * A code that identifies this [DefinedTerm](https://schema.org/DefinedTerm) within a [DefinedTermSet](https://schema.org/DefinedTermSet). * * @see https://schema.org/termCode */ - termCode?: string | undefined; + readonly termCode?: readonly string[] | undefined; }; -export const parseDefinedTerm = (data: unknown): DefinedTerm => parse(definedTerm(), data); +const definedTermSchema: GenericSchema = intersect([ + thingSchema, + pipe( + looseObject({ + inDefinedTermSet: orgSchemaProperties(string()), + termCode: orgSchemaProperties(string()) + }), + readonly() + ) +]); + +export { definedTermSchema, type DefinedTermInput, type DefinedTermOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Person.ts b/packages/core/src/types/external/OrgSchema/Person.ts new file mode 100644 index 0000000000..fd6fc5c599 --- /dev/null +++ b/packages/core/src/types/external/OrgSchema/Person.ts @@ -0,0 +1,29 @@ +import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import orgSchemaProperties from './private/orgSchemaProperties'; + +type PersonInput = ThingInput & { + readonly description?: string | readonly string[] | undefined; + readonly image?: string | readonly string[] | undefined; + readonly name?: string | readonly string[] | undefined; +}; + +type PersonOutput = ThingOutput & { + readonly description?: readonly string[] | undefined; + readonly image?: readonly string[] | undefined; + readonly name?: readonly string[] | undefined; +}; + +const personSchema: GenericSchema = intersect([ + thingSchema, + pipe( + looseObject({ + description: orgSchemaProperties(string()), + image: orgSchemaProperties(string()), + name: orgSchemaProperties(string()) + }), + readonly() + ) +]); + +export { personSchema, type PersonInput, type PersonOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Project.ts b/packages/core/src/types/external/OrgSchema/Project.ts index ddaa60b766..b967fb382d 100644 --- a/packages/core/src/types/external/OrgSchema/Project.ts +++ b/packages/core/src/types/external/OrgSchema/Project.ts @@ -1,14 +1,23 @@ -import { parse, string, type ObjectEntries } from 'valibot'; +import { intersect, looseObject, pipe, readonly, string } from 'valibot'; -import { thing, type Thing } from './Thing'; -import orgSchemaProperty from './private/orgSchemaProperty'; +import orgSchemaProperties from './private/orgSchemaProperties'; +import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; -export const project = (entries?: TEntries | undefined) => - thing({ - slogan: orgSchemaProperty(string()), - - ...entries - }); +/** + * An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim. Use properties from [Organization](https://schema.org/Organization), [subOrganization](https://schema.org/subOrganization)/[parentOrganization](https://schema.org/parentOrganization) to indicate project sub-structures. + * + * This is partial implementation of https://schema.org/Project. + * + * @see https://schema.org/Project + */ +type ProjectInput = ThingInput & { + /** + * A slogan or motto associated with the item. + * + * @see https://schema.org/slogan + */ + readonly slogan: string | readonly string[] | undefined; +}; /** * An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim. Use properties from [Organization](https://schema.org/Organization), [subOrganization](https://schema.org/subOrganization)/[parentOrganization](https://schema.org/parentOrganization) to indicate project sub-structures. @@ -17,13 +26,35 @@ export const project = (entries?: TEntries | und * * @see https://schema.org/Project */ -export type Project = Thing & { +type ProjectOutput = ThingOutput & { /** * A slogan or motto associated with the item. * * @see https://schema.org/slogan */ - slogan?: string | undefined; + readonly slogan: readonly string[] | undefined; }; -export const parseProject = (data: unknown): Project => parse(project(), data); +/** + * An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim. Use properties from [Organization](https://schema.org/Organization), [subOrganization](https://schema.org/subOrganization)/[parentOrganization](https://schema.org/parentOrganization) to indicate project sub-structures. + * + * This is partial implementation of https://schema.org/Project. + * + * @see https://schema.org/Project + */ +const projectSchema = intersect([ + thingSchema, + pipe( + looseObject({ + /** + * A slogan or motto associated with the item. + * + * @see https://schema.org/slogan + */ + slogan: orgSchemaProperties(string()) + }), + readonly() + ) +]); + +export { projectSchema, type ProjectInput, type ProjectOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts b/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts index d42a302c5f..a0fbdf8de7 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts @@ -1,9 +1,11 @@ -import { parseThing } from './Thing'; +import { describe, expect, test } from '@jest/globals'; +import { parse } from 'valibot'; +import { thingSchema } from './Thing'; describe('Thing', () => { test('should parse', () => { expect( - parseThing({ + parse(thingSchema, { '@type': 'Thing', name: 'John Doe' }) @@ -15,7 +17,7 @@ describe('Thing', () => { test('should parse unknown @type', () => { expect( - parseThing({ + parse(thingSchema, { '@type': 'Unknown', name: 'John Doe' }) @@ -30,7 +32,7 @@ describe('Thing', () => { // If unknown properties are removed, we will remove properties that are solely for CreativeWork. test('should not remove unknown properties', () => { expect( - parseThing({ + parse(thingSchema, { '@type': 'Thing', something: 1 }) @@ -42,7 +44,7 @@ describe('Thing', () => { test('should set invalid properties to undefined', () => { expect( - parseThing({ + parse(thingSchema, { '@type': 'Thing', name: 1 }) diff --git a/packages/core/src/types/external/OrgSchema/Thing.ts b/packages/core/src/types/external/OrgSchema/Thing.ts index 47f0ed518e..9b303df61f 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.ts @@ -1,10 +1,7 @@ -import { type EmptyObject } from 'type-fest'; -import { lazy, literal, looseObject, optional, parse, pipe, string, type ObjectEntries } from 'valibot'; +import { lazy, literal, looseObject, optional, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { action, type Action } from './Action'; -import { creativeWork, type CreativeWork } from './CreativeWork'; import orgSchemaProperties from './private/orgSchemaProperties'; -import orgSchemaProperty from './private/orgSchemaProperty'; +import { actionSchema, type ActionInput, type ActionOutput } from './Action'; /** * The most generic type of item. @@ -13,88 +10,154 @@ import orgSchemaProperty from './private/orgSchemaProperty'; * * @see https://schema.org/Thing */ -export type Thing = { - '@context'?: 'https://schema.org' | undefined; - '@id'?: string | undefined; - '@type': string; +type ThingInput = { + readonly '@context'?: 'https://schema.org' | undefined; + readonly '@id'?: string | undefined; + readonly '@type'?: string | undefined; /** * An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org [style guide](https://schema.org/docs/styleguide.html). * * @see https://schema.org/additionalType */ - additionalType?: string | undefined; + readonly additionalType?: string | readonly string[] | undefined; /** * An alias for the item. * * @see https://schema.org/alternateName */ - alternateName?: string | undefined; + readonly alternateName?: string | readonly string[] | undefined; /** * A description of the item. * * @see https://schema.org/description */ - description?: string | undefined; + readonly description?: string | readonly string[] | undefined; /** * The name of the item. * * @see https://schema.org/name */ - name?: string | undefined; + readonly name?: string | readonly string[] | undefined; /** * Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role. * * @see https://schema.org/potentialAction */ - potentialAction?: readonly Action[] | undefined; + readonly potentialAction?: ActionInput | readonly ActionInput[] | undefined; /** * URL of the item. * * @see https://schema.org/url */ - url?: string | undefined; + readonly url?: string | readonly string[] | undefined; /** * Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. * * @see https://schema.org/isPartOf */ - isPartOf?: CreativeWork | undefined; + readonly isPartOf?: ThingInput | readonly ThingInput[] | undefined; }; -const thingEntries = { - '@context': optional(pipe(string(), literal('https://schema.org'))), - '@id': optional(string()), - '@type': string(), - - additionalType: orgSchemaProperty(string()), - alternateName: orgSchemaProperty(string()), - description: orgSchemaProperty(string()), - isPartOf: orgSchemaProperty(lazy(() => creativeWork())), - name: orgSchemaProperty(string()), - potentialAction: orgSchemaProperties(lazy(() => action())), - url: orgSchemaProperty(string()) +/** + * The most generic type of item. + * + * This is partial implementation of https://schema.org/Thing. + * + * @see https://schema.org/Thing + */ +type ThingOutput = { + readonly '@context'?: 'https://schema.org' | undefined; + readonly '@id'?: string | undefined; + readonly '@type'?: string | undefined; + + /** + * An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org [style guide](https://schema.org/docs/styleguide.html). + * + * @see https://schema.org/additionalType + */ + readonly additionalType?: readonly string[] | undefined; + + /** + * An alias for the item. + * + * @see https://schema.org/alternateName + */ + readonly alternateName?: readonly string[] | undefined; + + /** + * A description of the item. + * + * @see https://schema.org/description + */ + readonly description?: readonly string[] | undefined; + + /** + * The name of the item. + * + * @see https://schema.org/name + */ + readonly name?: readonly string[] | undefined; + + /** + * Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role. + * + * @see https://schema.org/potentialAction + */ + readonly potentialAction?: readonly ActionOutput[] | undefined; + + /** + * URL of the item. + * + * @see https://schema.org/url + */ + readonly url?: readonly string[] | undefined; + + /** + * Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. + * + * @see https://schema.org/isPartOf + */ + readonly isPartOf?: readonly ThingOutput[] | undefined; }; -export const thing = (entries?: TEntries | undefined) => - // Forward compatibility is the reason why we use unknown() here and not adhere to JSON-LD which drop unknown fields. +/** + * The most generic type of item. + * + * This is partial implementation of https://schema.org/Thing. + * + * @see https://schema.org/Thing + */ +const thingSchema: GenericSchema = + // Forward compatibility is the reason why we use looseObject() here and not adhere to JSON-LD which drop unknown fields. // // Example: // - CreativeWork.editor must be type of Person (or any of its subtypes, Patient) - // - Without unknown(), when we parse the CreativeWork, we will drop Patient.diagnosis + // - Without looseObject(), when we parse the CreativeWork, we will drop Patient.diagnosis // - That means, CreativeWork.editor.diagnosis will be unset despite CreativeWork.editor is of type Patient // - // We can drop unknown() if there is a way to keep CreativeWork.editor.diagnosis. + // We can drop looseObject() if there is a way to keep CreativeWork.editor.diagnosis. // It is okay to drop future/unsupported properties. But not today/supported properties. - looseObject({ - ...thingEntries, - ...entries - }); + pipe( + looseObject({ + '@context': optional(pipe(literal('https://schema.org'))), + '@id': optional(string()), + '@type': string(), + additionalType: orgSchemaProperties(string()), + alternateName: orgSchemaProperties(string()), + description: orgSchemaProperties(string()), + isPartOf: orgSchemaProperties(lazy(() => thingSchema)), + name: orgSchemaProperties(string()), + potentialAction: orgSchemaProperties(lazy(() => actionSchema)), + url: orgSchemaProperties(string()) + }), + readonly() + ); -export const parseThing = (data: unknown): Thing => parse(thing(), data); +export { thingSchema, type ThingInput, type ThingOutput }; diff --git a/packages/core/src/types/external/OrgSchema/UserReview.ts b/packages/core/src/types/external/OrgSchema/UserReview.ts index 8ce5d9c322..90506e9c70 100644 --- a/packages/core/src/types/external/OrgSchema/UserReview.ts +++ b/packages/core/src/types/external/OrgSchema/UserReview.ts @@ -1,7 +1,7 @@ -import { parse, string, type ObjectEntries } from 'valibot'; +import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperty from './private/orgSchemaProperty'; -import { thing, type Thing } from './Thing'; +import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; /** * A review created by an end-user (e.g. consumer, purchaser, attendee etc.), in contrast with [`CriticReview`](https://schema.org/CriticReview). @@ -10,18 +10,35 @@ import { thing, type Thing } from './Thing'; * * @see https://schema.org/UserReview */ -export type UserReview = Thing & { +type UserReviewInput = ThingInput & { /** * This Review or Rating is relevant to this part or facet of the itemReviewed. */ - reviewAspect?: string | undefined; + readonly reviewAspect?: string | readonly string[] | undefined; }; -export const userReview = (entries?: TEntries | undefined) => - thing({ - reviewAspect: orgSchemaProperty(string()), +/** + * A review created by an end-user (e.g. consumer, purchaser, attendee etc.), in contrast with [`CriticReview`](https://schema.org/CriticReview). + * + * This is partial implementation of https://schema.org/UserReview. + * + * @see https://schema.org/UserReview + */ +type UserReviewOutput = ThingOutput & { + /** + * This Review or Rating is relevant to this part or facet of the itemReviewed. + */ + readonly reviewAspect?: string | readonly string[] | undefined; +}; - ...entries - }); +const userReviewSchema: GenericSchema = intersect([ + thingSchema, + pipe( + looseObject({ + reviewAspect: orgSchemaProperty(string()) + }), + readonly() + ) +]); -export const parseUserReview = (data: unknown): UserReview => parse(userReview(), data); +export { userReviewSchema, type UserReviewInput, type UserReviewOutput }; diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.ts b/packages/core/src/types/external/OrgSchema/VoteAction.ts index 481eb08e64..ba31f9be02 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.ts @@ -1,7 +1,7 @@ -import { parse, string, type ObjectEntries } from 'valibot'; +import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { action, type Action } from './Action'; -import orgSchemaProperty from './private/orgSchemaProperty'; +import { actionSchema, type ActionInput, type ActionOutput } from './Action'; +import orgSchemaProperties from './private/orgSchemaProperties'; /** * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role. @@ -12,20 +12,41 @@ import orgSchemaProperty from './private/orgSchemaProperty'; * * @see https://schema.org/Action */ -export type VoteAction = Action & { +type VoteActionInput = ActionInput & { /** * A sub property of object. The options subject to this action. Supersedes [option](https://schema.org/option). * * @see https://schema.org/VoteAction */ - actionOption?: string | undefined; + readonly actionOption?: string | readonly string[] | undefined; }; -export const voteAction = (entries?: TEntries | undefined) => - action({ - actionOption: orgSchemaProperty(string()), +/** + * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role. + * + * See also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html). + * + * This is partial implementation of https://schema.org/Action. + * + * @see https://schema.org/Action + */ +type VoteActionOutput = ActionOutput & { + /** + * A sub property of object. The options subject to this action. Supersedes [option](https://schema.org/option). + * + * @see https://schema.org/VoteAction + */ + readonly actionOption?: readonly string[] | undefined; +}; - ...entries - }); +const voteActionSchema: GenericSchema = intersect([ + actionSchema, + pipe( + looseObject({ + actionOption: orgSchemaProperties(string()) + }), + readonly() + ) +]); -export const parseVoteAction = (data: unknown): VoteAction => parse(voteAction(), data); +export { voteActionSchema, type VoteActionInput, type VoteActionOutput }; diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts index 66d0e1f9d5..eb25caff33 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals'; import { parse, string } from 'valibot'; import orgSchemaProperties from './orgSchemaProperties'; diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts index 2ed9d6ae50..4775340590 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts @@ -4,24 +4,31 @@ import { parse, pipe, transform, - type ArraySchema, type BaseSchema, - type UndefinedSchema + type Fallback, + type GenericSchema, + type InferInput, + type InferOutput } from 'valibot'; -import orgSchemaProperty from './orgSchemaProperty'; +type SingularToArraySchema> = GenericSchema< + InferInput | InferInput[] | undefined, + InferOutput[] | undefined +>; const singularToArray = >( schema: T -): ArraySchema | UndefinedSchema => - fallback( +): GenericSchema | InferInput[] | undefined, InferOutput[] | undefined> => + fallback, Fallback>>( pipe( array(schema), transform(value => value.filter(value => typeof value !== 'undefined')) ), - value => (value?.value ? [parse(schema, value?.value)] : undefined) + value => (value?.value ? [parse(schema, value?.value) as InferOutput] : undefined) ); -export default function orgSchemaProperties>(schema: T) { - return singularToArray(orgSchemaProperty(schema)); +export default function orgSchemaProperties>( + schema: T +): GenericSchema | readonly InferInput[] | undefined, readonly InferOutput[] | undefined> { + return singularToArray(schema); } diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts index a0eec9f423..8495ccf4ab 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals'; import { parse, string } from 'valibot'; import orgSchemaProperty from './orgSchemaProperty'; diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts index ef6e8f16c4..e3821a03ab 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts @@ -1,7 +1,23 @@ -import { array, fallback, optional, pipe, transform, union, type BaseSchema } from 'valibot'; +import { + array, + fallback, + optional, + pipe, + transform, + union, + type BaseSchema, + type Fallback, + type GenericSchema, + type InferOutput +} from 'valibot'; -const orgSchemaProperty = >(schema: T) => - fallback( +type ArrayToSingularSchema> = GenericSchema< + InferOutput | InferOutput[] | undefined, + InferOutput | undefined +>; + +const orgSchemaProperty = >(schema: T): ArrayToSingularSchema => + fallback, Fallback>>( optional( union([ pipe( diff --git a/packages/core/src/types/external/OrgSchema/types.ts b/packages/core/src/types/external/OrgSchema/types.ts new file mode 100644 index 0000000000..bd0574f652 --- /dev/null +++ b/packages/core/src/types/external/OrgSchema/types.ts @@ -0,0 +1,15 @@ +export type Inputize< + T extends { + [key in keyof T]?: T[key] extends ReadonlyArray | Array ? never : T[key]; + } +> = { + [key in keyof T]+?: key extends `@${string}` ? T[key] | undefined : T[key] | readonly T[key][] | undefined; +}; + +export type Outputize< + T extends { + [key in keyof T]?: T[key] extends ReadonlyArray | Array ? never : T[key]; + } +> = { + [key in keyof T]+?: key extends `@${string}` ? T[key] | undefined : readonly T[key][] | undefined; +}; diff --git a/packages/core/src/types/internal/GlobalScopeClock.ts b/packages/core/src/types/internal/GlobalScopeClock.ts index 97c4b64f7f..23b2a1733b 100644 --- a/packages/core/src/types/internal/GlobalScopeClock.ts +++ b/packages/core/src/types/internal/GlobalScopeClock.ts @@ -1,24 +1,24 @@ export type GlobalScopeClock = { // eslint-disable-next-line no-restricted-globals - cancelAnimationFrame?: typeof cancelAnimationFrame; + cancelAnimationFrame?: typeof cancelAnimationFrame | undefined; // eslint-disable-next-line no-restricted-globals - cancelIdleCallback?: typeof cancelIdleCallback; + cancelIdleCallback?: typeof cancelIdleCallback | undefined; // eslint-disable-next-line no-restricted-globals - clearImmediate?: typeof clearImmediate; + clearImmediate?: typeof clearImmediate | undefined; // eslint-disable-next-line no-restricted-globals - clearInterval: typeof clearInterval; + clearInterval?: typeof clearInterval | undefined; // eslint-disable-next-line no-restricted-globals - clearTimeout: typeof clearTimeout; + clearTimeout?: typeof clearTimeout | undefined; // eslint-disable-next-line no-restricted-globals Date: typeof Date; // eslint-disable-next-line no-restricted-globals - requestAnimationFrame?: typeof requestAnimationFrame; + requestAnimationFrame?: typeof requestAnimationFrame | undefined; // eslint-disable-next-line no-restricted-globals - requestIdleCallback?: typeof requestIdleCallback; + requestIdleCallback?: typeof requestIdleCallback | undefined; // eslint-disable-next-line no-restricted-globals - setImmediate?: typeof setImmediate; + setImmediate?: typeof setImmediate | undefined; // eslint-disable-next-line no-restricted-globals - setInterval: typeof setInterval; + setInterval?: typeof setInterval | undefined; // eslint-disable-next-line no-restricted-globals - setTimeout: typeof setTimeout; + setTimeout?: typeof setTimeout | undefined; }; diff --git a/packages/core/src/utils/getOrgSchemaMessage.ts b/packages/core/src/utils/getOrgSchemaMessage.ts index 69308575ee..431154f99c 100644 --- a/packages/core/src/utils/getOrgSchemaMessage.ts +++ b/packages/core/src/utils/getOrgSchemaMessage.ts @@ -1,21 +1,22 @@ +import { parse } from 'valibot'; +import { creativeWorkSchema, type CreativeWorkOutput } from '../types/external/OrgSchema/CreativeWork'; +import { thingSchema } from '../types/external/OrgSchema/Thing'; import { type WebChatActivity } from '../types/WebChatActivity'; -import { parseCreativeWork, type CreativeWork } from '../types/external/OrgSchema/CreativeWork'; -import { parseThing } from '../types/external/OrgSchema/Thing'; type EntityType = NonNullable[number]; -export default function getOrgSchemaMessage(graph: readonly EntityType[]): CreativeWork | undefined { +export default function getOrgSchemaMessage(graph: readonly EntityType[]): CreativeWorkOutput | undefined { const messageEntity = (graph || []).find(entity => { const isThing = entity.type?.startsWith('https://schema.org/'); if (isThing) { - const thing = parseThing(entity); + const thing = parse(thingSchema, entity); return thing['@id'] === ''; } }); - const message = messageEntity && parseCreativeWork(messageEntity); + const message = messageEntity && parse(creativeWorkSchema, messageEntity); - return message && parseCreativeWork(message); + return message && parse(creativeWorkSchema, message); } From 246f2dfb6b4f3423fb3a98986353ebf691b21691 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 11:24:10 +0000 Subject: [PATCH 09/59] Fix stream info coalesce --- packages/core/src/utils/getActivityLivestreamingMetadata.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/utils/getActivityLivestreamingMetadata.ts b/packages/core/src/utils/getActivityLivestreamingMetadata.ts index 0a2e6cd918..30f211c2a6 100644 --- a/packages/core/src/utils/getActivityLivestreamingMetadata.ts +++ b/packages/core/src/utils/getActivityLivestreamingMetadata.ts @@ -63,7 +63,8 @@ function eitherChannelDataOrEntities< check(value => !!value) ) }), - transform(({ entities, ...value }) => ({ ...value, streamInfoEntity: entities })) + // This is quite hacky, we should not mutate the parse output to ease metadata extractions. + transform(({ entities, ...value }) => ({ ...value, streamInfoEntity: entities! })) ) ]); } From 7bec325987564521395679ca4c024e21c25f3e6d Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 11:26:22 +0000 Subject: [PATCH 10/59] Fix types and add comment --- packages/core/src/types/external/Observable.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/core/src/types/external/Observable.ts b/packages/core/src/types/external/Observable.ts index da0649de4f..a03e70b44e 100644 --- a/packages/core/src/types/external/Observable.ts +++ b/packages/core/src/types/external/Observable.ts @@ -1,6 +1,9 @@ // This is a declaration file for a single ES feature. Could contains multiple classes definitions. /* eslint-disable max-classes-per-file */ +// TODO: Align with final proposal at https://wicg.github.io/observable/. +// For example, this signature missed `addTeardown`. + // Adopted from https://github.com/tc39/proposal-observable. /** Receives a completion notification */ @@ -39,7 +42,7 @@ declare class Subscription { */ declare class Observer { /** Receives the subscription object when `subscribe` is called */ - start(subscription: Subscription); + start(subscription: Subscription): void; /** Receives the next value in the sequence */ next: NextFunction; From 0bb98fba9d8e2ffb60ba73277fb148b70e67944f Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 11:29:58 +0000 Subject: [PATCH 11/59] Add types --- packages/api/src/defaultStyleOptions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/src/defaultStyleOptions.ts b/packages/api/src/defaultStyleOptions.ts index e9ea89c7f9..dba3e6275b 100644 --- a/packages/api/src/defaultStyleOptions.ts +++ b/packages/api/src/defaultStyleOptions.ts @@ -1,7 +1,7 @@ /* eslint no-magic-numbers: "off" */ import StyleOptions from './StyleOptions'; -function fontFamily(fonts) { +function fontFamily(fonts: readonly string[]): string { return fonts.map(font => `'${font}'`).join(', '); } From 4da571a4ea3d7c0f6fd272d40963787b43d5da92 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 11:47:01 +0000 Subject: [PATCH 12/59] Add undefined --- packages/api/src/StyleOptions.ts | 432 +++++++++++++++---------------- 1 file changed, 216 insertions(+), 216 deletions(-) diff --git a/packages/api/src/StyleOptions.ts b/packages/api/src/StyleOptions.ts index 2664030055..de89993994 100644 --- a/packages/api/src/StyleOptions.ts +++ b/packages/api/src/StyleOptions.ts @@ -6,37 +6,37 @@ type StyleOptions = { */ /** Web Chat component accent color */ - accent?: string; + accent?: string | undefined; /** * Transcript background color */ - backgroundColor?: string; + backgroundColor?: string | undefined; /** * Secondary component color */ - subtle?: string; + subtle?: string | undefined; /** * Default padding used in most visual components */ - paddingRegular?: number; + paddingRegular?: number | undefined; /** * Padding used for suggestedAction buttons */ - paddingWide?: number; + paddingWide?: number | undefined; /** * The duration to be used for transitions */ - transitionDuration?: string; + transitionDuration?: string | undefined; /** * The easing function to be used for transitions */ - transitionEasing?: string; + transitionEasing?: string | undefined; /** * Fonts @@ -46,28 +46,28 @@ type StyleOptions = { /** * Font size used for secondary components such as sendStatus */ - fontSizeSmall?: number | string; + fontSizeSmall?: number | string | undefined; /** * Font used for ErrorBox * comma-space separated string */ - monospaceFont?: string; + monospaceFont?: string | undefined; /** * Font used in most visual components * comma-space separated string */ - primaryFont?: string; + primaryFont?: string | undefined; - rootHeight?: number | string; + rootHeight?: number | string | undefined; - rootWidth?: number | string; + rootWidth?: number | string | undefined; /** * "z-index" for the root container of Web Chat. This will form a new stacking context so "z-index" used in children won't pollute. */ - rootZIndex?: number; + rootZIndex?: number | undefined; /** * Avatar styling @@ -76,46 +76,46 @@ type StyleOptions = { /** * Border radius used for both bot and user avatar */ - avatarBorderRadius?: number | string; + avatarBorderRadius?: number | string | undefined; /** * Height and width of avatar */ - avatarSize?: number; + avatarSize?: number | undefined; /** * Background color defaults to accent */ - botAvatarBackgroundColor?: string; + botAvatarBackgroundColor?: string | undefined; /** * URL string. Can be data URI or blob * botAvatarInitials must be set to empty string */ - botAvatarImage?: string; + botAvatarImage?: string | undefined; /** * Typically rendered as two letters, e.g. 'WC' * Empty string is required when setting botAvatarImage */ - botAvatarInitials?: string; + botAvatarInitials?: string | undefined; /** * Background color defaults to accent */ - userAvatarBackgroundColor?: string; + userAvatarBackgroundColor?: string | undefined; /** * URL string. Can be data URI or blob * userAvatarInitials must be set to empty string */ - userAvatarImage?: string; + userAvatarImage?: string | undefined; /** * Typically rendered as two letters, i.e. 'WC' * Empty string is required when setting userAvatarImage */ - userAvatarInitials?: string; + userAvatarInitials?: string | undefined; /** * Avatar grouping can be set at 3 different levels: @@ -123,23 +123,23 @@ type StyleOptions = { * Show avatar on activities sharing the same status ('status'; default) * Show avatar on every activity (true) */ - showAvatarInGroup?: true | 'sender' | 'status'; + showAvatarInGroup?: true | 'sender' | 'status' | undefined; /** * Bubble styling * 'Bubble' refers to the container of the activit(ies) from the bot and user. Below, non-'fromUser' props refer to styling for the bot activities. */ - bubbleBackground?: string; - bubbleBorderColor?: string; - bubbleBorderRadius?: number; - bubbleBorderStyle?: string; - bubbleBorderWidth?: number; - bubbleFromUserBackground?: string; - bubbleFromUserBorderColor?: string; - bubbleFromUserBorderRadius?: number; - bubbleFromUserBorderStyle?: string; - bubbleFromUserBorderWidth?: number; + bubbleBackground?: string | undefined; + bubbleBorderColor?: string | undefined; + bubbleBorderRadius?: number | undefined; + bubbleBorderStyle?: string | undefined; + bubbleBorderWidth?: number | undefined; + bubbleFromUserBackground?: string | undefined; + bubbleFromUserBorderColor?: string | undefined; + bubbleFromUserBorderRadius?: number | undefined; + bubbleFromUserBorderStyle?: string | undefined; + bubbleFromUserBorderWidth?: number | undefined; /** * Nub offset 'bottom' will render nub at the bottom @@ -147,14 +147,14 @@ type StyleOptions = { * "top" is equivalent to positive zero. * "bottom" is equivalent to negative zero. */ - bubbleFromUserNubOffset?: number | 'bottom' | 'top'; + bubbleFromUserNubOffset?: number | 'bottom' | 'top' | undefined; /** * Nub size 0 will render a sharp corner */ - bubbleFromUserNubSize?: number; + bubbleFromUserNubSize?: number | undefined; - bubbleFromUserTextColor?: string; + bubbleFromUserTextColor?: string | undefined; /** * Specifies the fixed height of the bubble for image, default to unset. @@ -191,7 +191,7 @@ type StyleOptions = { bubbleMessageMaxWidth?: number | undefined; bubbleMessageMinWidth?: number | undefined; - bubbleMinHeight?: number; + bubbleMinHeight?: number | undefined; /** * Nub offset ''bottom' will render nub at the bottom @@ -199,33 +199,33 @@ type StyleOptions = { * "top" is equivalent to positive zero. * "bottom" is equivalent to negative zero. */ - bubbleNubOffset?: number | 'bottom' | 'top'; + bubbleNubOffset?: number | 'bottom' | 'top' | undefined; /** * Nub size 0 will render a sharp corner */ - bubbleNubSize?: number; + bubbleNubSize?: number | undefined; - bubbleTextColor?: string; + bubbleTextColor?: string | undefined; - messageActivityWordBreak?: 'normal' | 'break-all' | 'break-word' | 'keep-all'; + messageActivityWordBreak?: 'normal' | 'break-all' | 'break-word' | 'keep-all' | undefined; /** * Connectivity UI styling */ - connectivityIconPadding?: number; - connectivityMarginLeftRight?: number; - connectivityMarginTopBottom?: number; - connectivityTextSize?: number | string; - failedConnectivity?: number | string; - slowConnectivity?: string; - notificationText?: string; + connectivityIconPadding?: number | undefined; + connectivityMarginLeftRight?: number | undefined; + connectivityMarginTopBottom?: number | undefined; + connectivityTextSize?: number | string | undefined; + failedConnectivity?: number | string | undefined; + slowConnectivity?: string | undefined; + notificationText?: string | undefined; /** * Slow connection status will render after x amount of time with no service response */ - slowConnectionAfter?: number; + slowConnectionAfter?: number | undefined; /** * Emoji styling @@ -234,19 +234,19 @@ type StyleOptions = { * key: emoticon * value: unicode emoji */ - emojiSet?: boolean | Record; + emojiSet?: boolean | Record | undefined; /** * Live region - Accessibility * New activities will be rendered in the non-visual live region and removed after a certain amount of time. Modify this property to change fade time. */ - internalLiveRegionFadeAfter?: number; + internalLiveRegionFadeAfter?: number | undefined; /** * Markdown styling * Parse markdown to ensure carriage return is respected */ - markdownRespectCRLF?: boolean; + markdownRespectCRLF?: boolean | undefined; /** * Render HTML inside Markdown. @@ -255,12 +255,12 @@ type StyleOptions = { * * New in 4.17: This option is enabled by default. */ - markdownRenderHTML?: boolean; + markdownRenderHTML?: boolean | undefined; /** * Assign new image for anchor links to indicate external */ - markdownExternalLinkIconImage?: string; + markdownExternalLinkIconImage?: string | undefined; /** * Scroll behavior styling @@ -272,36 +272,36 @@ type StyleOptions = { * @deprecated Since 4.14.0: To hide the scroll to end button, please set `scrollToEndButtonBehavior` to `false`. */ // TODO: [P4] Will be removed on or after 2023-06-02. - hideScrollToEndButton?: boolean; + hideScrollToEndButton?: boolean | undefined; /** * Snap to activity to 'snap-point' * If true, scrolling will pause after 1 activity is received. * Specifying a number will pause after X number of activities */ - autoScrollSnapOnActivity?: boolean | number; + autoScrollSnapOnActivity?: boolean | number | undefined; /** * Specify number of pixels to overscroll or underscroll after pause */ - autoScrollSnapOnActivityOffset?: number; + autoScrollSnapOnActivityOffset?: number | undefined; /** * If true, scrolling will pause after activities have filled the page. * Specifying a number (0 to 1) will pause after % of page is filled */ - autoScrollSnapOnPage?: boolean | number; + autoScrollSnapOnPage?: boolean | number | undefined; /** * Specify number of pixels to overscroll or underscroll after pause */ - autoScrollSnapOnPageOffset?: number; + autoScrollSnapOnPageOffset?: number | undefined; /** * Send box styling */ - hideSendBox?: boolean; + hideSendBox?: boolean | undefined; /** * Indicates if the upload file button should be hidden. @@ -310,7 +310,7 @@ type StyleOptions = { * * @deprecated deprecated since 4.18.0: obsolated by {@linkcode disableFileUpload}. This option will be removed on or after 2027-07-14. */ - hideUploadButton?: boolean; + hideUploadButton?: boolean | undefined; /** * (EXPERIMENTAL) `true`, if the telephone keypad button should be shown, otherwise, `false`. Defaults to `true`. @@ -319,152 +319,152 @@ type StyleOptions = { */ hideTelephoneKeypadButton?: boolean | undefined; - microphoneButtonColorOnDictate?: string; - sendBoxBackground?: string; + microphoneButtonColorOnDictate?: string | undefined; + sendBoxBackground?: string | undefined; /** * The comma-delimited file types that the upload button should accept. * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept * @example 'image/*,.pdf' */ - uploadAccept?: string; + uploadAccept?: string | undefined; /** * If true, the upload button will accept multiple files. * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#multiple */ - uploadMultiple?: boolean; + uploadMultiple?: boolean | undefined; /** * If set to `send` (default), attachment will be sent when the send button is clicked, or when the message is being sent. * * Otherwise, if set to `attach`, attachment will be sent immediately after file is selected. */ - sendAttachmentOn?: 'attach' | 'send'; + sendAttachmentOn?: 'attach' | 'send' | undefined; /** Send box button: Icon color, defaults to subtle */ - sendBoxButtonColor?: string; + sendBoxButtonColor?: string | undefined; /** * Send box button: Shade border radius * * @default 2 */ - sendBoxButtonShadeBorderRadius?: number; + sendBoxButtonShadeBorderRadius?: number | undefined; /** Send box button: Shade color */ - sendBoxButtonShadeColor?: string; + sendBoxButtonShadeColor?: string | undefined; /** * Send box button: Shade inset * * @default 2 */ - sendBoxButtonShadeInset?: number; + sendBoxButtonShadeInset?: number | undefined; /** Send box button (while `:active`): Icon color */ - sendBoxButtonColorOnActive?: string; + sendBoxButtonColorOnActive?: string | undefined; /** * Send box button (while `:active`): Shade color * * @default '#EDEBE9' */ - sendBoxButtonShadeColorOnActive?: string; + sendBoxButtonShadeColorOnActive?: string | undefined; /** * Send box button (while `:disabled`): Icon color * * @default '#A19F9D' */ - sendBoxButtonColorOnDisabled?: string; + sendBoxButtonColorOnDisabled?: string | undefined; /** * Send box button (while `:disabled`): Shade color * * @default '#F3F2F1' */ - sendBoxButtonShadeColorOnDisabled?: string; + sendBoxButtonShadeColorOnDisabled?: string | undefined; /** Send box button (while `:focus`): Icon color */ - sendBoxButtonColorOnFocus?: string; + sendBoxButtonColorOnFocus?: string | undefined; /** Send box button (while `:focus`): Shade color */ - sendBoxButtonShadeColorOnFocus?: string; + sendBoxButtonShadeColorOnFocus?: string | undefined; /** Send box button (while `:hover`): Icon color */ - sendBoxButtonColorOnHover?: string; + sendBoxButtonColorOnHover?: string | undefined; /** * Send box button (while `:hover`): Shade color * * @default '#F3F2F1' */ - sendBoxButtonShadeColorOnHover?: string; + sendBoxButtonShadeColorOnHover?: string | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator border color * * @default '#605E5C' */ - sendBoxButtonKeyboardFocusIndicatorBorderColor?: string; + sendBoxButtonKeyboardFocusIndicatorBorderColor?: string | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator border radius * * @default 0 */ - sendBoxButtonKeyboardFocusIndicatorBorderRadius?: number | string; + sendBoxButtonKeyboardFocusIndicatorBorderRadius?: number | string | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator border style * * @default 'solid' */ - sendBoxButtonKeyboardFocusIndicatorBorderStyle?: string; + sendBoxButtonKeyboardFocusIndicatorBorderStyle?: string | undefined; /** * Send box button (while` :focus-visible`): Keyboard focus indicator border width * * @default 4 */ - sendBoxButtonKeyboardFocusIndicatorBorderWidth?: number; + sendBoxButtonKeyboardFocusIndicatorBorderWidth?: number | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator inset * * @default 4 */ - sendBoxButtonKeyboardFocusIndicatorInset?: number; + sendBoxButtonKeyboardFocusIndicatorInset?: number | undefined; /** * Disabled text color defaults to subtle */ - sendBoxDisabledTextColor?: string; + sendBoxDisabledTextColor?: string | undefined; - sendBoxHeight?: number | string; - sendBoxMaxHeight?: number | string; - sendBoxTextColor?: string; - sendBoxBorderBottom?: number | string; - sendBoxBorderLeft?: number | string; - sendBoxBorderRight?: number | string; - sendBoxBorderTop?: number | string; - sendBoxPlaceholderColor?: string; - sendBoxTextWrap?: boolean; - sendBoxButtonAlignment?: 'bottom' | 'stretch' | 'top'; + sendBoxHeight?: number | string | undefined; + sendBoxMaxHeight?: number | string | undefined; + sendBoxTextColor?: string | undefined; + sendBoxBorderBottom?: number | string | undefined; + sendBoxBorderLeft?: number | string | undefined; + sendBoxBorderRight?: number | string | undefined; + sendBoxBorderTop?: number | string | undefined; + sendBoxPlaceholderColor?: string | undefined; + sendBoxTextWrap?: boolean | undefined; + sendBoxButtonAlignment?: 'bottom' | 'stretch' | 'top' | undefined; /** * Show spoken text */ - showSpokenText?: boolean; + showSpokenText?: boolean | undefined; /** * Spinner animation styling */ - spinnerAnimationBackgroundImage?: string; - spinnerAnimationHeight?: number | string; - spinnerAnimationWidth?: number | string; - spinnerAnimationPadding?: number | string; + spinnerAnimationBackgroundImage?: string | undefined; + spinnerAnimationHeight?: number | string | undefined; + spinnerAnimationWidth?: number | string | undefined; + spinnerAnimationPadding?: number | string | undefined; /** * Suggested Actions @@ -475,225 +475,225 @@ type StyleOptions = { * * @default 0 */ - suggestedActionBorderRadius?: number | string; + suggestedActionBorderRadius?: number | string | undefined; /** * Suggested action: Background * * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColor` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionBackground?: string; + suggestedActionBackground?: string | undefined; /** * Suggested action: Background color * * @default 'White' */ - suggestedActionBackgroundColor?: string; + suggestedActionBackgroundColor?: string | undefined; /** Suggested action: Border color, defaults to accent color */ - suggestedActionBorderColor?: string; + suggestedActionBorderColor?: string | undefined; /** * Suggested action: Border style * * @default 'solid' */ - suggestedActionBorderStyle?: string; + suggestedActionBorderStyle?: string | undefined; /** * Suggested action: Border width * * @default 2 */ - suggestedActionBorderWidth?: number; + suggestedActionBorderWidth?: number | undefined; /** Suggested action: Text color, defaults to accent color */ - suggestedActionTextColor?: string; + suggestedActionTextColor?: string | undefined; /** Suggested action (while `:disabled`): Background color, defaults to suggestedActionBackground */ - suggestedActionBackgroundColorOnDisabled?: string; + suggestedActionBackgroundColorOnDisabled?: string | undefined; /** * Suggested action (while `:disabled`): Border color * * @default '#E6E6E6' */ - suggestedActionBorderColorOnDisabled?: string; + suggestedActionBorderColorOnDisabled?: string | undefined; /** Suggested action (while `:disabled`): Border style */ - suggestedActionBorderStyleOnDisabled?: string; + suggestedActionBorderStyleOnDisabled?: string | undefined; /** Suggested action (while `:disabled`): Border width */ - suggestedActionBorderWidthOnDisabled?: number; + suggestedActionBorderWidthOnDisabled?: number | undefined; /** Suggested action (while `:disabled`): Foreground color, defaults to subtle color */ - suggestedActionTextColorOnDisabled?: string; + suggestedActionTextColorOnDisabled?: string | undefined; /** * Suggested action (while `:active`): Background color * * @default '#EDEBE9' */ - suggestedActionBackgroundColorOnActive?: string; + suggestedActionBackgroundColorOnActive?: string | undefined; /** Suggested action (while `:active`): Border color */ - suggestedActionBorderColorOnActive?: string; + suggestedActionBorderColorOnActive?: string | undefined; /** Suggested action (while `:active`): Border style */ - suggestedActionBorderStyleOnActive?: string; + suggestedActionBorderStyleOnActive?: string | undefined; /** Suggested action (while `:active`): Border width */ - suggestedActionBorderWidthOnActive?: number; + suggestedActionBorderWidthOnActive?: number | undefined; /** Suggested action (while `:active`): Text color */ - suggestedActionTextColorOnActive?: string; + suggestedActionTextColorOnActive?: string | undefined; /** Suggested action (while `:focus`): Background color */ - suggestedActionBackgroundColorOnFocus?: string; + suggestedActionBackgroundColorOnFocus?: string | undefined; /** Suggested action (while `:focus`): Border color */ - suggestedActionBorderColorOnFocus?: string; + suggestedActionBorderColorOnFocus?: string | undefined; /** Suggested action (while `:focus`): Border style */ - suggestedActionBorderStyleOnFocus?: string; + suggestedActionBorderStyleOnFocus?: string | undefined; /** Suggested action (while `:focus`): Border width */ - suggestedActionBorderWidthOnFocus?: number; + suggestedActionBorderWidthOnFocus?: number | undefined; /** Suggested action (while `:focus`): Text color */ - suggestedActionTextColorOnFocus?: string; + suggestedActionTextColorOnFocus?: string | undefined; /** * Suggested action (while `:hover`): Background color * * @default '#F3F2F1' */ - suggestedActionBackgroundColorOnHover?: string; + suggestedActionBackgroundColorOnHover?: string | undefined; /** Suggested action (while `:hover`): Border color */ - suggestedActionBorderColorOnHover?: string; + suggestedActionBorderColorOnHover?: string | undefined; /** Suggested action (while `:hover`): Border style */ - suggestedActionBorderStyleOnHover?: string; + suggestedActionBorderStyleOnHover?: string | undefined; /** Suggested action (while `:hover`): Border width */ - suggestedActionBorderWidthOnHover?: number; + suggestedActionBorderWidthOnHover?: number | undefined; /** Suggested action (while `:hover`): Text color */ - suggestedActionTextColorOnHover?: string; + suggestedActionTextColorOnHover?: string | undefined; /** * Suggested action (while `:disabled`): Background, defaults to suggestedActionBackground. * * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnDisabled` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionDisabledBackground?: string; + suggestedActionDisabledBackground?: string | undefined; /** * Suggested action (while `:disabled`): Border color * * @deprecated Since 4.15.0: Please use `suggestedActionBorderColorOnDisabled` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionDisabledBorderColor?: string; + suggestedActionDisabledBorderColor?: string | undefined; /** * Suggested action (while `:disabled`): Border style * * @deprecated Since 4.15.0: Please use `suggestedActionBorderStyleOnDisabled` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionDisabledBorderStyle?: string; + suggestedActionDisabledBorderStyle?: string | undefined; /** * Suggested action (while `:disabled`): Border width * * @deprecated Since 4.15.0: Please use `suggestedActionBorderWidthOnDisabled` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionDisabledBorderWidth?: number; + suggestedActionDisabledBorderWidth?: number | undefined; /** * Suggested action (while `:disabled`): Foreground color, defaults to subtle color * * @deprecated Since 4.15.0: Please use `suggestedActionTextColorOnDisabled` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionDisabledTextColor?: string; + suggestedActionDisabledTextColor?: string | undefined; /** * Suggested action: Height * * @default 40 */ - suggestedActionHeight?: number | string; + suggestedActionHeight?: number | string | undefined; /** * Suggested action: Image height * * @default 20 */ - suggestedActionImageHeight?: number | string; + suggestedActionImageHeight?: number | string | undefined; /** * Suggested action: Layout type * * @default 'carousel' */ - suggestedActionLayout?: 'carousel' | 'flow' | 'stacked'; + suggestedActionLayout?: 'carousel' | 'flow' | 'stacked' | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border color * * @default '#605E5C' */ - suggestedActionKeyboardFocusIndicatorBorderColor?: string; + suggestedActionKeyboardFocusIndicatorBorderColor?: string | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border radius * * @default 0 */ - suggestedActionKeyboardFocusIndicatorBorderRadius?: number | string; + suggestedActionKeyboardFocusIndicatorBorderRadius?: number | string | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border style * * @default 'solid' */ - suggestedActionKeyboardFocusIndicatorBorderStyle?: string; + suggestedActionKeyboardFocusIndicatorBorderStyle?: string | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border width * * @default 1 */ - suggestedActionKeyboardFocusIndicatorBorderWidth?: number; + suggestedActionKeyboardFocusIndicatorBorderWidth?: number | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator inset * * @default 2 */ - suggestedActionKeyboardFocusIndicatorInset?: number; + suggestedActionKeyboardFocusIndicatorInset?: number | undefined; /** * Suggested action (while `:active`): background * * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnActive` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionActiveBackground?: string; + suggestedActionActiveBackground?: string | undefined; /** * Suggested action (while `:focus`): background * * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnFocus` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionFocusBackground?: string; + suggestedActionFocusBackground?: string | undefined; /** * Suggested action (while `:hover`): background * * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnHover` instead. This option will be removed on or after 2023-09-16. */ - suggestedActionHoverBackground?: string; + suggestedActionHoverBackground?: string | undefined; /** * Suggested actions carousel layout @@ -702,23 +702,23 @@ type StyleOptions = { /** * Cursor when mouseover on flipper */ - suggestedActionsCarouselFlipperCursor?: string; + suggestedActionsCarouselFlipperCursor?: string | undefined; /** * Flipper bounding box size */ - suggestedActionsCarouselFlipperBoxWidth?: number; + suggestedActionsCarouselFlipperBoxWidth?: number | undefined; /** * Flipper button's visible size */ - suggestedActionsCarouselFlipperSize?: number; + suggestedActionsCarouselFlipperSize?: number | undefined; /** * Suggested actions flow layout * Default value is 'auto', */ - suggestedActionsFlowMaxHeight?: undefined; + suggestedActionsFlowMaxHeight?: number | undefined; /** * Suggested actions stacked layout @@ -727,31 +727,31 @@ type StyleOptions = { /** * Stacked height container's max height. Default value is 'auto' */ - suggestedActionsStackedHeight?: number | 'auto'; + suggestedActionsStackedHeight?: number | 'auto' | undefined; /** * Stacked overflow default value is 'auto' */ - suggestedActionsStackedOverflow?: 'auto' | 'hidden' | 'scroll' | 'visible'; + suggestedActionsStackedOverflow?: 'auto' | 'hidden' | 'scroll' | 'visible' | undefined; /** * Button max height default value is 100% if suggestedActionsStackedLayoutButtonTextWrap is true */ - suggestedActionsStackedLayoutButtonMaxHeight?: number | string; + suggestedActionsStackedLayoutButtonMaxHeight?: number | string | undefined; /** * Button Text Wrap, if set to true, will wrap long text in buttons in STACKED mode ONLY */ - suggestedActionsStackedLayoutButtonTextWrap?: boolean; + suggestedActionsStackedLayoutButtonTextWrap?: boolean | undefined; /** Suggested actions: Visual keyboard indicator color for the container. */ - suggestedActionsVisualKeyboardIndicatorColor?: string; + suggestedActionsVisualKeyboardIndicatorColor?: string | undefined; /** Suggested actions: Visual keyboard indicator style for the container. */ - suggestedActionsVisualKeyboardIndicatorStyle?: string; + suggestedActionsVisualKeyboardIndicatorStyle?: string | undefined; /** Suggested actions: Visual keyboard indicator width for the container. */ - suggestedActionsVisualKeyboardIndicatorWidth?: number; + suggestedActionsVisualKeyboardIndicatorWidth?: number | undefined; /** * Timestamp @@ -764,34 +764,34 @@ type StyleOptions = { * `false` - never group timestamps * `true` - group all timestamps */ - groupTimestamp?: boolean | number; + groupTimestamp?: boolean | number | undefined; - sendTimeout?: number | ((activity: WebChatActivity) => number); - sendTimeoutForAttachments?: number; + sendTimeout?: number | ((activity: WebChatActivity) => number) | undefined; + sendTimeoutForAttachments?: number | undefined; /** * Timestamp color default value is subtle */ - timestampColor?: string; + timestampColor?: string | undefined; - timestampFormat?: 'absolute' | 'relative'; + timestampFormat?: 'absolute' | 'relative' | undefined; /** * Transcript styling */ - transcriptTerminatorBackgroundColor?: string; - transcriptTerminatorBorderRadius?: number | string; - transcriptTerminatorColor?: string; - transcriptTerminatorFontSize?: number | string; + transcriptTerminatorBackgroundColor?: string | undefined; + transcriptTerminatorBorderRadius?: number | string | undefined; + transcriptTerminatorColor?: string | undefined; + transcriptTerminatorFontSize?: number | string | undefined; - transcriptActivityVisualKeyboardIndicatorColor?: string; - transcriptActivityVisualKeyboardIndicatorStyle?: string; - transcriptActivityVisualKeyboardIndicatorWidth?: number | string; + transcriptActivityVisualKeyboardIndicatorColor?: string | undefined; + transcriptActivityVisualKeyboardIndicatorStyle?: string | undefined; + transcriptActivityVisualKeyboardIndicatorWidth?: number | string | undefined; - transcriptVisualKeyboardIndicatorColor?: string; - transcriptVisualKeyboardIndicatorStyle?: string; - transcriptVisualKeyboardIndicatorWidth?: number | string; + transcriptVisualKeyboardIndicatorColor?: string | undefined; + transcriptVisualKeyboardIndicatorStyle?: string | undefined; + transcriptVisualKeyboardIndicatorWidth?: number | string | undefined; /** * Transcript overlay button @@ -805,10 +805,10 @@ type StyleOptions = { * - `"any"` will show when there are any offscreen messages * - `false` will always hide the button */ - scrollToEndButtonBehavior?: false | 'any' | 'unread'; + scrollToEndButtonBehavior?: false | 'any' | 'unread' | undefined; /** Font size of the new message button. */ - scrollToEndButtonFontSize?: number | string; + scrollToEndButtonFontSize?: number | string | undefined; /** * Font size of the new message button. @@ -816,24 +816,24 @@ type StyleOptions = { * @deprecated Since 4.14.0: Renamed to {@linkcode scrollToEndButtonFontSize}. */ // TODO: [P4] Will be removed on or after 2023-06-02. - newMessagesButtonFontSize?: number | string; + newMessagesButtonFontSize?: number | string | undefined; - transcriptOverlayButtonBackground?: string; - transcriptOverlayButtonBackgroundOnDisabled?: string; - transcriptOverlayButtonBackgroundOnFocus?: string; - transcriptOverlayButtonBackgroundOnHover?: string; - transcriptOverlayButtonColor?: string; - transcriptOverlayButtonColorOnDisabled?: string; + transcriptOverlayButtonBackground?: string | undefined; + transcriptOverlayButtonBackgroundOnDisabled?: string | undefined; + transcriptOverlayButtonBackgroundOnFocus?: string | undefined; + transcriptOverlayButtonBackgroundOnHover?: string | undefined; + transcriptOverlayButtonColor?: string | undefined; + transcriptOverlayButtonColorOnDisabled?: string | undefined; /** * Default value is transcriptOverlayButtonColor */ - transcriptOverlayButtonColorOnFocus?: string; + transcriptOverlayButtonColorOnFocus?: string | undefined; /** * Default value is transcriptOverlayButtonColor */ - transcriptOverlayButtonColorOnHover?: string; + transcriptOverlayButtonColorOnHover?: string | undefined; /** * Toast UI @@ -842,64 +842,64 @@ type StyleOptions = { /** * New debounce timeout value only affects new notifications. */ - notificationDebounceTimeout?: number; + notificationDebounceTimeout?: number | undefined; - hideToaster?: boolean; - toasterHeight?: number | string; - toasterMaxHeight?: number | string; - toasterSingularMaxHeight?: number | string; - toastFontSize?: number | string; - toastIconWidth?: number | string; - toastSeparatorColor?: string; - toastTextPadding?: number | string; + hideToaster?: boolean | undefined; + toasterHeight?: number | string | undefined; + toasterMaxHeight?: number | string | undefined; + toasterSingularMaxHeight?: number | string | undefined; + toastFontSize?: number | string | undefined; + toastIconWidth?: number | string | undefined; + toastSeparatorColor?: string | undefined; + toastTextPadding?: number | string | undefined; - toastErrorBackgroundColor?: string; - toastErrorColor?: string; - toastInfoBackgroundColor?: string; - toastInfoColor?: string; - toastSuccessBackgroundColor?: string; - toastSuccessColor?: string; - toastWarnBackgroundColor?: string; - toastWarnColor?: string; + toastErrorBackgroundColor?: string | undefined; + toastErrorColor?: string | undefined; + toastInfoBackgroundColor?: string | undefined; + toastInfoColor?: string | undefined; + toastSuccessBackgroundColor?: string | undefined; + toastSuccessColor?: string | undefined; + toastWarnBackgroundColor?: string | undefined; + toastWarnColor?: string | undefined; /** * Typing animation */ - typingAnimationBackgroundImage?: string; - typingAnimationDuration?: number; - typingAnimationHeight?: number | string; - typingAnimationWidth?: number | string; + typingAnimationBackgroundImage?: string | undefined; + typingAnimationDuration?: number | undefined; + typingAnimationHeight?: number | string | undefined; + typingAnimationWidth?: number | string | undefined; /** * Upload thumbnail */ - enableUploadThumbnail?: boolean; - uploadThumbnailContentType?: string; - uploadThumbnailHeight?: number; - uploadThumbnailQuality?: number; - uploadThumbnailWidth?: number; + enableUploadThumbnail?: boolean | undefined; + uploadThumbnailContentType?: string | undefined; + uploadThumbnailHeight?: number | undefined; + uploadThumbnailQuality?: number | undefined; + uploadThumbnailWidth?: number | undefined; /** * Video */ - videoHeight?: number | string; + videoHeight?: number | string | undefined; /** * Maximum message length in characters * * @default 2000 */ - maxMessageLength?: number; + maxMessageLength?: number | undefined; /** * The node to place Web Chat styles into. Needed when using as a Web Component. * * @default document.head */ - stylesRoot?: Node; + stylesRoot?: Node | undefined; /** * Border animation @@ -912,7 +912,7 @@ type StyleOptions = { * * New in 4.19.0. */ - borderAnimationColor1?: string; + borderAnimationColor1?: string | undefined; /** * Border animation 2nd color * @@ -920,7 +920,7 @@ type StyleOptions = { * * New in 4.19.0. */ - borderAnimationColor2?: string; + borderAnimationColor2?: string | undefined; /** * Border animation 3rd color * @@ -928,7 +928,7 @@ type StyleOptions = { * * New in 4.19.0. */ - borderAnimationColor3?: string; + borderAnimationColor3?: string | undefined; /** * Code block theme @@ -940,7 +940,7 @@ type StyleOptions = { * * New in 4.19.0. */ - codeBlockTheme?: 'github-light-default' | 'github-dark-default'; + codeBlockTheme?: 'github-light-default' | 'github-dark-default' | undefined; /** * (EXPERIMENTAL) Feedback buttons placement @@ -954,7 +954,7 @@ type StyleOptions = { * * New in 4.19.0. */ - feedbackActionsPlacement?: 'activity-actions' | 'activity-status'; + feedbackActionsPlacement?: 'activity-actions' | 'activity-status' | undefined; /** * Use continuous mode for speech recognition. Default to `false`. @@ -995,14 +995,14 @@ type StyleOptions = { * * @default 114 */ - sendBoxAttachmentBarMaxHeight?: number; + sendBoxAttachmentBarMaxHeight?: number | undefined; /** * Send box: maximum number of attachment item to preview as thumbnail before showing as list item. * * @default 3 */ - sendBoxAttachmentBarMaxThumbnail?: number; + sendBoxAttachmentBarMaxThumbnail?: number | undefined; /** * Indicates if file upload should be disabled. @@ -1011,7 +1011,7 @@ type StyleOptions = { * * New in 4.19.0. */ - disableFileUpload?: boolean; + disableFileUpload?: boolean | undefined; /** * Controls microphone button visibility in Fluent theme send box. * @@ -1020,7 +1020,7 @@ type StyleOptions = { * * @default 'auto' */ - showMicrophoneButton?: 'auto' | 'hide'; + showMicrophoneButton?: 'auto' | 'hide' | undefined; }; // StrictStyleOptions is only used internally in Web Chat and for simplifying our code: From 8b561e1c793d93b197c96a8d71a390520428c39d Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 18:31:41 +0000 Subject: [PATCH 13/59] Better styleOptions and remove deprecations --- packages/api/src/StyleOptions.ts | 595 ++++++++---------- .../api/src/decorator/DecoratorComposer.tsx | 10 +- packages/api/src/defaultStyleOptions.ts | 22 +- packages/api/src/hooks/Composer.tsx | 6 +- packages/api/src/index.ts | 2 +- packages/api/src/normalizeStyleOptions.ts | 142 +---- .../StyleOptions/StyleOptionsComposer.tsx | 2 +- packages/api/src/tsconfig.json | 3 +- 8 files changed, 304 insertions(+), 478 deletions(-) diff --git a/packages/api/src/StyleOptions.ts b/packages/api/src/StyleOptions.ts index de89993994..029ad8db68 100644 --- a/packages/api/src/StyleOptions.ts +++ b/packages/api/src/StyleOptions.ts @@ -1,42 +1,42 @@ import type { WebChatActivity } from 'botframework-webchat-core'; -type StyleOptions = { +type StrictStyleOptions = { /** * Basic styling */ /** Web Chat component accent color */ - accent?: string | undefined; + accent: string | undefined; /** * Transcript background color */ - backgroundColor?: string | undefined; + backgroundColor: string | undefined; /** * Secondary component color */ - subtle?: string | undefined; + subtle: string | undefined; /** * Default padding used in most visual components */ - paddingRegular?: number | undefined; + paddingRegular: number | undefined; /** * Padding used for suggestedAction buttons */ - paddingWide?: number | undefined; + paddingWide: number | undefined; /** * The duration to be used for transitions */ - transitionDuration?: string | undefined; + transitionDuration: string | undefined; /** * The easing function to be used for transitions */ - transitionEasing?: string | undefined; + transitionEasing: string | undefined; /** * Fonts @@ -46,28 +46,28 @@ type StyleOptions = { /** * Font size used for secondary components such as sendStatus */ - fontSizeSmall?: number | string | undefined; + fontSizeSmall: number | string | undefined; /** * Font used for ErrorBox * comma-space separated string */ - monospaceFont?: string | undefined; + monospaceFont: string | undefined; /** * Font used in most visual components * comma-space separated string */ - primaryFont?: string | undefined; + primaryFont: string | undefined; - rootHeight?: number | string | undefined; + rootHeight: number | string | undefined; - rootWidth?: number | string | undefined; + rootWidth: number | string | undefined; /** * "z-index" for the root container of Web Chat. This will form a new stacking context so "z-index" used in children won't pollute. */ - rootZIndex?: number | undefined; + rootZIndex: number | undefined; /** * Avatar styling @@ -76,46 +76,46 @@ type StyleOptions = { /** * Border radius used for both bot and user avatar */ - avatarBorderRadius?: number | string | undefined; + avatarBorderRadius: number | string | undefined; /** * Height and width of avatar */ - avatarSize?: number | undefined; + avatarSize: number | undefined; /** * Background color defaults to accent */ - botAvatarBackgroundColor?: string | undefined; + botAvatarBackgroundColor: string | undefined; /** * URL string. Can be data URI or blob * botAvatarInitials must be set to empty string */ - botAvatarImage?: string | undefined; + botAvatarImage: string | undefined; /** * Typically rendered as two letters, e.g. 'WC' * Empty string is required when setting botAvatarImage */ - botAvatarInitials?: string | undefined; + botAvatarInitials: string | undefined; /** * Background color defaults to accent */ - userAvatarBackgroundColor?: string | undefined; + userAvatarBackgroundColor: string | undefined; /** * URL string. Can be data URI or blob * userAvatarInitials must be set to empty string */ - userAvatarImage?: string | undefined; + userAvatarImage: string | undefined; /** * Typically rendered as two letters, i.e. 'WC' * Empty string is required when setting userAvatarImage */ - userAvatarInitials?: string | undefined; + userAvatarInitials: string | undefined; /** * Avatar grouping can be set at 3 different levels: @@ -123,23 +123,23 @@ type StyleOptions = { * Show avatar on activities sharing the same status ('status'; default) * Show avatar on every activity (true) */ - showAvatarInGroup?: true | 'sender' | 'status' | undefined; + showAvatarInGroup: true | 'sender' | 'status' | undefined; /** * Bubble styling * 'Bubble' refers to the container of the activit(ies) from the bot and user. Below, non-'fromUser' props refer to styling for the bot activities. */ - bubbleBackground?: string | undefined; - bubbleBorderColor?: string | undefined; - bubbleBorderRadius?: number | undefined; - bubbleBorderStyle?: string | undefined; - bubbleBorderWidth?: number | undefined; - bubbleFromUserBackground?: string | undefined; - bubbleFromUserBorderColor?: string | undefined; - bubbleFromUserBorderRadius?: number | undefined; - bubbleFromUserBorderStyle?: string | undefined; - bubbleFromUserBorderWidth?: number | undefined; + bubbleBackground: string | undefined; + bubbleBorderColor: string | undefined; + bubbleBorderRadius: number | undefined; + bubbleBorderStyle: string | undefined; + bubbleBorderWidth: number | undefined; + bubbleFromUserBackground: string | undefined; + bubbleFromUserBorderColor: string | undefined; + bubbleFromUserBorderRadius: number | undefined; + bubbleFromUserBorderStyle: string | undefined; + bubbleFromUserBorderWidth: number | undefined; /** * Nub offset 'bottom' will render nub at the bottom @@ -147,21 +147,14 @@ type StyleOptions = { * "top" is equivalent to positive zero. * "bottom" is equivalent to negative zero. */ - bubbleFromUserNubOffset?: number | 'bottom' | 'top' | undefined; + bubbleFromUserNubOffset: number | undefined; /** * Nub size 0 will render a sharp corner */ - bubbleFromUserNubSize?: number | undefined; - - bubbleFromUserTextColor?: string | undefined; + bubbleFromUserNubSize: number | undefined; - /** - * Specifies the fixed height of the bubble for image, default to unset. - * - * @deprecated Use `bubbleImageMaxHeight` and `bubbleImageMinHeight` instead. To mimick behavior before deprecation, set both options to 240px. - */ - bubbleImageHeight?: number | undefined; + bubbleFromUserTextColor: string | undefined; /** * Specifies the maximum height of the bubble for image, default to 240px. @@ -170,7 +163,7 @@ type StyleOptions = { * * New in 4.18.0. */ - bubbleImageMaxHeight?: number | undefined; + bubbleImageMaxHeight: number | undefined; /** * Specifies the minimum height of the bubble for image, default to 240px. @@ -179,19 +172,14 @@ type StyleOptions = { * * New in 4.18.0. */ - bubbleImageMinHeight?: number | undefined; + bubbleImageMinHeight: number | undefined; - /* @deprecated Please use `bubbleAttachmentMaxWidth` and `bubbleMessageMaxWidth` instead. */ - bubbleMaxWidth?: number | undefined; - /* @deprecated Please use `bubbleAttachmentMaxWidth` and `bubbleMessageMaxWidth` instead. */ - bubbleMinWidth?: number | undefined; + bubbleAttachmentMaxWidth: number | undefined; + bubbleAttachmentMinWidth: number | undefined; + bubbleMessageMaxWidth: number | undefined; + bubbleMessageMinWidth: number | undefined; - bubbleAttachmentMaxWidth?: number | undefined; - bubbleAttachmentMinWidth?: number | undefined; - bubbleMessageMaxWidth?: number | undefined; - bubbleMessageMinWidth?: number | undefined; - - bubbleMinHeight?: number | undefined; + bubbleMinHeight: number | undefined; /** * Nub offset ''bottom' will render nub at the bottom @@ -199,33 +187,33 @@ type StyleOptions = { * "top" is equivalent to positive zero. * "bottom" is equivalent to negative zero. */ - bubbleNubOffset?: number | 'bottom' | 'top' | undefined; + bubbleNubOffset: number | undefined; /** * Nub size 0 will render a sharp corner */ - bubbleNubSize?: number | undefined; + bubbleNubSize: number | undefined; - bubbleTextColor?: string | undefined; + bubbleTextColor: string | undefined; - messageActivityWordBreak?: 'normal' | 'break-all' | 'break-word' | 'keep-all' | undefined; + messageActivityWordBreak: 'normal' | 'break-all' | 'break-word' | 'keep-all' | undefined; /** * Connectivity UI styling */ - connectivityIconPadding?: number | undefined; - connectivityMarginLeftRight?: number | undefined; - connectivityMarginTopBottom?: number | undefined; - connectivityTextSize?: number | string | undefined; - failedConnectivity?: number | string | undefined; - slowConnectivity?: string | undefined; - notificationText?: string | undefined; + connectivityIconPadding: number | undefined; + connectivityMarginLeftRight: number | undefined; + connectivityMarginTopBottom: number | undefined; + connectivityTextSize: number | string | undefined; + failedConnectivity: number | string | undefined; + slowConnectivity: string | undefined; + notificationText: string | undefined; /** * Slow connection status will render after x amount of time with no service response */ - slowConnectionAfter?: number | undefined; + slowConnectionAfter: number | undefined; /** * Emoji styling @@ -234,19 +222,19 @@ type StyleOptions = { * key: emoticon * value: unicode emoji */ - emojiSet?: boolean | Record | undefined; + emojiSet: false | Record | undefined; /** * Live region - Accessibility * New activities will be rendered in the non-visual live region and removed after a certain amount of time. Modify this property to change fade time. */ - internalLiveRegionFadeAfter?: number | undefined; + internalLiveRegionFadeAfter: number | undefined; /** * Markdown styling * Parse markdown to ensure carriage return is respected */ - markdownRespectCRLF?: boolean | undefined; + markdownRespectCRLF: boolean | undefined; /** * Render HTML inside Markdown. @@ -255,216 +243,199 @@ type StyleOptions = { * * New in 4.17: This option is enabled by default. */ - markdownRenderHTML?: boolean | undefined; + markdownRenderHTML: boolean | undefined; /** * Assign new image for anchor links to indicate external */ - markdownExternalLinkIconImage?: string | undefined; + markdownExternalLinkIconImage: string | undefined; /** * Scroll behavior styling */ - /** - * Prevent scroll to end button from rendering - * - * @deprecated Since 4.14.0: To hide the scroll to end button, please set `scrollToEndButtonBehavior` to `false`. - */ - // TODO: [P4] Will be removed on or after 2023-06-02. - hideScrollToEndButton?: boolean | undefined; - /** * Snap to activity to 'snap-point' * If true, scrolling will pause after 1 activity is received. * Specifying a number will pause after X number of activities */ - autoScrollSnapOnActivity?: boolean | number | undefined; + autoScrollSnapOnActivity: boolean | number | undefined; /** * Specify number of pixels to overscroll or underscroll after pause */ - autoScrollSnapOnActivityOffset?: number | undefined; + autoScrollSnapOnActivityOffset: number | undefined; /** * If true, scrolling will pause after activities have filled the page. * Specifying a number (0 to 1) will pause after % of page is filled */ - autoScrollSnapOnPage?: boolean | number | undefined; + autoScrollSnapOnPage: boolean | number | undefined; /** * Specify number of pixels to overscroll or underscroll after pause */ - autoScrollSnapOnPageOffset?: number | undefined; + autoScrollSnapOnPageOffset: number | undefined; /** * Send box styling */ - hideSendBox?: boolean | undefined; - - /** - * Indicates if the upload file button should be hidden. - * - * @default false - * - * @deprecated deprecated since 4.18.0: obsolated by {@linkcode disableFileUpload}. This option will be removed on or after 2027-07-14. - */ - hideUploadButton?: boolean | undefined; + hideSendBox: boolean | undefined; /** * (EXPERIMENTAL) `true`, if the telephone keypad button should be shown, otherwise, `false`. Defaults to `true`. * * @deprecated This is an experimental style options and should not be used without understanding its risk. */ - hideTelephoneKeypadButton?: boolean | undefined; + hideTelephoneKeypadButton: boolean | undefined; - microphoneButtonColorOnDictate?: string | undefined; - sendBoxBackground?: string | undefined; + microphoneButtonColorOnDictate: string | undefined; + sendBoxBackground: string | undefined; /** * The comma-delimited file types that the upload button should accept. * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept * @example 'image/*,.pdf' */ - uploadAccept?: string | undefined; + uploadAccept: string | undefined; /** * If true, the upload button will accept multiple files. * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#multiple */ - uploadMultiple?: boolean | undefined; + uploadMultiple: boolean | undefined; /** * If set to `send` (default), attachment will be sent when the send button is clicked, or when the message is being sent. * * Otherwise, if set to `attach`, attachment will be sent immediately after file is selected. */ - sendAttachmentOn?: 'attach' | 'send' | undefined; + sendAttachmentOn: 'attach' | 'send' | undefined; /** Send box button: Icon color, defaults to subtle */ - sendBoxButtonColor?: string | undefined; + sendBoxButtonColor: string | undefined; /** * Send box button: Shade border radius * * @default 2 */ - sendBoxButtonShadeBorderRadius?: number | undefined; + sendBoxButtonShadeBorderRadius: number | undefined; /** Send box button: Shade color */ - sendBoxButtonShadeColor?: string | undefined; + sendBoxButtonShadeColor: string | undefined; /** * Send box button: Shade inset * * @default 2 */ - sendBoxButtonShadeInset?: number | undefined; + sendBoxButtonShadeInset: number | undefined; /** Send box button (while `:active`): Icon color */ - sendBoxButtonColorOnActive?: string | undefined; + sendBoxButtonColorOnActive: string | undefined; /** * Send box button (while `:active`): Shade color * * @default '#EDEBE9' */ - sendBoxButtonShadeColorOnActive?: string | undefined; + sendBoxButtonShadeColorOnActive: string | undefined; /** * Send box button (while `:disabled`): Icon color * * @default '#A19F9D' */ - sendBoxButtonColorOnDisabled?: string | undefined; + sendBoxButtonColorOnDisabled: string | undefined; /** * Send box button (while `:disabled`): Shade color * * @default '#F3F2F1' */ - sendBoxButtonShadeColorOnDisabled?: string | undefined; + sendBoxButtonShadeColorOnDisabled: string | undefined; /** Send box button (while `:focus`): Icon color */ - sendBoxButtonColorOnFocus?: string | undefined; + sendBoxButtonColorOnFocus: string | undefined; /** Send box button (while `:focus`): Shade color */ - sendBoxButtonShadeColorOnFocus?: string | undefined; + sendBoxButtonShadeColorOnFocus: string | undefined; /** Send box button (while `:hover`): Icon color */ - sendBoxButtonColorOnHover?: string | undefined; + sendBoxButtonColorOnHover: string | undefined; /** * Send box button (while `:hover`): Shade color * * @default '#F3F2F1' */ - sendBoxButtonShadeColorOnHover?: string | undefined; + sendBoxButtonShadeColorOnHover: string | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator border color * * @default '#605E5C' */ - sendBoxButtonKeyboardFocusIndicatorBorderColor?: string | undefined; + sendBoxButtonKeyboardFocusIndicatorBorderColor: string | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator border radius * * @default 0 */ - sendBoxButtonKeyboardFocusIndicatorBorderRadius?: number | string | undefined; + sendBoxButtonKeyboardFocusIndicatorBorderRadius: number | string | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator border style * * @default 'solid' */ - sendBoxButtonKeyboardFocusIndicatorBorderStyle?: string | undefined; + sendBoxButtonKeyboardFocusIndicatorBorderStyle: string | undefined; /** * Send box button (while` :focus-visible`): Keyboard focus indicator border width * * @default 4 */ - sendBoxButtonKeyboardFocusIndicatorBorderWidth?: number | undefined; + sendBoxButtonKeyboardFocusIndicatorBorderWidth: number | undefined; /** * Send box button (while `:focus-visible`): Keyboard focus indicator inset * * @default 4 */ - sendBoxButtonKeyboardFocusIndicatorInset?: number | undefined; + sendBoxButtonKeyboardFocusIndicatorInset: number | undefined; /** * Disabled text color defaults to subtle */ - sendBoxDisabledTextColor?: string | undefined; + sendBoxDisabledTextColor: string | undefined; - sendBoxHeight?: number | string | undefined; - sendBoxMaxHeight?: number | string | undefined; - sendBoxTextColor?: string | undefined; - sendBoxBorderBottom?: number | string | undefined; - sendBoxBorderLeft?: number | string | undefined; - sendBoxBorderRight?: number | string | undefined; - sendBoxBorderTop?: number | string | undefined; - sendBoxPlaceholderColor?: string | undefined; - sendBoxTextWrap?: boolean | undefined; - sendBoxButtonAlignment?: 'bottom' | 'stretch' | 'top' | undefined; + sendBoxHeight: number | string | undefined; + sendBoxMaxHeight: number | string | undefined; + sendBoxTextColor: string | undefined; + sendBoxBorderBottom: number | string | undefined; + sendBoxBorderLeft: number | string | undefined; + sendBoxBorderRight: number | string | undefined; + sendBoxBorderTop: number | string | undefined; + sendBoxPlaceholderColor: string | undefined; + sendBoxTextWrap: boolean | undefined; + sendBoxButtonAlignment: 'bottom' | 'stretch' | 'top' | undefined; /** * Show spoken text */ - showSpokenText?: boolean | undefined; + showSpokenText: boolean | undefined; /** * Spinner animation styling */ - spinnerAnimationBackgroundImage?: string | undefined; - spinnerAnimationHeight?: number | string | undefined; - spinnerAnimationWidth?: number | string | undefined; - spinnerAnimationPadding?: number | string | undefined; + spinnerAnimationBackgroundImage: string | undefined; + spinnerAnimationHeight: number | string | undefined; + spinnerAnimationWidth: number | string | undefined; + spinnerAnimationPadding: number | string | undefined; /** * Suggested Actions @@ -475,225 +446,162 @@ type StyleOptions = { * * @default 0 */ - suggestedActionBorderRadius?: number | string | undefined; - - /** - * Suggested action: Background - * - * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColor` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionBackground?: string | undefined; + suggestedActionBorderRadius: number | string | undefined; /** * Suggested action: Background color * * @default 'White' */ - suggestedActionBackgroundColor?: string | undefined; + suggestedActionBackgroundColor: string | undefined; /** Suggested action: Border color, defaults to accent color */ - suggestedActionBorderColor?: string | undefined; + suggestedActionBorderColor: string | undefined; /** * Suggested action: Border style * * @default 'solid' */ - suggestedActionBorderStyle?: string | undefined; + suggestedActionBorderStyle: string | undefined; /** * Suggested action: Border width * * @default 2 */ - suggestedActionBorderWidth?: number | undefined; + suggestedActionBorderWidth: number | undefined; /** Suggested action: Text color, defaults to accent color */ - suggestedActionTextColor?: string | undefined; + suggestedActionTextColor: string | undefined; /** Suggested action (while `:disabled`): Background color, defaults to suggestedActionBackground */ - suggestedActionBackgroundColorOnDisabled?: string | undefined; + suggestedActionBackgroundColorOnDisabled: string | undefined; /** * Suggested action (while `:disabled`): Border color * * @default '#E6E6E6' */ - suggestedActionBorderColorOnDisabled?: string | undefined; + suggestedActionBorderColorOnDisabled: string | undefined; /** Suggested action (while `:disabled`): Border style */ - suggestedActionBorderStyleOnDisabled?: string | undefined; + suggestedActionBorderStyleOnDisabled: string | undefined; /** Suggested action (while `:disabled`): Border width */ - suggestedActionBorderWidthOnDisabled?: number | undefined; + suggestedActionBorderWidthOnDisabled: number | undefined; /** Suggested action (while `:disabled`): Foreground color, defaults to subtle color */ - suggestedActionTextColorOnDisabled?: string | undefined; + suggestedActionTextColorOnDisabled: string | undefined; /** * Suggested action (while `:active`): Background color * * @default '#EDEBE9' */ - suggestedActionBackgroundColorOnActive?: string | undefined; + suggestedActionBackgroundColorOnActive: string | undefined; /** Suggested action (while `:active`): Border color */ - suggestedActionBorderColorOnActive?: string | undefined; + suggestedActionBorderColorOnActive: string | undefined; /** Suggested action (while `:active`): Border style */ - suggestedActionBorderStyleOnActive?: string | undefined; + suggestedActionBorderStyleOnActive: string | undefined; /** Suggested action (while `:active`): Border width */ - suggestedActionBorderWidthOnActive?: number | undefined; + suggestedActionBorderWidthOnActive: number | undefined; /** Suggested action (while `:active`): Text color */ - suggestedActionTextColorOnActive?: string | undefined; + suggestedActionTextColorOnActive: string | undefined; /** Suggested action (while `:focus`): Background color */ - suggestedActionBackgroundColorOnFocus?: string | undefined; + suggestedActionBackgroundColorOnFocus: string | undefined; /** Suggested action (while `:focus`): Border color */ - suggestedActionBorderColorOnFocus?: string | undefined; + suggestedActionBorderColorOnFocus: string | undefined; /** Suggested action (while `:focus`): Border style */ - suggestedActionBorderStyleOnFocus?: string | undefined; + suggestedActionBorderStyleOnFocus: string | undefined; /** Suggested action (while `:focus`): Border width */ - suggestedActionBorderWidthOnFocus?: number | undefined; + suggestedActionBorderWidthOnFocus: number | undefined; /** Suggested action (while `:focus`): Text color */ - suggestedActionTextColorOnFocus?: string | undefined; + suggestedActionTextColorOnFocus: string | undefined; /** * Suggested action (while `:hover`): Background color * * @default '#F3F2F1' */ - suggestedActionBackgroundColorOnHover?: string | undefined; + suggestedActionBackgroundColorOnHover: string | undefined; /** Suggested action (while `:hover`): Border color */ - suggestedActionBorderColorOnHover?: string | undefined; + suggestedActionBorderColorOnHover: string | undefined; /** Suggested action (while `:hover`): Border style */ - suggestedActionBorderStyleOnHover?: string | undefined; + suggestedActionBorderStyleOnHover: string | undefined; /** Suggested action (while `:hover`): Border width */ - suggestedActionBorderWidthOnHover?: number | undefined; + suggestedActionBorderWidthOnHover: number | undefined; /** Suggested action (while `:hover`): Text color */ - suggestedActionTextColorOnHover?: string | undefined; - - /** - * Suggested action (while `:disabled`): Background, defaults to suggestedActionBackground. - * - * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnDisabled` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionDisabledBackground?: string | undefined; - - /** - * Suggested action (while `:disabled`): Border color - * - * @deprecated Since 4.15.0: Please use `suggestedActionBorderColorOnDisabled` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionDisabledBorderColor?: string | undefined; - - /** - * Suggested action (while `:disabled`): Border style - * - * @deprecated Since 4.15.0: Please use `suggestedActionBorderStyleOnDisabled` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionDisabledBorderStyle?: string | undefined; - - /** - * Suggested action (while `:disabled`): Border width - * - * @deprecated Since 4.15.0: Please use `suggestedActionBorderWidthOnDisabled` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionDisabledBorderWidth?: number | undefined; - - /** - * Suggested action (while `:disabled`): Foreground color, defaults to subtle color - * - * @deprecated Since 4.15.0: Please use `suggestedActionTextColorOnDisabled` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionDisabledTextColor?: string | undefined; + suggestedActionTextColorOnHover: string | undefined; /** * Suggested action: Height * * @default 40 */ - suggestedActionHeight?: number | string | undefined; + suggestedActionHeight: number | string | undefined; /** * Suggested action: Image height * * @default 20 */ - suggestedActionImageHeight?: number | string | undefined; + suggestedActionImageHeight: number | string | undefined; /** * Suggested action: Layout type * * @default 'carousel' */ - suggestedActionLayout?: 'carousel' | 'flow' | 'stacked' | undefined; + suggestedActionLayout: 'carousel' | 'flow' | 'stacked' | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border color * * @default '#605E5C' */ - suggestedActionKeyboardFocusIndicatorBorderColor?: string | undefined; + suggestedActionKeyboardFocusIndicatorBorderColor: string | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border radius * * @default 0 */ - suggestedActionKeyboardFocusIndicatorBorderRadius?: number | string | undefined; + suggestedActionKeyboardFocusIndicatorBorderRadius: number | string | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border style * * @default 'solid' */ - suggestedActionKeyboardFocusIndicatorBorderStyle?: string | undefined; + suggestedActionKeyboardFocusIndicatorBorderStyle: string | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator border width * * @default 1 */ - suggestedActionKeyboardFocusIndicatorBorderWidth?: number | undefined; + suggestedActionKeyboardFocusIndicatorBorderWidth: number | undefined; /** * Suggested action (while `:focus-visible`): Keyboard focus indicator inset * * @default 2 */ - suggestedActionKeyboardFocusIndicatorInset?: number | undefined; - - /** - * Suggested action (while `:active`): background - * - * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnActive` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionActiveBackground?: string | undefined; - - /** - * Suggested action (while `:focus`): background - * - * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnFocus` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionFocusBackground?: string | undefined; - - /** - * Suggested action (while `:hover`): background - * - * @deprecated Since 4.15.0: Please use `suggestedActionBackgroundColorOnHover` instead. This option will be removed on or after 2023-09-16. - */ - suggestedActionHoverBackground?: string | undefined; + suggestedActionKeyboardFocusIndicatorInset: number | undefined; /** * Suggested actions carousel layout @@ -702,23 +610,23 @@ type StyleOptions = { /** * Cursor when mouseover on flipper */ - suggestedActionsCarouselFlipperCursor?: string | undefined; + suggestedActionsCarouselFlipperCursor: string | undefined; /** * Flipper bounding box size */ - suggestedActionsCarouselFlipperBoxWidth?: number | undefined; + suggestedActionsCarouselFlipperBoxWidth: number | undefined; /** * Flipper button's visible size */ - suggestedActionsCarouselFlipperSize?: number | undefined; + suggestedActionsCarouselFlipperSize: number | undefined; /** * Suggested actions flow layout * Default value is 'auto', */ - suggestedActionsFlowMaxHeight?: number | undefined; + suggestedActionsFlowMaxHeight: number | undefined; /** * Suggested actions stacked layout @@ -727,31 +635,31 @@ type StyleOptions = { /** * Stacked height container's max height. Default value is 'auto' */ - suggestedActionsStackedHeight?: number | 'auto' | undefined; + suggestedActionsStackedHeight: number | 'auto' | undefined; /** * Stacked overflow default value is 'auto' */ - suggestedActionsStackedOverflow?: 'auto' | 'hidden' | 'scroll' | 'visible' | undefined; + suggestedActionsStackedOverflow: 'auto' | 'hidden' | 'scroll' | 'visible' | undefined; /** * Button max height default value is 100% if suggestedActionsStackedLayoutButtonTextWrap is true */ - suggestedActionsStackedLayoutButtonMaxHeight?: number | string | undefined; + suggestedActionsStackedLayoutButtonMaxHeight: number | string | undefined; /** * Button Text Wrap, if set to true, will wrap long text in buttons in STACKED mode ONLY */ - suggestedActionsStackedLayoutButtonTextWrap?: boolean | undefined; + suggestedActionsStackedLayoutButtonTextWrap: boolean | undefined; /** Suggested actions: Visual keyboard indicator color for the container. */ - suggestedActionsVisualKeyboardIndicatorColor?: string | undefined; + suggestedActionsVisualKeyboardIndicatorColor: string | undefined; /** Suggested actions: Visual keyboard indicator style for the container. */ - suggestedActionsVisualKeyboardIndicatorStyle?: string | undefined; + suggestedActionsVisualKeyboardIndicatorStyle: string | undefined; /** Suggested actions: Visual keyboard indicator width for the container. */ - suggestedActionsVisualKeyboardIndicatorWidth?: number | undefined; + suggestedActionsVisualKeyboardIndicatorWidth: number | undefined; /** * Timestamp @@ -764,34 +672,34 @@ type StyleOptions = { * `false` - never group timestamps * `true` - group all timestamps */ - groupTimestamp?: boolean | number | undefined; + groupTimestamp: boolean | number | undefined; - sendTimeout?: number | ((activity: WebChatActivity) => number) | undefined; - sendTimeoutForAttachments?: number | undefined; + sendTimeout: number | ((activity: WebChatActivity) => number) | undefined; + sendTimeoutForAttachments: number | undefined; /** * Timestamp color default value is subtle */ - timestampColor?: string | undefined; + timestampColor: string | undefined; - timestampFormat?: 'absolute' | 'relative' | undefined; + timestampFormat: 'absolute' | 'relative' | undefined; /** * Transcript styling */ - transcriptTerminatorBackgroundColor?: string | undefined; - transcriptTerminatorBorderRadius?: number | string | undefined; - transcriptTerminatorColor?: string | undefined; - transcriptTerminatorFontSize?: number | string | undefined; + transcriptTerminatorBackgroundColor: string | undefined; + transcriptTerminatorBorderRadius: number | string | undefined; + transcriptTerminatorColor: string | undefined; + transcriptTerminatorFontSize: number | string | undefined; - transcriptActivityVisualKeyboardIndicatorColor?: string | undefined; - transcriptActivityVisualKeyboardIndicatorStyle?: string | undefined; - transcriptActivityVisualKeyboardIndicatorWidth?: number | string | undefined; + transcriptActivityVisualKeyboardIndicatorColor: string | undefined; + transcriptActivityVisualKeyboardIndicatorStyle: string | undefined; + transcriptActivityVisualKeyboardIndicatorWidth: number | string | undefined; - transcriptVisualKeyboardIndicatorColor?: string | undefined; - transcriptVisualKeyboardIndicatorStyle?: string | undefined; - transcriptVisualKeyboardIndicatorWidth?: number | string | undefined; + transcriptVisualKeyboardIndicatorColor: string | undefined; + transcriptVisualKeyboardIndicatorStyle: string | undefined; + transcriptVisualKeyboardIndicatorWidth: number | string | undefined; /** * Transcript overlay button @@ -805,35 +713,27 @@ type StyleOptions = { * - `"any"` will show when there are any offscreen messages * - `false` will always hide the button */ - scrollToEndButtonBehavior?: false | 'any' | 'unread' | undefined; + scrollToEndButtonBehavior: false | 'any' | 'unread' | undefined; /** Font size of the new message button. */ - scrollToEndButtonFontSize?: number | string | undefined; + scrollToEndButtonFontSize: number | string | undefined; - /** - * Font size of the new message button. - * - * @deprecated Since 4.14.0: Renamed to {@linkcode scrollToEndButtonFontSize}. - */ - // TODO: [P4] Will be removed on or after 2023-06-02. - newMessagesButtonFontSize?: number | string | undefined; - - transcriptOverlayButtonBackground?: string | undefined; - transcriptOverlayButtonBackgroundOnDisabled?: string | undefined; - transcriptOverlayButtonBackgroundOnFocus?: string | undefined; - transcriptOverlayButtonBackgroundOnHover?: string | undefined; - transcriptOverlayButtonColor?: string | undefined; - transcriptOverlayButtonColorOnDisabled?: string | undefined; + transcriptOverlayButtonBackground: string | undefined; + transcriptOverlayButtonBackgroundOnDisabled: string | undefined; + transcriptOverlayButtonBackgroundOnFocus: string | undefined; + transcriptOverlayButtonBackgroundOnHover: string | undefined; + transcriptOverlayButtonColor: string | undefined; + transcriptOverlayButtonColorOnDisabled: string | undefined; /** * Default value is transcriptOverlayButtonColor */ - transcriptOverlayButtonColorOnFocus?: string | undefined; + transcriptOverlayButtonColorOnFocus: string | undefined; /** * Default value is transcriptOverlayButtonColor */ - transcriptOverlayButtonColorOnHover?: string | undefined; + transcriptOverlayButtonColorOnHover: string | undefined; /** * Toast UI @@ -842,64 +742,64 @@ type StyleOptions = { /** * New debounce timeout value only affects new notifications. */ - notificationDebounceTimeout?: number | undefined; + notificationDebounceTimeout: number | undefined; - hideToaster?: boolean | undefined; - toasterHeight?: number | string | undefined; - toasterMaxHeight?: number | string | undefined; - toasterSingularMaxHeight?: number | string | undefined; - toastFontSize?: number | string | undefined; - toastIconWidth?: number | string | undefined; - toastSeparatorColor?: string | undefined; - toastTextPadding?: number | string | undefined; + hideToaster: boolean | undefined; + toasterHeight: number | string | undefined; + toasterMaxHeight: number | string | undefined; + toasterSingularMaxHeight: number | string | undefined; + toastFontSize: number | string | undefined; + toastIconWidth: number | string | undefined; + toastSeparatorColor: string | undefined; + toastTextPadding: number | string | undefined; - toastErrorBackgroundColor?: string | undefined; - toastErrorColor?: string | undefined; - toastInfoBackgroundColor?: string | undefined; - toastInfoColor?: string | undefined; - toastSuccessBackgroundColor?: string | undefined; - toastSuccessColor?: string | undefined; - toastWarnBackgroundColor?: string | undefined; - toastWarnColor?: string | undefined; + toastErrorBackgroundColor: string | undefined; + toastErrorColor: string | undefined; + toastInfoBackgroundColor: string | undefined; + toastInfoColor: string | undefined; + toastSuccessBackgroundColor: string | undefined; + toastSuccessColor: string | undefined; + toastWarnBackgroundColor: string | undefined; + toastWarnColor: string | undefined; /** * Typing animation */ - typingAnimationBackgroundImage?: string | undefined; - typingAnimationDuration?: number | undefined; - typingAnimationHeight?: number | string | undefined; - typingAnimationWidth?: number | string | undefined; + typingAnimationBackgroundImage: string | undefined; + typingAnimationDuration: number | undefined; + typingAnimationHeight: number | string | undefined; + typingAnimationWidth: number | string | undefined; /** * Upload thumbnail */ - enableUploadThumbnail?: boolean | undefined; - uploadThumbnailContentType?: string | undefined; - uploadThumbnailHeight?: number | undefined; - uploadThumbnailQuality?: number | undefined; - uploadThumbnailWidth?: number | undefined; + enableUploadThumbnail: boolean | undefined; + uploadThumbnailContentType: string | undefined; + uploadThumbnailHeight: number | undefined; + uploadThumbnailQuality: number | undefined; + uploadThumbnailWidth: number | undefined; /** * Video */ - videoHeight?: number | string | undefined; + videoHeight: number | string | undefined; /** * Maximum message length in characters * * @default 2000 */ - maxMessageLength?: number | undefined; + maxMessageLength: number | undefined; /** * The node to place Web Chat styles into. Needed when using as a Web Component. * * @default document.head */ - stylesRoot?: Node | undefined; + stylesRoot: Node | undefined; /** * Border animation @@ -912,7 +812,7 @@ type StyleOptions = { * * New in 4.19.0. */ - borderAnimationColor1?: string | undefined; + borderAnimationColor1: string | undefined; /** * Border animation 2nd color * @@ -920,7 +820,7 @@ type StyleOptions = { * * New in 4.19.0. */ - borderAnimationColor2?: string | undefined; + borderAnimationColor2: string | undefined; /** * Border animation 3rd color * @@ -928,7 +828,7 @@ type StyleOptions = { * * New in 4.19.0. */ - borderAnimationColor3?: string | undefined; + borderAnimationColor3: string | undefined; /** * Code block theme @@ -940,7 +840,7 @@ type StyleOptions = { * * New in 4.19.0. */ - codeBlockTheme?: 'github-light-default' | 'github-dark-default' | undefined; + codeBlockTheme: 'github-light-default' | 'github-dark-default' | undefined; /** * (EXPERIMENTAL) Feedback buttons placement @@ -954,7 +854,7 @@ type StyleOptions = { * * New in 4.19.0. */ - feedbackActionsPlacement?: 'activity-actions' | 'activity-status' | undefined; + feedbackActionsPlacement: 'activity-actions' | 'activity-status' | undefined; /** * Use continuous mode for speech recognition. Default to `false`. @@ -964,21 +864,21 @@ type StyleOptions = { * * @see https://github.com/microsoft/BotFramework-WebChat/pull/5426 */ - speechRecognitionContinuous?: boolean | undefined; + speechRecognitionContinuous: boolean | undefined; /** * Whether part groups are open by default. * * @default true */ - partGroupDefaultOpen?: boolean | undefined; + partGroupDefaultOpen: boolean | undefined; /** * Whether references (citation link definitions) are open by default. * * @default true */ - referenceListDefaultOpen?: boolean | undefined; + referenceListDefaultOpen: boolean | undefined; /** * Defines how activities are being grouped by (in the order of appearance in the array). Default to `['sender', 'status', 'part']` or `sender,status` in CSS. @@ -987,7 +887,7 @@ type StyleOptions = { * * To add new groupings, configure `groupActivitiesMiddleware` to output extra groups. Then, add the group names to `styleOptions.groupActivitiesBy`. */ - groupActivitiesBy?: readonly string[] | undefined; + groupActivitiesBy: readonly string[] | undefined; /** * Send box: maximum number of attachment item to preview as thumbnail before showing as text-only. @@ -995,14 +895,14 @@ type StyleOptions = { * * @default 114 */ - sendBoxAttachmentBarMaxHeight?: number | undefined; + sendBoxAttachmentBarMaxHeight: number | undefined; /** * Send box: maximum number of attachment item to preview as thumbnail before showing as list item. * * @default 3 */ - sendBoxAttachmentBarMaxThumbnail?: number | undefined; + sendBoxAttachmentBarMaxThumbnail: number | undefined; /** * Indicates if file upload should be disabled. @@ -1011,7 +911,7 @@ type StyleOptions = { * * New in 4.19.0. */ - disableFileUpload?: boolean | undefined; + disableFileUpload: boolean | undefined; /** * Controls microphone button visibility in Fluent theme send box. * @@ -1020,28 +920,59 @@ type StyleOptions = { * * @default 'auto' */ - showMicrophoneButton?: 'auto' | 'hide' | undefined; + showMicrophoneButton: 'auto' | 'hide' | undefined; }; // StrictStyleOptions is only used internally in Web Chat and for simplifying our code: // 1. Allow developers to set the "bubbleNubOffset" option as "top" (string), but when we normalize them, we will convert it to 0 (number); // 2. Renamed/deprecated options, only the newer option will be kept, the older option will be dropped. // Internally, no code should use the deprecated value except the migration code. -type StrictStyleOptions = Required< - Omit< - StyleOptions, - | 'bubbleImageHeight' - | 'bubbleMaxWidth' - | 'bubbleMinWidth' - | 'hideScrollToEndButton' - | 'hideUploadButton' - | 'newMessagesButtonFontSize' - > -> & { - bubbleFromUserNubOffset: number; - bubbleNubOffset: number; - emojiSet: false | Record; +type StyleOptions = Partial> & { + /** + * Specifies the fixed height of the bubble for image, default to unset. + * + * @deprecated Use `bubbleImageMaxHeight` and `bubbleImageMinHeight` instead. To mimick behavior before deprecation, set both options to 240px. + */ + bubbleImageHeight?: number | undefined; + + /* @deprecated Please use `bubbleAttachmentMaxWidth` and `bubbleMessageMaxWidth` instead. */ + bubbleMaxWidth?: number | undefined; + /* @deprecated Please use `bubbleAttachmentMaxWidth` and `bubbleMessageMaxWidth` instead. */ + bubbleMinWidth?: number | undefined; + + /** + * Indicates if the upload file button should be hidden. + * + * @default false + * + * @deprecated deprecated since 4.18.0: obsolated by {@linkcode disableFileUpload}. This option will be removed on or after 2027-07-14. + */ + hideUploadButton?: boolean | undefined; + + /** + * Nub offset 'bottom' will render nub at the bottom + * A positive or negative number will shift nub offset up/down + * "top" is equivalent to positive zero. + * "bottom" is equivalent to negative zero. + */ + bubbleFromUserNubOffset?: number | 'bottom' | 'top' | undefined; + + /** + * Nub offset ''bottom' will render nub at the bottom + * A positive or negative number will shift nub offset up/down + * "top" is equivalent to positive zero. + * "bottom" is equivalent to negative zero. + */ + bubbleNubOffset?: number | 'bottom' | 'top' | undefined; + + /** + * Emoji styling + * If true, Web Chat's default set of emoji will be enabled. See patchStyleOptions.js for default list. + * A custom object will enable unicode emoji specified by the developer. + * key: emoticon + * value: unicode emoji + */ + emojiSet?: boolean | Record | undefined; }; -export default StyleOptions; -export { StrictStyleOptions }; +export { type StrictStyleOptions, type StyleOptions }; diff --git a/packages/api/src/decorator/DecoratorComposer.tsx b/packages/api/src/decorator/DecoratorComposer.tsx index f78367f451..469d41c3bc 100644 --- a/packages/api/src/decorator/DecoratorComposer.tsx +++ b/packages/api/src/decorator/DecoratorComposer.tsx @@ -15,7 +15,15 @@ const decoratorComposerPropsSchema = pipe( ); const warnInvalidMiddlewarePropsSchema = optional( - array(custom(value => value[middlewareFactoryMarker satisfies symbol] === middlewareFactoryMarker)) + array( + custom( + value => + !!value && + typeof value === 'object' && + middlewareFactoryMarker in value && + value[middlewareFactoryMarker satisfies symbol] === middlewareFactoryMarker + ) + ) ); type DecoratorComposerProps = Omit, 'middleware'> & { diff --git a/packages/api/src/defaultStyleOptions.ts b/packages/api/src/defaultStyleOptions.ts index dba3e6275b..d0239b5ed5 100644 --- a/packages/api/src/defaultStyleOptions.ts +++ b/packages/api/src/defaultStyleOptions.ts @@ -1,5 +1,5 @@ /* eslint no-magic-numbers: "off" */ -import StyleOptions from './StyleOptions'; +import { type StrictStyleOptions } from './StyleOptions'; function fontFamily(fonts: readonly string[]): string { return fonts.map(font => `'${font}'`).join(', '); @@ -9,7 +9,7 @@ const DEFAULT_ACCENT = '#0063B1'; const DEFAULT_SUBTLE = '#767676'; // With contrast 4.5:1 to white const PADDING_REGULAR = 10; -const DEFAULT_OPTIONS: Required = { +const DEFAULT_OPTIONS: StrictStyleOptions = { // Basic styling accent: DEFAULT_ACCENT, backgroundColor: 'White', @@ -54,11 +54,8 @@ const DEFAULT_OPTIONS: Required = { bubbleFromUserNubOffset: 0, bubbleFromUserNubSize: undefined, bubbleFromUserTextColor: 'Black', - bubbleImageHeight: undefined, bubbleImageMaxHeight: 240, // Based on previously default `bubbleImageHeight` of 240px. bubbleImageMinHeight: 240, // TODO: Should change to 180px. Based on 320px bubble width showing a 16:9 image, or `320 / (16 / 9)`. 320px bubble width is based on 360px wide of the chat canvas. - bubbleMaxWidth: undefined, // Deprecated. - bubbleMinWidth: undefined, // Deprecated. bubbleAttachmentMaxWidth: 480, // Based off screen width = 600px bubbleAttachmentMinWidth: 250, // min screen width = 300px; Microsoft Edge requires 372px (https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/13621468/) bubbleMessageMaxWidth: 480, // Based off screen width = 600px @@ -80,7 +77,7 @@ const DEFAULT_OPTIONS: Required = { slowConnectionAfter: 15000, // Emoji - emojiSet: true, + emojiSet: undefined, // Live region - Accessibility internalLiveRegionFadeAfter: 1000, @@ -92,7 +89,6 @@ const DEFAULT_OPTIONS: Required = { markdownRenderHTML: true, // Scroll behavior - hideScrollToEndButton: undefined, // Deprecated as of 4.14.0. Use "scrollToEndButtonBehavior" instead. Remove on or after 2023-06-02. autoScrollSnapOnActivity: false, autoScrollSnapOnActivityOffset: 0, autoScrollSnapOnPage: false, @@ -102,7 +98,6 @@ const DEFAULT_OPTIONS: Required = { disableFileUpload: false, hideSendBox: false, hideTelephoneKeypadButton: true, - hideUploadButton: undefined, // Deprecated as of 4.19.0. microphoneButtonColorOnDictate: '#F33', sendAttachmentOn: 'send', sendBoxBackground: 'White', @@ -197,16 +192,6 @@ const DEFAULT_OPTIONS: Required = { suggestedActionKeyboardFocusIndicatorBorderWidth: 1, suggestedActionKeyboardFocusIndicatorInset: 2, - suggestedActionActiveBackground: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionBackground: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionDisabledBackground: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionDisabledBorderColor: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionDisabledBorderStyle: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionDisabledBorderWidth: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionDisabledTextColor: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionFocusBackground: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - suggestedActionHoverBackground: undefined, // Deprecated as of 4.15.0. Remove on or after 2023-09-16. - // Suggested actions carousel layout suggestedActionsCarouselFlipperCursor: undefined, suggestedActionsCarouselFlipperBoxWidth: 40, @@ -235,7 +220,6 @@ const DEFAULT_OPTIONS: Required = { // Transcript overlay buttons scrollToEndButtonBehavior: 'unread', scrollToEndButtonFontSize: '85%', - newMessagesButtonFontSize: undefined, // Deprecated as of 4.14.0, renamed to "scrollToEndButtonFontSize". Remove on or after 2023-06-02. transcriptOverlayButtonBackground: 'rgba(0, 0, 0, .6)', transcriptOverlayButtonBackgroundOnDisabled: 'rgba(0, 0, 0, .6)', transcriptOverlayButtonBackgroundOnFocus: 'rgba(0, 0, 0, .8)', diff --git a/packages/api/src/hooks/Composer.tsx b/packages/api/src/hooks/Composer.tsx index b229bc517e..8a8c30dde3 100644 --- a/packages/api/src/hooks/Composer.tsx +++ b/packages/api/src/hooks/Composer.tsx @@ -45,7 +45,7 @@ import React, { useCallback, useEffect, useMemo, useRef, useState, type ReactNod import { Provider } from 'react-redux'; import updateIn from 'simple-update-in'; -import type StyleOptions from '../StyleOptions'; +import { type StyleOptions } from '../StyleOptions'; import errorBoxTelemetryPolymiddleware from '../errorBox/errorBoxTelemetryPolymiddleware'; import PrecompiledGlobalize from '../external/PrecompiledGlobalize'; import usePonyfill from '../hooks/usePonyfill'; @@ -297,7 +297,7 @@ const ComposerCore = ({ sendTypingIndicator, toastMiddleware, typingIndicatorMiddleware, - uiState, + uiState: rawUIState, userID, username }: ComposerCoreProps) => { @@ -310,7 +310,7 @@ const ComposerCore = ({ const patchedDir = useMemo(() => (dir === 'ltr' || dir === 'rtl' ? dir : 'auto'), [dir]); const patchedGrammars = useMemo(() => grammars || [], [grammars]); - uiState = parseUIState(uiState, disabled); + const uiState = parseUIState(rawUIState, disabled); useEffect(() => { dispatch(setLanguage(locale)); diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index 2b2cff9478..1ebd07ce62 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -31,7 +31,7 @@ export { type SendBoxToolbarMiddlewareRequest } from './middleware/SendBoxToolbarMiddleware'; export { default as normalizeStyleOptions } from './normalizeStyleOptions'; -export { type StrictStyleOptions, type default as StyleOptions } from './StyleOptions'; +export { type StrictStyleOptions, type StyleOptions } from './StyleOptions'; export { type ActivityStatusMiddleware, type RenderActivityStatus } from './types/ActivityStatusMiddleware'; export { type AttachmentForScreenReaderComponentFactory, diff --git a/packages/api/src/normalizeStyleOptions.ts b/packages/api/src/normalizeStyleOptions.ts index 6b20be7ba1..4766d960fb 100644 --- a/packages/api/src/normalizeStyleOptions.ts +++ b/packages/api/src/normalizeStyleOptions.ts @@ -1,7 +1,7 @@ import { warnOnce } from '@msinternal/botframework-webchat-base/utils'; import defaultStyleOptions from './defaultStyleOptions'; -import StyleOptions, { StrictStyleOptions } from './StyleOptions'; +import type { StrictStyleOptions, StyleOptions } from './StyleOptions'; const bubbleImageHeightDeprecation = warnOnce( '"styleOptions.bubbleImageHeight" has been deprecated. Use "styleOptions.bubbleImageMaxHeight" and "styleOptions.bubbleImageMinHeight" instead. This deprecation migration will be removed on or after 2026-07-05.' @@ -15,37 +15,26 @@ const bubbleMinWidthDeprecation = warnOnce( '"styleOptions.bubbleMinWidth" has been deprecated. Use "styleOptions.bubbleAttachmentMinWidth" and "styleOptions.bubbleMessageMinWidth" instead. This deprecation migration will be removed on or after 2026-07-05.' ); -const hideScrollToEndButtonDeprecation = warnOnce( - '"styleOptions.hideScrollToEndButton" has been deprecated. To hide scroll to end button, set "scrollToEndBehavior" to false. This deprecation migration will be removed on or after 2023-06-02.' -); - -const newMessagesButtonFontSizeDeprecation = warnOnce( - '"styleOptions.newMessagesButtonFontSize" has been renamed to "styleOptions.scrollToEndButtonFontSize". This deprecation migration will be removed on or after 2023-06-02.' -); - -const suggestedActionBackgroundDeprecation = warnOnce( - '"styleOptions.suggestedActionBackground" has been deprecated. Please use "styleOptions.suggestedActionBackgroundColor" instead. This deprecation migration will be removed on or after 2021-09-16.' -); - -const suggestedActionXXXBackgroundDeprecation = warnOnce( - '"styleOptions.suggestedActionXXXBackground" has been deprecated. Please use "styleOptions.suggestedActionBackgroundColorOnXXX" instead. This deprecation migration will be removed on or after 2021-09-16.' -); - -const suggestedActionDisabledDeprecation = warnOnce( - '"styleOptions.suggestedActionDisabledXXX" has been renamed to "styleOptions.suggestedActionXXXOnDisabled". This deprecation migration will be removed on or after 2021-09-16.' -); - // TODO: [P4] We should add a notice for people who want to use "styleSet" instead of "styleOptions". // "styleSet" is actually CSS stylesheet and it is based on the DOM tree. // DOM tree may change from time to time, thus, maintaining "styleSet" becomes a constant effort. // eslint-disable-next-line complexity export default function normalizeStyleOptions({ - hideScrollToEndButton, - newMessagesButtonFontSize, + bubbleImageHeight, + bubbleMaxWidth, + bubbleMinWidth, + hideUploadButton: _hideUploadButton, ...options }: StyleOptions = {}): StrictStyleOptions { - const filledOptions: Required = { ...defaultStyleOptions, ...options }; + const filledOptions: Required = { + ...defaultStyleOptions, + bubbleImageHeight: undefined, + bubbleMaxWidth: undefined, + bubbleMinWidth: undefined, + hideUploadButton: undefined, + ...options + }; // Keep this list flat (no nested style) and serializable (no functions) const { bubbleFromUserNubOffset, bubbleNubOffset, emojiSet } = filledOptions; @@ -105,13 +94,6 @@ export default function normalizeStyleOptions({ normalizedEmojiSet = emojiSet; } - if (hideScrollToEndButton) { - hideScrollToEndButtonDeprecation(); - - filledOptions.scrollToEndButtonBehavior = false; - filledOptions.hideScrollToEndButton = undefined; - } - let patchedScrollToEndButtonBehavior = filledOptions.scrollToEndButtonBehavior; if (patchedScrollToEndButtonBehavior !== 'any' && patchedScrollToEndButtonBehavior !== false) { @@ -123,107 +105,27 @@ export default function normalizeStyleOptions({ patchedScrollToEndButtonBehavior = 'unread'; } - if (newMessagesButtonFontSize) { - newMessagesButtonFontSizeDeprecation(); - - // Only set if the "scrollToEndButtonFontSize" is not set. - filledOptions.scrollToEndButtonFontSize = newMessagesButtonFontSize; - filledOptions.newMessagesButtonFontSize = undefined; - } - - options.suggestedActionBackground && suggestedActionBackgroundDeprecation(); - - if (options.suggestedActionActiveBackground) { - suggestedActionXXXBackgroundDeprecation(); - - filledOptions.suggestedActionBackgroundColorOnActive = options.suggestedActionActiveBackground; - filledOptions.suggestedActionActiveBackground = undefined; - } - - if (options.suggestedActionFocusBackground) { - suggestedActionXXXBackgroundDeprecation(); - - filledOptions.suggestedActionBackgroundColorOnFocus = options.suggestedActionFocusBackground; - filledOptions.suggestedActionFocusBackground = undefined; - } - - if (options.suggestedActionHoverBackground) { - suggestedActionXXXBackgroundDeprecation(); - - filledOptions.suggestedActionBackgroundColorOnHover = options.suggestedActionHoverBackground; - filledOptions.suggestedActionHoverBackground = undefined; - } - - if (options.suggestedActionDisabledBackground) { - suggestedActionXXXBackgroundDeprecation(); - - filledOptions.suggestedActionBackgroundColorOnDisabled = options.suggestedActionDisabledBackground; - filledOptions.suggestedActionDisabledBackground = undefined; - } - - if (options.suggestedActionDisabledBorderColor) { - suggestedActionDisabledDeprecation(); - - filledOptions.suggestedActionBorderColorOnDisabled = options.suggestedActionDisabledBorderColor; - filledOptions.suggestedActionDisabledBorderColor = undefined; - } - - if (options.suggestedActionDisabledBorderStyle) { - suggestedActionDisabledDeprecation(); - - filledOptions.suggestedActionBorderStyleOnDisabled = options.suggestedActionDisabledBorderStyle; - filledOptions.suggestedActionDisabledBorderStyle = undefined; - } - - if (options.suggestedActionDisabledBorderWidth) { - suggestedActionDisabledDeprecation(); - - filledOptions.suggestedActionBorderWidthOnDisabled = options.suggestedActionDisabledBorderWidth; - filledOptions.suggestedActionDisabledBorderWidth = undefined; - } - - if (options.suggestedActionDisabledTextColor) { - suggestedActionDisabledDeprecation(); - - filledOptions.suggestedActionTextColorOnDisabled = options.suggestedActionDisabledTextColor; - filledOptions.suggestedActionDisabledTextColor = undefined; - } - - if (options.bubbleImageHeight) { + if (bubbleImageHeight) { bubbleImageHeightDeprecation(); - filledOptions.bubbleImageMaxHeight = options.bubbleImageHeight; - filledOptions.bubbleImageMinHeight = options.bubbleImageHeight; + filledOptions.bubbleImageMaxHeight = bubbleImageHeight; + filledOptions.bubbleImageMinHeight = bubbleImageHeight; filledOptions.bubbleImageHeight = undefined; } - if (options.bubbleMaxWidth) { - bubbleMaxWidthDeprecation(); - - filledOptions.bubbleAttachmentMaxWidth = options.bubbleMaxWidth; - filledOptions.bubbleMaxWidth = undefined; - } - - if (options.bubbleMinWidth) { - bubbleMinWidthDeprecation(); - - filledOptions.bubbleAttachmentMinWidth = options.bubbleMinWidth; - filledOptions.bubbleMinWidth = undefined; - } - - if (options.bubbleMaxWidth) { + if (bubbleMaxWidth) { bubbleMaxWidthDeprecation(); - filledOptions.bubbleMessageMaxWidth = options.bubbleMaxWidth; - filledOptions.bubbleMaxWidth = undefined; + filledOptions.bubbleAttachmentMaxWidth = bubbleMaxWidth; + filledOptions.bubbleMessageMaxWidth = bubbleMaxWidth; } - if (options.bubbleMinWidth) { + if (bubbleMinWidth) { bubbleMinWidthDeprecation(); - filledOptions.bubbleMessageMinWidth = options.bubbleMinWidth; - filledOptions.bubbleMinWidth = undefined; + filledOptions.bubbleAttachmentMinWidth = bubbleMinWidth; + filledOptions.bubbleMessageMinWidth = bubbleMinWidth; } return { diff --git a/packages/api/src/providers/StyleOptions/StyleOptionsComposer.tsx b/packages/api/src/providers/StyleOptions/StyleOptionsComposer.tsx index 9744ed4d8e..095e3636dd 100644 --- a/packages/api/src/providers/StyleOptions/StyleOptionsComposer.tsx +++ b/packages/api/src/providers/StyleOptions/StyleOptionsComposer.tsx @@ -2,7 +2,7 @@ import { reactNode, validateProps } from '@msinternal/botframework-webchat-react import React, { memo, useMemo } from 'react'; import { custom, object, optional, pipe, readonly, safeParse, type InferInput } from 'valibot'; -import type StyleOptions from '../../StyleOptions'; +import { type StyleOptions } from '../../StyleOptions'; import StyleOptionsContext, { StyleOptionsContextType, useStyleOptionsContext } from './private/StyleOptionsContext'; import rectifyStyleOptions from './private/rectifyStyleOptions'; diff --git a/packages/api/src/tsconfig.json b/packages/api/src/tsconfig.json index 10186e2736..8a3e5e723b 100644 --- a/packages/api/src/tsconfig.json +++ b/packages/api/src/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { "downlevelIteration": true, - "resolveJsonModule": true, // Required for localization files + "resolveJsonModule": true, // Required for localization files. + "strict": false, // We should flip this occasionally and fix all typing issues. "types": ["dom-speech-recognition"] }, "extends": "@msinternal/botframework-webchat-tsconfig/legacy" From c7c2af9e148befd514977016fc9c23c58d8f1d05 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 18:31:48 +0000 Subject: [PATCH 14/59] Port to TypeScript --- packages/api/src/utils/{isObject.js => isObject.ts} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename packages/api/src/utils/{isObject.js => isObject.ts} (57%) diff --git a/packages/api/src/utils/isObject.js b/packages/api/src/utils/isObject.ts similarity index 57% rename from packages/api/src/utils/isObject.js rename to packages/api/src/utils/isObject.ts index 3b62be7c8f..dbfeeb6eaf 100644 --- a/packages/api/src/utils/isObject.js +++ b/packages/api/src/utils/isObject.ts @@ -1,5 +1,5 @@ const { toString } = {}; -export default function isObject(obj) { +export default function isObject(obj: unknown): boolean { return toString.call(obj) === '[object Object]'; } From 4e19506975f5de946c0e6fed0fd65ff5ccb1e79f Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 18:31:54 +0000 Subject: [PATCH 15/59] Set strict to false --- packages/component/src/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/component/src/tsconfig.json b/packages/component/src/tsconfig.json index 96766595e1..ddd418527c 100644 --- a/packages/component/src/tsconfig.json +++ b/packages/component/src/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "allowJs": true, "downlevelIteration": true, + "strict": false, "types": ["dom-speech-recognition"] }, "extends": [ From 1a474edf46317b4e209e370998969dc1b3591002 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 19:18:13 +0000 Subject: [PATCH 16/59] Fix exporting class with private members --- .../customElements/CodeBlock.ts | 23 +++++++++++++++---- .../customElements/wrapAsCustomElement.ts | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts b/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts index 4562b594e6..a0f210d4c9 100644 --- a/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts +++ b/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts @@ -1,4 +1,5 @@ /* eslint-disable class-methods-use-this */ +// eslint-disable-next-line max-classes-per-file import { hooks } from 'botframework-webchat-api'; import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import { ReactNode, useMemo, useRef } from 'react'; @@ -11,15 +12,28 @@ import styles from './CodeBlock.module.css'; const { useStyleOptions, useLocalizer } = hooks; -class CodeBlock extends HTMLElement { +abstract class CodeBlockBase extends HTMLElement { + copyButtonElement: HTMLElement; + + abstract get code(): string; + abstract get theme(): string; + abstract set theme(value: string); + abstract get language(): string; + abstract set language(value: string); + abstract get options(): { readonly theme: string }; + + abstract scheduleUpdate(): void; + abstract update(): void; + abstract highlightCode(...args: Parameters): DocumentFragment | string; +} + +class CodeBlock extends CodeBlockBase { static observedAttributes = ['theme', 'language']; #connected = false; #originalFragment: DocumentFragment = undefined; #updateTask?: Promise; - copyButtonElement: HTMLElement; - get code() { return this.querySelector('code')?.textContent ?? ''; } @@ -27,6 +41,7 @@ class CodeBlock extends HTMLElement { get theme() { return this.getAttribute('theme'); } + set theme(value: string) { this.setAttribute('theme', value); } @@ -153,7 +168,7 @@ export default function useReactCodeBlockClass(copyButtonTagName: string) { const classNames = useStyles(styles); - return useMemo( + return useMemo( () => class ReactCodeBlock extends CodeBlock { static observedAttributes = CodeBlock.observedAttributes; diff --git a/packages/component/src/providers/CustomElements/customElements/wrapAsCustomElement.ts b/packages/component/src/providers/CustomElements/customElements/wrapAsCustomElement.ts index 145f9293e9..e7b9304ecc 100644 --- a/packages/component/src/providers/CustomElements/customElements/wrapAsCustomElement.ts +++ b/packages/component/src/providers/CustomElements/customElements/wrapAsCustomElement.ts @@ -10,7 +10,7 @@ const ConnectionState = { export default function wrapAsCustomElement( component: ComponentType, propKeys: (keyof Props)[] -) { +): typeof HTMLElement { type AttributeName = keyof { [K in keyof Props as K extends 'className' ? 'class' : K]: Props[K] } & string; const attributeNames = propKeys.map(key => (key === 'className' ? 'class' : key)) as AttributeName[]; From 0d1bacc57953a1bbd11f78652d6af652f7fb7088 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 19:20:56 +0000 Subject: [PATCH 17/59] Disable strict --- packages/bundle/src/tsconfig.json | 1 + packages/component/src/tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/bundle/src/tsconfig.json b/packages/bundle/src/tsconfig.json index 427e50993a..294fb69337 100644 --- a/packages/bundle/src/tsconfig.json +++ b/packages/bundle/src/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "strict": false, // We should flip this occasionally and fix all typing issues. "types": ["dom-speech-recognition"] }, "extends": [ diff --git a/packages/component/src/tsconfig.json b/packages/component/src/tsconfig.json index ddd418527c..0058183c3b 100644 --- a/packages/component/src/tsconfig.json +++ b/packages/component/src/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "allowJs": true, "downlevelIteration": true, - "strict": false, + "strict": false, // We should flip this occasionally and fix all typing issues. "types": ["dom-speech-recognition"] }, "extends": [ From b3a164af69fd3b2ffb3c3b19843ecea42b3131bc Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 19:27:53 +0000 Subject: [PATCH 18/59] Deprecate parseXXX --- .../src/types/external/OrgSchema/Action.ts | 7 +++++-- .../src/types/external/OrgSchema/Claim.ts | 7 +++++-- .../types/external/OrgSchema/CreativeWork.ts | 19 +++++++++++++++++-- .../types/external/OrgSchema/DefinedTerm.ts | 7 +++++-- .../src/types/external/OrgSchema/Person.ts | 7 +++++-- .../src/types/external/OrgSchema/Project.ts | 7 +++++-- .../src/types/external/OrgSchema/Thing.ts | 7 +++++-- .../types/external/OrgSchema/UserReview.ts | 7 +++++-- .../types/external/OrgSchema/VoteAction.ts | 7 +++++-- 9 files changed, 57 insertions(+), 18 deletions(-) diff --git a/packages/core/src/types/external/OrgSchema/Action.ts b/packages/core/src/types/external/OrgSchema/Action.ts index 3b0728b7bb..dff645b29d 100644 --- a/packages/core/src/types/external/OrgSchema/Action.ts +++ b/packages/core/src/types/external/OrgSchema/Action.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionStatusSchema, type ActionStatusInput, type ActionStatusOutput } from './ActionStatus'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -89,4 +89,7 @@ const actionSchema: GenericSchema = intersect([ ) ]); -export { actionSchema, type ActionInput, type ActionOutput }; +/** @deprecated Use Valibot.parse(actionSchema) instead. Will be removed on or after 2028-04-23. */ +const parseAction = (action: ActionInput): ActionOutput => parse(actionSchema, action); + +export { actionSchema, parseAction, type ActionInput, type ActionOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Claim.ts b/packages/core/src/types/external/OrgSchema/Claim.ts index 7b68c5fa00..aadeed2c7f 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, pipe, readonly, type GenericSchema } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, type GenericSchema } from 'valibot'; import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; import { projectSchema, type ProjectInput, type ProjectOutput } from './Project'; @@ -65,4 +65,7 @@ const claimSchema: GenericSchema = intersect([ ) ]); -export { claimSchema, type ClaimInput, type ClaimOutput }; +/** @deprecated Use Valibot.parse(claimSchema) instead. Will be removed on or after 2028-04-23. */ +const parseClaim = (claim: ClaimInput): ClaimOutput => parse(claimSchema, claim); + +export { claimSchema, parseClaim, type ClaimInput, type ClaimOutput }; diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index 97905b578c..881c61059c 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -1,4 +1,15 @@ -import { intersect, lazy, looseObject, number, pipe, readonly, string, union, type GenericSchema } from 'valibot'; +import { + intersect, + lazy, + looseObject, + number, + parse, + pipe, + readonly, + string, + union, + type GenericSchema +} from 'valibot'; import { creativeWorkStatusSchema, @@ -186,4 +197,8 @@ const creativeWorkSchema: GenericSchema = ) ]); -export { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput }; +/** @deprecated Use Valibot.parse(creativeWorkSchema) instead. Will be removed on or after 2028-04-23. */ +const parseCreativeWork = (creativeWork: CreativeWorkInput): CreativeWorkOutput => + parse(creativeWorkSchema, creativeWork); + +export { creativeWorkSchema, parseCreativeWork, type CreativeWorkInput, type CreativeWorkOutput }; diff --git a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts index d0000df7a9..37374d3111 100644 --- a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts +++ b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -60,4 +60,7 @@ const definedTermSchema: GenericSchema = in ) ]); -export { definedTermSchema, type DefinedTermInput, type DefinedTermOutput }; +/** @deprecated Use Valibot.parse(definedTermSchema) instead. Will be removed on or after 2028-04-23. */ +const parseDefinedTerm = (definedTerm: DefinedTermInput): DefinedTermOutput => parse(definedTermSchema, definedTerm); + +export { definedTermSchema, parseDefinedTerm, type DefinedTermInput, type DefinedTermOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Person.ts b/packages/core/src/types/external/OrgSchema/Person.ts index fd6fc5c599..fab7e5ca92 100644 --- a/packages/core/src/types/external/OrgSchema/Person.ts +++ b/packages/core/src/types/external/OrgSchema/Person.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -26,4 +26,7 @@ const personSchema: GenericSchema = intersect([ ) ]); -export { personSchema, type PersonInput, type PersonOutput }; +/** @deprecated Use Valibot.parse(personSchema) instead. Will be removed on or after 2028-04-23. */ +const parsePerson = (person: PersonInput): PersonOutput => parse(personSchema, person); + +export { parsePerson, personSchema, type PersonInput, type PersonOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Project.ts b/packages/core/src/types/external/OrgSchema/Project.ts index b967fb382d..1bf378f566 100644 --- a/packages/core/src/types/external/OrgSchema/Project.ts +++ b/packages/core/src/types/external/OrgSchema/Project.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, pipe, readonly, string } from 'valibot'; +import { intersect, looseObject, parse, pipe, readonly, string } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; @@ -57,4 +57,7 @@ const projectSchema = intersect([ ) ]); -export { projectSchema, type ProjectInput, type ProjectOutput }; +/** @deprecated Use Valibot.parse(projectSchema) instead. Will be removed on or after 2028-04-23. */ +const parseProject = (project: ProjectInput): ProjectOutput => parse(projectSchema, project); + +export { parseProject, projectSchema, type ProjectInput, type ProjectOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Thing.ts b/packages/core/src/types/external/OrgSchema/Thing.ts index 9b303df61f..fbd5e39bbb 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.ts @@ -1,4 +1,4 @@ -import { lazy, literal, looseObject, optional, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { lazy, literal, looseObject, optional, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; @@ -160,4 +160,7 @@ const thingSchema: GenericSchema = readonly() ); -export { thingSchema, type ThingInput, type ThingOutput }; +/** @deprecated Use Valibot.parse(thingSchema) instead. Will be removed on or after 2028-04-23. */ +const parseThing = (thing: ThingInput): ThingOutput => parse(thingSchema, thing); + +export { parseThing, thingSchema, type ThingInput, type ThingOutput }; diff --git a/packages/core/src/types/external/OrgSchema/UserReview.ts b/packages/core/src/types/external/OrgSchema/UserReview.ts index 90506e9c70..721338555f 100644 --- a/packages/core/src/types/external/OrgSchema/UserReview.ts +++ b/packages/core/src/types/external/OrgSchema/UserReview.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperty from './private/orgSchemaProperty'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; @@ -41,4 +41,7 @@ const userReviewSchema: GenericSchema = inter ) ]); -export { userReviewSchema, type UserReviewInput, type UserReviewOutput }; +/** @deprecated Use Valibot.parse(userReviewSchema) instead. Will be removed on or after 2028-04-23. */ +const parseUserReview = (userReview: UserReviewInput): UserReviewOutput => parse(userReviewSchema, userReview); + +export { parseUserReview, userReviewSchema, type UserReviewInput, type UserReviewOutput }; diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.ts b/packages/core/src/types/external/OrgSchema/VoteAction.ts index ba31f9be02..fa62d484a5 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -49,4 +49,7 @@ const voteActionSchema: GenericSchema = inter ) ]); -export { voteActionSchema, type VoteActionInput, type VoteActionOutput }; +/** @deprecated Use Valibot.parse(voteActionSchema) instead. Will be removed on or after 2028-04-23. */ +const parseVoteAction = (voteAction: VoteActionInput): VoteActionOutput => parse(voteActionSchema, voteAction); + +export { parseVoteAction, voteActionSchema, type VoteActionInput, type VoteActionOutput }; From 53c53d1e4673f7fcffaa30530df09c7117481527 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 19:35:00 +0000 Subject: [PATCH 19/59] Readd and deprecate parseXXX --- packages/core/src/index.ts | 14 ++++++++++++++ .../core/src/types/external/OrgSchema/Thing.ts | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index dec4cdf361..5a7f7ea94d 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -38,6 +38,13 @@ import createStore, { withDevTools as createStoreWithDevTools, withOptions as createStoreWithOptions } from './createStore'; +import { parseAction } from './types/external/OrgSchema/Action'; +import { parseClaim } from './types/external/OrgSchema/Claim'; +import { parseCreativeWork } from './types/external/OrgSchema/CreativeWork'; +import { parseDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; +import { parseProject } from './types/external/OrgSchema/Project'; +import { parseThing } from './types/external/OrgSchema/Thing'; +import { parseVoteAction } from './types/external/OrgSchema/VoteAction'; import getActivityLivestreamingMetadata from './utils/getActivityLivestreamingMetadata'; import getOrgSchemaMessage from './utils/getOrgSchemaMessage'; import onErrorResumeNext from './utils/onErrorResumeNext'; @@ -114,6 +121,13 @@ export { markActivity, muteVoiceRecording, onErrorResumeNext, + parseAction, + parseClaim, + parseCreativeWork, + parseDefinedTerm, + parseProject, + parseThing, + parseVoteAction, postActivity, postVoiceActivity, registerVoiceHandler, diff --git a/packages/core/src/types/external/OrgSchema/Thing.ts b/packages/core/src/types/external/OrgSchema/Thing.ts index fbd5e39bbb..2d288ff2ce 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.ts @@ -1,7 +1,7 @@ import { lazy, literal, looseObject, optional, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; -import orgSchemaProperties from './private/orgSchemaProperties'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; +import orgSchemaProperties from './private/orgSchemaProperties'; /** * The most generic type of item. From 4f03e13aac3ef07fd9038481ff9c29660f206bda Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 19:39:59 +0000 Subject: [PATCH 20/59] Add available/install Co-authored-by: Copilot --- .../bundle/src/createBrowserWebSpeechPonyfillFactory.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/bundle/src/createBrowserWebSpeechPonyfillFactory.ts b/packages/bundle/src/createBrowserWebSpeechPonyfillFactory.ts index 1982e759e3..4c18d61956 100644 --- a/packages/bundle/src/createBrowserWebSpeechPonyfillFactory.ts +++ b/packages/bundle/src/createBrowserWebSpeechPonyfillFactory.ts @@ -11,7 +11,14 @@ export default function createBrowserWebSpeechPonyfillFactory(): () => WebSpeech return () => ({ SpeechGrammarList: window.SpeechGrammarList || window.webkitSpeechGrammarList, - SpeechRecognition: window.SpeechRecognition || window.webkitSpeechRecognition, + SpeechRecognition: + window.SpeechRecognition || + (window.webkitSpeechRecognition + ? Object.assign(window.webkitSpeechRecognition, { + available: (): Promise => Promise.resolve('unavailable'), + install: (): Promise => Promise.resolve(false) + }) + : undefined), speechSynthesis: window.speechSynthesis, SpeechSynthesisUtterance: window.SpeechSynthesisUtterance }); From 23d42a8549c1b862a825851e147d80312d7f5431 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 19:47:56 +0000 Subject: [PATCH 21/59] Fix updated OrgSchemaXXX signature --- packages/core/src/index.ts | 49 +++++++++++++------ .../activity/CopilotMessageHeader.tsx | 4 +- .../activity/PartGroupingDecorator.tsx | 3 +- .../activity/private/useActivityAuthor.ts | 17 ++++--- 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 5a7f7ea94d..4376cfe3c4 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -90,13 +90,41 @@ import type { DirectLineSuggestedAction } from './types/external/DirectLineSugge import type { DirectLineThumbnailCard } from './types/external/DirectLineThumbnailCard'; import type { DirectLineVideoCard } from './types/external/DirectLineVideoCard'; import type { Observable } from './types/external/Observable'; -import type { ActionOutput as OrgSchemaAction } from './types/external/OrgSchema/Action'; -import type { ClaimOutput as OrgSchemaClaim } from './types/external/OrgSchema/Claim'; -import type { CreativeWorkOutput as OrgSchemaCreativeWork } from './types/external/OrgSchema/CreativeWork'; -import type { DefinedTermOutput as OrgSchemaDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; -import type { ProjectOutput as OrgSchemaProject } from './types/external/OrgSchema/Project'; -import type { ThingOutput as OrgSchemaThing } from './types/external/OrgSchema/Thing'; -import type { UserReviewOutput as OrgSchemaUserReview } from './types/external/OrgSchema/UserReview'; + +// #region Schema.org +export { + actionSchema as orgSchemaActionSchema, + type ActionOutput as OrgSchemaAction +} from './types/external/OrgSchema/Action'; +export { + claimSchema as orgSchemaClaimSchema, + type ClaimOutput as OrgSchemaClaim +} from './types/external/OrgSchema/Claim'; +export { + creativeWorkSchema as orgSchemaCreativeWorkSchema, + type CreativeWorkOutput as OrgSchemaCreativeWork +} from './types/external/OrgSchema/CreativeWork'; +export { + definedTermSchema as orgSchemaDefinedTermSchema, + type DefinedTermOutput as OrgSchemaDefinedTerm +} from './types/external/OrgSchema/DefinedTerm'; +export { + personSchema as orgSchemaPersonSchema, + type PersonOutput as OrgSchemaPerson +} from './types/external/OrgSchema/Person'; +export { + projectSchema as orgSchemaProjectSchema, + type ProjectOutput as OrgSchemaProject +} from './types/external/OrgSchema/Project'; +export { + thingSchema as orgSchemaThingSchema, + type ThingOutput as OrgSchemaThing +} from './types/external/OrgSchema/Thing'; +export { + userReviewSchema as orgSchemaUserReviewSchema, + type UserReviewOutput as OrgSchemaUserReview +} from './types/external/OrgSchema/UserReview'; +// #endregion /** @deprecated */ export { singleToArray, type OneOrMany } from '@msinternal/botframework-webchat-base/utils'; @@ -172,13 +200,6 @@ export type { DirectLineVideoCard, GlobalScopePonyfill, Observable, - OrgSchemaAction, - OrgSchemaClaim, - OrgSchemaCreativeWork, - OrgSchemaDefinedTerm, - OrgSchemaProject, - OrgSchemaThing, - OrgSchemaUserReview, SendBoxAttachment, VoiceHandler, VoiceState, diff --git a/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx b/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx index dc94b534db..24e0962f96 100644 --- a/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx +++ b/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx @@ -37,8 +37,8 @@ function CopilotMessageHeader(props: CopilotMessageHeaderProps) { ); const author = useActivityAuthor(activity); - const avatarImage = author?.image || botAvatarImage; - const botTitle = author?.name || activity?.from?.name; + const avatarImage = author?.image?.[0] || botAvatarImage; + const botTitle = author?.name?.[0] || activity?.from?.name?.[0]; return (
diff --git a/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx b/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx index 31b4e6626d..487f712fba 100644 --- a/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx +++ b/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx @@ -39,7 +39,8 @@ function PartGroupingDecorator(props: PartGroupingDecoratorProps) { const isInGroup = useMemo( () => - restActivities.length > 0 || !!(activity?.entities && getOrgSchemaMessage(activity.entities)?.isPartOf?.['@id']), + restActivities.length > 0 || + !!(activity?.entities && getOrgSchemaMessage(activity.entities)?.isPartOf?.[0]?.['@id']), [activity, restActivities.length] ); diff --git a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts index 215d38053c..353ea260b2 100644 --- a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts +++ b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts @@ -1,16 +1,21 @@ +import { orgSchemaPersonSchema, type OrgSchemaPerson } from 'botframework-webchat-core'; import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal'; import { useMemo } from 'react'; +import { parse } from 'valibot'; -export default function useActivityAuthor(activity?: WebChatActivity | undefined) { +export default function useActivityAuthor(activity?: WebChatActivity | undefined): OrgSchemaPerson | undefined { return useMemo(() => { const entity = getOrgSchemaMessage(activity?.entities || []); - return typeof entity?.author === 'string' - ? { + + const [firstAuthor] = entity?.author ?? []; + + return typeof firstAuthor === 'string' + ? parse(orgSchemaPersonSchema, { '@type': 'Person', description: undefined, image: undefined, - name: entity?.author - } - : entity?.author; + name: firstAuthor + }) + : firstAuthor; }, [activity]); } From 7efaee469f64ef9494f999f9c7f10ff22b965253 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:07:41 +0000 Subject: [PATCH 22/59] Add lazy --- packages/core/src/types/external/OrgSchema/Action.ts | 2 +- packages/core/src/types/external/OrgSchema/Claim.ts | 2 +- packages/core/src/types/external/OrgSchema/CreativeWork.ts | 2 +- packages/core/src/types/external/OrgSchema/DefinedTerm.ts | 4 ++-- packages/core/src/types/external/OrgSchema/Person.ts | 4 ++-- packages/core/src/types/external/OrgSchema/Project.ts | 4 ++-- packages/core/src/types/external/OrgSchema/UserReview.ts | 4 ++-- packages/core/src/types/external/OrgSchema/VoteAction.ts | 4 ++-- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/core/src/types/external/OrgSchema/Action.ts b/packages/core/src/types/external/OrgSchema/Action.ts index dff645b29d..5029160eb6 100644 --- a/packages/core/src/types/external/OrgSchema/Action.ts +++ b/packages/core/src/types/external/OrgSchema/Action.ts @@ -77,7 +77,7 @@ type ActionOutput = ThingOutput & { }; const actionSchema: GenericSchema = intersect([ - thingSchema, + lazy(() => thingSchema), pipe( looseObject({ actionOption: orgSchemaProperties(string()), diff --git a/packages/core/src/types/external/OrgSchema/Claim.ts b/packages/core/src/types/external/OrgSchema/Claim.ts index aadeed2c7f..e1ac7650a6 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.ts @@ -55,7 +55,7 @@ type ClaimOutput = CreativeWorkOutput & { }; const claimSchema: GenericSchema = intersect([ - creativeWorkSchema, + lazy(() => creativeWorkSchema), pipe( looseObject({ appearance: orgSchemaProperties(lazy(() => creativeWorkSchema)), diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index 881c61059c..768eba6d42 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -176,7 +176,7 @@ type CreativeWorkOutput = ThingOutput & { }; const creativeWorkSchema: GenericSchema = intersect([ - thingSchema, + lazy(() => thingSchema), pipe( looseObject({ // For forward compatibility, we did not enforce @type must be "CreativeWork" or any other subtypes. diff --git a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts index 37374d3111..1fab65fa3f 100644 --- a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts +++ b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -50,7 +50,7 @@ type DefinedTermOutput = ThingOutput & { }; const definedTermSchema: GenericSchema = intersect([ - thingSchema, + lazy(() => thingSchema), pipe( looseObject({ inDefinedTermSet: orgSchemaProperties(string()), diff --git a/packages/core/src/types/external/OrgSchema/Person.ts b/packages/core/src/types/external/OrgSchema/Person.ts index fab7e5ca92..f81dd629fd 100644 --- a/packages/core/src/types/external/OrgSchema/Person.ts +++ b/packages/core/src/types/external/OrgSchema/Person.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -15,7 +15,7 @@ type PersonOutput = ThingOutput & { }; const personSchema: GenericSchema = intersect([ - thingSchema, + lazy(() => thingSchema), pipe( looseObject({ description: orgSchemaProperties(string()), diff --git a/packages/core/src/types/external/OrgSchema/Project.ts b/packages/core/src/types/external/OrgSchema/Project.ts index 1bf378f566..febf05b51e 100644 --- a/packages/core/src/types/external/OrgSchema/Project.ts +++ b/packages/core/src/types/external/OrgSchema/Project.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, parse, pipe, readonly, string } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, string } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; @@ -43,7 +43,7 @@ type ProjectOutput = ThingOutput & { * @see https://schema.org/Project */ const projectSchema = intersect([ - thingSchema, + lazy(() => thingSchema), pipe( looseObject({ /** diff --git a/packages/core/src/types/external/OrgSchema/UserReview.ts b/packages/core/src/types/external/OrgSchema/UserReview.ts index 721338555f..a6c3a00a06 100644 --- a/packages/core/src/types/external/OrgSchema/UserReview.ts +++ b/packages/core/src/types/external/OrgSchema/UserReview.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperty from './private/orgSchemaProperty'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; @@ -32,7 +32,7 @@ type UserReviewOutput = ThingOutput & { }; const userReviewSchema: GenericSchema = intersect([ - thingSchema, + lazy(() => thingSchema), pipe( looseObject({ reviewAspect: orgSchemaProperty(string()) diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.ts b/packages/core/src/types/external/OrgSchema/VoteAction.ts index fa62d484a5..6dd03df907 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.ts @@ -1,4 +1,4 @@ -import { intersect, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -40,7 +40,7 @@ type VoteActionOutput = ActionOutput & { }; const voteActionSchema: GenericSchema = intersect([ - actionSchema, + lazy(() => actionSchema), pipe( looseObject({ actionOption: orgSchemaProperties(string()) From 67ed70f80dfc5b70c8e79d6bf3004b31c4f1acfe Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:15:38 +0000 Subject: [PATCH 23/59] Add ignoreDeprecations --- packages/styles/src/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/styles/src/tsconfig.json b/packages/styles/src/tsconfig.json index ea28358425..fce7ed7bb2 100644 --- a/packages/styles/src/tsconfig.json +++ b/packages/styles/src/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { "allowSyntheticDefaultImports": true, - "checkJs": false + "checkJs": false, + "ignoreDeprecations": "6.0" // Required for tsup@8.5.1 to work in typescript@6.0.3 }, "extends": ["@msinternal/botframework-webchat-tsconfig/current", "./build/tsconfig.json"] } From 7f685a5959e3c268423fb072dd5036d10599ae02 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:16:38 +0000 Subject: [PATCH 24/59] Move ignoreDeprecations --- packages/styles/src/build/tsconfig.json | 1 + packages/styles/src/tsconfig.json | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/styles/src/build/tsconfig.json b/packages/styles/src/build/tsconfig.json index fb7143e3bd..873eefab5c 100644 --- a/packages/styles/src/build/tsconfig.json +++ b/packages/styles/src/build/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "ignoreDeprecations": "6.0", // Required for tsup@8.5.1 to work in typescript@6.0.3 "module": "nodenext", "moduleResolution": "nodenext", "types": ["node"] diff --git a/packages/styles/src/tsconfig.json b/packages/styles/src/tsconfig.json index fce7ed7bb2..ea28358425 100644 --- a/packages/styles/src/tsconfig.json +++ b/packages/styles/src/tsconfig.json @@ -1,8 +1,7 @@ { "compilerOptions": { "allowSyntheticDefaultImports": true, - "checkJs": false, - "ignoreDeprecations": "6.0" // Required for tsup@8.5.1 to work in typescript@6.0.3 + "checkJs": false }, "extends": ["@msinternal/botframework-webchat-tsconfig/current", "./build/tsconfig.json"] } From 5a2e5f509c1b3fbbd3c4da2cb458049c2ee39846 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:32:25 +0000 Subject: [PATCH 25/59] Fix precommit --- packages/core/src/tsconfig.json | 2 +- .../preChatActivity/PreChatMessageActivity.tsx | 6 +++--- packages/fluent-theme/src/private/composePipeline.tsx | 10 +++++++--- packages/tsconfig/src/current/tsconfig.json | 3 +-- packages/tsconfig/src/legacy/tsconfig.json | 3 +-- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/core/src/tsconfig.json b/packages/core/src/tsconfig.json index 747faad1a8..e3e3e28de9 100644 --- a/packages/core/src/tsconfig.json +++ b/packages/core/src/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "types": [] + "strict": false }, "exclude": ["**/*.spec.ts"], "extends": "@msinternal/botframework-webchat-tsconfig/legacy" diff --git a/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx b/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx index 440ecb9a65..c0bfa4ca37 100644 --- a/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx +++ b/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx @@ -21,7 +21,7 @@ const PreChatMessageActivity = ({ activity }: Props) => { const author = useActivityAuthor(activity); const html = useMemo( - () => (renderMarkdownAsHTML ? { __html: renderMarkdownAsHTML(author?.description || '') } : { __html: '' }), + () => (renderMarkdownAsHTML ? { __html: renderMarkdownAsHTML(author?.description?.[0] || '') } : { __html: '' }), [author?.description, renderMarkdownAsHTML] ); @@ -36,9 +36,9 @@ const PreChatMessageActivity = ({ activity }: Props) => { > {author.image && ( {localize('AVATAR_ALT', )} {author.name &&

{author.name}

} diff --git a/packages/fluent-theme/src/private/composePipeline.tsx b/packages/fluent-theme/src/private/composePipeline.tsx index 810e2f3ad6..53ae1c9a1d 100644 --- a/packages/fluent-theme/src/private/composePipeline.tsx +++ b/packages/fluent-theme/src/private/composePipeline.tsx @@ -39,11 +39,15 @@ export function composePipeline< return StageWrapper; }, PassthroughComponent); - return memo(function Pipeline(props: PipelineProps) { + const Pipeline: PipelineComponent = function Pipeline(props: PipelineProps) { const { request, ...restProps } = props; return ; - }); + }; + + Pipeline.displayName = 'Pipeline'; + + return memo(Pipeline); } -export type { NextComponent, PipelineProps, PipelineComponent, StageComponent }; +export type { NextComponent, PipelineComponent, PipelineProps, StageComponent }; diff --git a/packages/tsconfig/src/current/tsconfig.json b/packages/tsconfig/src/current/tsconfig.json index 621d2f0632..c0914a8868 100644 --- a/packages/tsconfig/src/current/tsconfig.json +++ b/packages/tsconfig/src/current/tsconfig.json @@ -6,8 +6,7 @@ "moduleResolution": "Bundler", "noEmit": true, "skipLibCheck": true, - "target": "ESNext", - "types": [] // Platform neutrality: disable loading default types + "target": "ESNext" }, "extends": "@tsconfig/strictest/tsconfig.json" } diff --git a/packages/tsconfig/src/legacy/tsconfig.json b/packages/tsconfig/src/legacy/tsconfig.json index e0372e43ea..c808fddff1 100644 --- a/packages/tsconfig/src/legacy/tsconfig.json +++ b/packages/tsconfig/src/legacy/tsconfig.json @@ -8,7 +8,6 @@ "noEmit": true, "skipLibCheck": true, "sourceMap": true, - "target": "ESNext", - "types": [] // Platform neutrality: disable loading default types + "target": "ESNext" } } From aba0962b8e3730116c85699f57d3d8d73d1635aa Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:39:57 +0000 Subject: [PATCH 26/59] Remove deprecated tests --- .../deprecated.hideScrollToEndButton.html | 69 ------------------ ...ated.hideScrollToEndButton.html.snap-1.png | Bin 59896 -> 0 bytes ...ated.hideScrollToEndButton.html.snap-2.png | Bin 61747 -> 0 bytes .../deprecated.newMessageButtonFontSize.html | 52 ------------- ...d.newMessageButtonFontSize.html.snap-1.png | Bin 64326 -> 0 bytes 5 files changed, 121 deletions(-) delete mode 100644 __tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html delete mode 100644 __tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html.snap-1.png delete mode 100644 __tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html.snap-2.png delete mode 100644 __tests__/html2/styleOptions/deprecated.newMessageButtonFontSize.html delete mode 100644 __tests__/html2/styleOptions/deprecated.newMessageButtonFontSize.html.snap-1.png diff --git a/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html b/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html deleted file mode 100644 index c9d4154cd4..0000000000 --- a/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - -
- - - diff --git a/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html.snap-1.png b/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html.snap-1.png deleted file mode 100644 index 31cd732ab9c89a85e00f75eff46305c1a249e74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59896 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 z

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 diff --git a/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html.snap-2.png b/__tests__/html2/styleOptions/deprecated.hideScrollToEndButton.html.snap-2.png deleted file mode 100644 index 48d7243e1d76632431e0930a1a68c38a723cdf58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61747 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 z

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 - - - - - - - - -

- - - diff --git a/__tests__/html2/styleOptions/deprecated.newMessageButtonFontSize.html.snap-1.png b/__tests__/html2/styleOptions/deprecated.newMessageButtonFontSize.html.snap-1.png deleted file mode 100644 index 43a8b6494b7a97ec5b1c9a88cec9af84c30d34a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64326 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ΠSOV-r0I6F?j@pdT%A+S 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⋙^^ll*7*JueE zs@G9{rcPM6;^_(i;3%X51Xm6g-hAga2Z7QCaBJVrX!G10j7h*?O{8vs{T@x_c6i-aDOS&M zNNi)6;FSy|AM2eVEl*kXq5$1-h7gyJG2gq|`9Dnboq({Qzud9XGYOV2OV3eGUP4tg%fF((O7#xclrLxW!O3*%m>br0ed1aixEtjv)>$*uKV7*Tpj? z7aGK-^ju+N=b^w^OSyTsX!dyag*sW?d$F)IuFRMxle;d`8jDe-5(gB!2qe|4!>yhA_M4_K0Nr^8`%d=n;|-K&jgAO0hcG?j00<)Pb+3 z<!s+nb6l{Qc@HrSeiv9%(tR=DTd}7G z)nUZJ=%q>2{nT>0Yg?r_gs9E?sFpwA_92j>T>Y}8VEMKBZp&K)r9;nx~w6D}tyNh3XrdUO*SJx?UBRCsAS zYShs<+w*dj4nY}zdYO8D_{t+n;b2M*58kJFFvrMop8S`3AKFh)=YeC;#x{!ud1ypw z``(8C6HV{UaL7&6_cFHAtUcz$@2}}U1Uh`5XbKdTQ&MNJqIX)3ZxjUoU}rKe7POS` z8EIV7$1s}P97k0ZT4Ld4zJ`g{qqD4CtUvYSE=!??$5N_1A-K!wB&d+vQMOo`P9H1q zc$&+8!K_K}Cb47OYRoi{{^{C5}Yk%~)*l zLMUFqYP6<|o`AK$_g;^vHSrAhqbA#yEwGRq^V*`N?O_&!=L0(9FKYWAMv390>37^e zcV!!kJ}jEUTTz60eyL#Ija0pa#s(EDowHE(9-6ijvaJL|mUq+p#b2%cDY@$xiRDgC z(;X;I-Ln8Jl{ShzT!JMJ^L$u59bN$76+Ma-3uc6$ zMrvmh`BgdX;rlSp!u)`sd$0h82aOWP&&r-*S)VtlfY~U0c4`fd<(FFa#YE!$(es}3 zZto)iY$qeN8CGBApsZ6QwFrvY}yQ+9G9=Cyzy5#Lq-IzMR zwVF;jbEoO8XOR)ww|n?7494Kn@Gk;vWU+H(1OjtH2wqDLT){4yYu=u}dkg&66G@oE z0B+?d=9?J<$8s3z;wbSvjG;!Vpq@I{~4&!MM2j4QS!FRCXiWIRku&=wty01 zqD#y-pcvmJ1niBXkLc{$&3t1*$+@-Gn7|mk&d38*zO=tt{_1U>VSjP7F_Czyy|&=F6WjNY`0};W-B?{+Wyv&UklXXxa#U3}xn}gM#^C=` v-u*At-@iv_XlQqLD$^|8-~~3Sq{Kio Date: Thu, 23 Apr 2026 20:40:18 +0000 Subject: [PATCH 27/59] StrictStyleOptions as first-class citizen --- .../src/adaptiveCards/AdaptiveCardsStyleOptions.ts | 14 +++++++------- .../bundle/src/fullBundleDefaultStyleOptions.ts | 4 ++-- .../bundle/src/types/FullBundleStyleOptions.ts | 3 +-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/bundle/src/adaptiveCards/AdaptiveCardsStyleOptions.ts b/packages/bundle/src/adaptiveCards/AdaptiveCardsStyleOptions.ts index e37e06ad78..b63949f4af 100644 --- a/packages/bundle/src/adaptiveCards/AdaptiveCardsStyleOptions.ts +++ b/packages/bundle/src/adaptiveCards/AdaptiveCardsStyleOptions.ts @@ -1,32 +1,32 @@ /** * Adaptive Cards styling */ -type AdaptiveCardsStyleOptions = { +type StrictAdaptiveCardsStyleOptions = { /** Adaptive Cards: Specify the maximum schema version supported by the Adaptive Card serializer. */ - adaptiveCardsParserMaxVersion?: string; + adaptiveCardsParserMaxVersion: string | undefined; /** * Adaptive Cards styling for 'emphasis' container style */ - cardEmphasisBackgroundColor?: string; + cardEmphasisBackgroundColor: string | undefined; /** * Adaptive Cards: background color of Adaptive Cards button with status of 'aria-pressed' */ - cardPushButtonBackgroundColor?: string; + cardPushButtonBackgroundColor: string | undefined; /** * Adaptive Cards: text color of Adaptive Cards button with status of 'aria-pressed' */ - cardPushButtonTextColor?: string; + cardPushButtonTextColor: string | undefined; /** * Cards: Rich Cards * Enable title (and subtitle) wrapping */ - richCardWrapTitle?: boolean; + richCardWrapTitle: boolean | undefined; }; -type StrictAdaptiveCardsStyleOptions = Required; +type AdaptiveCardsStyleOptions = Partial; export type { AdaptiveCardsStyleOptions, StrictAdaptiveCardsStyleOptions }; diff --git a/packages/bundle/src/fullBundleDefaultStyleOptions.ts b/packages/bundle/src/fullBundleDefaultStyleOptions.ts index 1d33057848..bf7a3c5e93 100644 --- a/packages/bundle/src/fullBundleDefaultStyleOptions.ts +++ b/packages/bundle/src/fullBundleDefaultStyleOptions.ts @@ -1,9 +1,9 @@ import { defaultStyleOptions } from 'botframework-webchat-api'; import adaptiveCardsDefaultStyleOptions from './adaptiveCards/defaultStyleOptions'; -import FullBundleStyleOptions from './types/FullBundleStyleOptions'; +import { type StrictFullBundleStyleOptions } from './types/FullBundleStyleOptions'; -const fullBundleDefaultStyleOptions: Required = { +const fullBundleDefaultStyleOptions: StrictFullBundleStyleOptions = { ...defaultStyleOptions, ...adaptiveCardsDefaultStyleOptions }; diff --git a/packages/bundle/src/types/FullBundleStyleOptions.ts b/packages/bundle/src/types/FullBundleStyleOptions.ts index efed1f43cf..4ac50020c5 100644 --- a/packages/bundle/src/types/FullBundleStyleOptions.ts +++ b/packages/bundle/src/types/FullBundleStyleOptions.ts @@ -8,5 +8,4 @@ import { type FullBundleStyleOptions = StyleOptions & AdaptiveCardsStyleOptions; type StrictFullBundleStyleOptions = StrictStyleOptions & StrictAdaptiveCardsStyleOptions; -export default FullBundleStyleOptions; -export { StrictFullBundleStyleOptions }; +export type { FullBundleStyleOptions, StrictFullBundleStyleOptions }; From b974b3cf8079de966b6ea6d361e4bd8b1237da28 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:40:39 +0000 Subject: [PATCH 28/59] Fix ESLint on deps --- packages/component/src/hooks/internal/useMemoized.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/component/src/hooks/internal/useMemoized.ts b/packages/component/src/hooks/internal/useMemoized.ts index 9e94e64693..8fe7d6fbae 100644 --- a/packages/component/src/hooks/internal/useMemoized.ts +++ b/packages/component/src/hooks/internal/useMemoized.ts @@ -62,7 +62,7 @@ export default function useMemoized(fn: Fn, deps: return memoizedFn; }, // Concat our deps with passed deps, so the memo callback runs when anything changes - /* eslint-disable-next-line react-hooks/exhaustive-deps */ + /* eslint-disable-next-line react-hooks/exhaustive-deps, react-hooks/use-memo */ [fnRef, cacheRef, nextCacheRef, ...deps] ); From 241e231db3599b941a5a1f10241abf42ba627858 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:43:50 +0000 Subject: [PATCH 29/59] Remove unnecessary ESLint overrides --- packages/api/src/decorator/private/templateDecorator.tsx | 2 -- packages/api/src/normalizeStyleOptions.ts | 1 - 2 files changed, 3 deletions(-) diff --git a/packages/api/src/decorator/private/templateDecorator.tsx b/packages/api/src/decorator/private/templateDecorator.tsx index f4269248a9..cb80e1f6c6 100644 --- a/packages/api/src/decorator/private/templateDecorator.tsx +++ b/packages/api/src/decorator/private/templateDecorator.tsx @@ -63,8 +63,6 @@ export default function templateDecorator< const buildMiddleware = useBuildComponentCallback(); const Proxy = useMemo(() => buildMiddleware(undefined, { fallbackComponent: FinalComponent }), [buildMiddleware]); - // is middleware component and is static. - // eslint-disable-next-line react-hooks/static-components return Proxy && ; } diff --git a/packages/api/src/normalizeStyleOptions.ts b/packages/api/src/normalizeStyleOptions.ts index 4766d960fb..7946d2e6fb 100644 --- a/packages/api/src/normalizeStyleOptions.ts +++ b/packages/api/src/normalizeStyleOptions.ts @@ -19,7 +19,6 @@ const bubbleMinWidthDeprecation = warnOnce( // "styleSet" is actually CSS stylesheet and it is based on the DOM tree. // DOM tree may change from time to time, thus, maintaining "styleSet" becomes a constant effort. -// eslint-disable-next-line complexity export default function normalizeStyleOptions({ bubbleImageHeight, bubbleMaxWidth, From 58046a529268fef9eb3b836ed5ec204c1b01f744 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:43:52 +0000 Subject: [PATCH 30/59] Fix import --- .../src/providers/StyleOptions/private/rectifyStyleOptions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts b/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts index fd97656e52..ae0da6edae 100644 --- a/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts +++ b/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts @@ -1,4 +1,4 @@ -import type { StrictStyleOptions, default as StyleOptions } from '../../../StyleOptions'; +import type { StrictStyleOptions, StyleOptions } from '../../../StyleOptions'; import normalizeStyleOptions from '../../../normalizeStyleOptions'; import patchStyleOptionsFromDeprecatedProps from '../../../patchStyleOptionsFromDeprecatedProps'; From 29609350a30fa29b4ab5ea822077a48935051648 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:46:40 +0000 Subject: [PATCH 31/59] Fix imports --- .../src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts | 2 +- .../bundle/src/adaptiveCards/Styles/adaptiveCardHostConfig.ts | 2 +- packages/bundle/src/boot/actual/styleOptions/full.ts | 2 +- packages/bundle/src/createFullStyleSet.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/bundle/src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts b/packages/bundle/src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts index e6f1a7bd81..24cf519e65 100644 --- a/packages/bundle/src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts +++ b/packages/bundle/src/adaptiveCards/Styles/StyleSet/AdaptiveCardRenderer.ts @@ -1,4 +1,4 @@ -import FullBundleStyleOptions from '../../../types/FullBundleStyleOptions'; +import type { FullBundleStyleOptions } from '../../../types/FullBundleStyleOptions'; export default function ({ cardPushButtonBackgroundColor, diff --git a/packages/bundle/src/adaptiveCards/Styles/adaptiveCardHostConfig.ts b/packages/bundle/src/adaptiveCards/Styles/adaptiveCardHostConfig.ts index 736ad97073..3c51792518 100644 --- a/packages/bundle/src/adaptiveCards/Styles/adaptiveCardHostConfig.ts +++ b/packages/bundle/src/adaptiveCards/Styles/adaptiveCardHostConfig.ts @@ -1,6 +1,6 @@ import { normalizeStyleOptions } from 'botframework-webchat-api'; -import FullBundleStyleOptions from '../../types/FullBundleStyleOptions'; +import type { FullBundleStyleOptions } from '../../types/FullBundleStyleOptions'; import normalizeAdaptiveCardsStyleOptions from '../normalizeStyleOptions'; // https://docs.microsoft.com/en-us/adaptive-cards/rendering-cards/host-config diff --git a/packages/bundle/src/boot/actual/styleOptions/full.ts b/packages/bundle/src/boot/actual/styleOptions/full.ts index 252a100f64..2e3c503422 100644 --- a/packages/bundle/src/boot/actual/styleOptions/full.ts +++ b/packages/bundle/src/boot/actual/styleOptions/full.ts @@ -1,4 +1,4 @@ export { type StrictFullBundleStyleOptions as StrictStyleOptions, - type default as StyleOptions + type FullBundleStyleOptions as StyleOptions } from '../../../types/FullBundleStyleOptions'; diff --git a/packages/bundle/src/createFullStyleSet.ts b/packages/bundle/src/createFullStyleSet.ts index 148ce5f6fa..1fa6d704f5 100644 --- a/packages/bundle/src/createFullStyleSet.ts +++ b/packages/bundle/src/createFullStyleSet.ts @@ -1,7 +1,7 @@ import { createStyleSet } from 'botframework-webchat-component'; import createAdaptiveCardsStyleSet from './adaptiveCards/Styles/createAdaptiveCardsStyleSet'; -import FullBundleStyleOptions from './types/FullBundleStyleOptions'; +import type { FullBundleStyleOptions } from './types/FullBundleStyleOptions'; // TODO: [P4] We should add a notice for people who want to use "styleSet" instead of "styleOptions". // "styleSet" is actually CSS stylesheet and it is based on the DOM tree. From c5947128ea7237044e1fcaecfb9cdb55ebd2e9ce Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 20:57:19 +0000 Subject: [PATCH 32/59] Fix ESLint --- packages/component/src/Composer.tsx | 6 ++++++ .../src/Transcript/useActivityAccessibleName.ts | 2 -- packages/component/src/Utils/InlineMarkdown.js | 5 +++++ .../component/src/hooks/useObserveScrollPosition.ts | 3 +++ .../component/src/hooks/useObserveTranscriptFocus.ts | 12 +++++++++--- .../src/hooks/useStreamingMarkdownWithDefinitions.ts | 2 ++ .../src/providers/LiveRegionTwin/useLiveRegion.ts | 2 +- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/component/src/Composer.tsx b/packages/component/src/Composer.tsx index ca3303dcd4..3495d8af33 100644 --- a/packages/component/src/Composer.tsx +++ b/packages/component/src/Composer.tsx @@ -250,11 +250,17 @@ const ComposerCore = ({ const getActivityByKey = useGetActivityByKey(); + // This is expected. + // The mutation is for preventing sending duplicates to the registered callback observers. + // eslint-disable-next-line react-hooks/immutability const dispatchTranscriptFocusByActivityKey = useMemo(() => { let prevActivityKey: string | symbol | undefined = Symbol(); return activityKey => { if (activityKey !== prevActivityKey) { + // This is expected. + // The mutation is for preventing sending duplicates to the registered callback observers. + // eslint-disable-next-line react-hooks/immutability prevActivityKey = activityKey; const event = { activity: getActivityByKey(activityKey) }; diff --git a/packages/component/src/Transcript/useActivityAccessibleName.ts b/packages/component/src/Transcript/useActivityAccessibleName.ts index 81300804bb..9e3d9d3473 100644 --- a/packages/component/src/Transcript/useActivityAccessibleName.ts +++ b/packages/component/src/Transcript/useActivityAccessibleName.ts @@ -111,8 +111,6 @@ export default function useActivityAccessibleName(activity: WebChatActivity, bod const hasWidgets = !!tabbableElements(bodyRef.current).length; interactiveTypeRef.current !== hasWidgets && - // TODO: [P2] Intentionally set the state, we will visit it later. - // eslint-disable-next-line react-hooks/set-state-in-effect setInteractiveType(hasLinks ? InteractiveType.LINK : hasWidgets ? InteractiveType.WIDGET : false); }, [bodyRef, interactiveTypeRef, setInteractiveType]); diff --git a/packages/component/src/Utils/InlineMarkdown.js b/packages/component/src/Utils/InlineMarkdown.js index e22fc4e051..14ab9bdf27 100644 --- a/packages/component/src/Utils/InlineMarkdown.js +++ b/packages/component/src/Utils/InlineMarkdown.js @@ -46,6 +46,9 @@ function replaceAnchorWithButton(markdownTokens) { const InlineMarkdown = ({ children, onReference, references }) => { if (typeof children !== 'string') { console.warn('botframework-webchat: "children" prop passed to must be of type string.'); + + // Shortcut for disabling invalid props. + // eslint-disable-next-line react-hooks/immutability children = ''; } @@ -80,6 +83,8 @@ const InlineMarkdown = ({ children, onReference, references }) => { ); // Markdown-It only support references in uppercase. + // Re-shaping input. + // eslint-disable-next-line react-hooks/immutability references = references.map(reference => reference.toUpperCase()); const { hrefToRef, refToHref } = references.reduce( diff --git a/packages/component/src/hooks/useObserveScrollPosition.ts b/packages/component/src/hooks/useObserveScrollPosition.ts index cb5b7432b9..cf36e71a92 100644 --- a/packages/component/src/hooks/useObserveScrollPosition.ts +++ b/packages/component/src/hooks/useObserveScrollPosition.ts @@ -8,7 +8,10 @@ export default function useObserveScrollPosition( deps: any[] ): void { if (typeof observer !== 'function') { + // This is for shortcutting invalid props. + // eslint-disable-next-line react-hooks/immutability observer = undefined; + console.warn('botframework-webchat: First argument passed to "useObserveScrollPosition" must be a function.'); } else if (typeof deps !== 'undefined' && !Array.isArray(deps)) { console.warn( diff --git a/packages/component/src/hooks/useObserveTranscriptFocus.ts b/packages/component/src/hooks/useObserveTranscriptFocus.ts index 6b39fb265e..ee5d4e4c7e 100644 --- a/packages/component/src/hooks/useObserveTranscriptFocus.ts +++ b/packages/component/src/hooks/useObserveTranscriptFocus.ts @@ -4,11 +4,14 @@ import type { WebChatActivity } from 'botframework-webchat-core'; import useWebChatUIContext from './internal/useWebChatUIContext'; export default function useObserveTranscriptFocus( - observer: (event: { activity: WebChatActivity }) => void, + observer: ((event: { activity: WebChatActivity }) => void) | undefined, deps: any[] ): void { if (typeof observer !== 'function') { + // Shortcut for disabling the observer. + // eslint-disable-next-line react-hooks/immutability observer = undefined; + console.warn('botframework-webchat: First argument passed to "useObserveTranscriptFocus" must be a function.'); } else if (typeof deps !== 'undefined' && !Array.isArray(deps)) { console.warn( @@ -18,6 +21,9 @@ export default function useObserveTranscriptFocus( const { observeTranscriptFocus } = useWebChatUIContext(); - /* eslint-disable-next-line react-hooks/exhaustive-deps */ - useEffect(() => observer && observeTranscriptFocus(observer), [...(deps || []), observer, observeTranscriptFocus]); + useEffect( + () => observer && observeTranscriptFocus(observer), + // eslint-disable-next-line react-hooks/exhaustive-deps + [...(deps || []), observer, observeTranscriptFocus] + ); } diff --git a/packages/component/src/hooks/useStreamingMarkdownWithDefinitions.ts b/packages/component/src/hooks/useStreamingMarkdownWithDefinitions.ts index 0f51804c66..88f36e6d22 100644 --- a/packages/component/src/hooks/useStreamingMarkdownWithDefinitions.ts +++ b/packages/component/src/hooks/useStreamingMarkdownWithDefinitions.ts @@ -83,6 +83,8 @@ export default function useStreamingMarkdownWithDefinitions( // starts clean, but the streaming effect can still set definitions on the same commit. useLayoutEffect(() => { previousMarkdownRef.current = ''; + + // eslint-disable-next-line react-hooks/set-state-in-effect setDefinitions(EMPTY_DEFINITIONS); }, [streamingRenderer]); diff --git a/packages/component/src/providers/LiveRegionTwin/useLiveRegion.ts b/packages/component/src/providers/LiveRegionTwin/useLiveRegion.ts index 687cd05a85..7e9c70a300 100644 --- a/packages/component/src/providers/LiveRegionTwin/useLiveRegion.ts +++ b/packages/component/src/providers/LiveRegionTwin/useLiveRegion.ts @@ -22,6 +22,6 @@ export default function useLiveRegion( const node = createNodeRef?.current(); node && queueStaticElement(node); - // eslint-disable-next-line react-hooks/exhaustive-deps + // eslint-disable-next-line react-hooks/exhaustive-deps, react-hooks/use-memo }, [...deps, createNodeRef, queueStaticElement]); } From 6e6e7c519b1cc7bc158130e3edc8dfd8101248ac Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 22:25:54 +0000 Subject: [PATCH 33/59] Fix new Schema.org "output is always array" --- .../createDefaultGroupActivitiesMiddleware.ts | 4 +- .../component/src/Activity/StackedLayout.tsx | 56 ++++++------ .../providers/ActivityFeedbackComposer.tsx | 34 ++++--- .../ActivityStatus/OthersActivityStatus.tsx | 20 +++-- .../Text/private/MarkdownTextContent.tsx | 88 ++++++++++--------- .../private/isBasedOnSoftwareSourceCode.ts | 18 ---- .../defaultActivityPolymiddleware.tsx | 10 ++- .../ui/PartGrouping/PartGrouping.tsx | 2 +- .../private/PartGroupingActivity.tsx | 14 +-- .../getFirstBaseOfSoftwareSourceCode.ts | 24 +++++ .../src/hooks/internal/useFeedbackActions.ts | 27 ++++-- packages/core/src/index.ts | 4 + .../private/getPartGroupingMetadataMap.ts | 23 +---- .../src/types/external/OrgSchema/Action.ts | 8 +- .../src/types/external/OrgSchema/Claim.ts | 4 +- .../types/external/OrgSchema/CreativeWork.ts | 45 ++++++---- .../types/external/OrgSchema/DefinedTerm.ts | 4 +- .../src/types/external/OrgSchema/Person.ts | 34 +++++-- .../src/types/external/OrgSchema/Project.ts | 4 +- .../external/OrgSchema/SoftwareSourceCode.ts | 48 ++++++++++ .../src/types/external/OrgSchema/Thing.ts | 27 ++---- .../types/external/OrgSchema/UserReview.ts | 6 +- .../types/external/OrgSchema/VoteAction.ts | 2 +- .../OrgSchema/private/orgSchemaProperties.ts | 28 ++++-- .../utils/getActivityLivestreamingMetadata.ts | 2 +- .../src/utils/getOrgSchemaMessage.spec.ts | 1 + .../activity/PartGroupingDecorator.tsx | 2 +- .../activity/private/useActivityAuthor.ts | 4 +- 28 files changed, 325 insertions(+), 218 deletions(-) delete mode 100644 packages/component/src/Attachment/Text/private/isBasedOnSoftwareSourceCode.ts create mode 100644 packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts create mode 100644 packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts diff --git a/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts b/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts index 72dcb16f81..9d1ad3de62 100644 --- a/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts +++ b/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts @@ -97,8 +97,8 @@ export default function createDefaultGroupActivitiesMiddleware({ return { ...next({ activities }), part: bin(messages, ([last], [current]) => { - const lastPartIdResult = safeParse(IdentifierSchema, last?.isPartOf?.['@id']); - const currentPartIdResult = safeParse(IdentifierSchema, current?.isPartOf?.['@id']); + const lastPartIdResult = safeParse(IdentifierSchema, last?.isPartOf[0]?.['@id']); + const currentPartIdResult = safeParse(IdentifierSchema, current?.isPartOf[0]?.['@id']); return ( lastPartIdResult.success && diff --git a/packages/component/src/Activity/StackedLayout.tsx b/packages/component/src/Activity/StackedLayout.tsx index 9e173e36fb..63808cafba 100644 --- a/packages/component/src/Activity/StackedLayout.tsx +++ b/packages/component/src/Activity/StackedLayout.tsx @@ -1,7 +1,8 @@ /* eslint complexity: ["error", 50] */ -import { hooks } from 'botframework-webchat-api'; +import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import type { RenderAttachment } from 'botframework-webchat-api'; +import { hooks } from 'botframework-webchat-api'; import { ActivityBorderDecorator } from 'botframework-webchat-api/decorator'; import { getActivityLivestreamingMetadata, @@ -11,15 +12,14 @@ import { isVoiceActivity, type WebChatActivity } from 'botframework-webchat-core'; -import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import cx from 'classnames'; import React, { memo, useCallback, useMemo, type ReactNode } from 'react'; -import isBasedOnSoftwareSourceCode from '../Attachment/Text/private/isBasedOnSoftwareSourceCode'; import ScreenReaderText from '../ScreenReaderText'; import isZeroOrPositive from '../Utils/isZeroOrPositive'; import textFormatToContentType from '../Utils/textFormatToContentType'; import useUniqueId from '../hooks/internal/useUniqueId'; +import { useGetLogicalGroupKey } from '../providers/ActivityLogicalGrouping'; import AttachmentRow from './AttachmentRow'; import Bubble from './Bubble'; import CodeBlockContent from './CodeBlockContent'; @@ -28,9 +28,9 @@ import StackedLayoutMain from './StackedLayoutMain'; import StackedLayoutMessageStatus from './StackedLayoutMessageStatus'; import StackedLayoutRoot from './StackedLayoutRoot'; import StackedLayoutStatus from './StackedLayoutStatus'; -import { useGetLogicalGroupKey } from '../providers/ActivityLogicalGrouping'; import styles from './StackedLayout.module.css'; +import getFirstBaseOfSoftwareSourceCode from '../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; const { useAvatarForBot, useAvatarForUser, useLocalizer, useGetKeyByActivity, useStyleOptions } = hooks; @@ -73,7 +73,7 @@ const StackedLayoutInner = memo( return ( - {!!(hasDisplayText || messageThing?.abstract) && ( + {!!(hasDisplayText || messageThing?.abstract[0]) && (
- {renderBubbleContent(messageThing?.abstract)} + {renderBubbleContent(messageThing?.abstract[0])}
@@ -164,13 +164,13 @@ const StackedLayout = ({ const showAvatar = showCallout && hasAvatar && !!renderAvatar; const showNub = !isInGroup && showCallout && hasNub && (topAlignedCallout || !attachments?.length); - const showStatus = !!messageThing?.creativeWorkStatus || isInGroup; + const showStatus = !!messageThing?.creativeWorkStatus[0] || isInGroup; const renderMainBubbleContent = useCallback( (title = '', withStatus = true) => (
{withStatus && showStatus && ( - + )} {title &&
{title}
} {activityDisplayText && @@ -209,24 +209,28 @@ const StackedLayout = ({ ); } - if (isCollapsible && isBasedOnSoftwareSourceCode(messageThing)) { - syntheticAttachments.push( - - - - ); + showBubble={false} + > + + + ); + } } return syntheticAttachments.concat( @@ -261,7 +265,7 @@ const StackedLayout = ({ const renderCollapsibleBubbleContent = useCallback( (title = '') => (
- {showStatus && } + {showStatus && } action.result ? action - : { + : parse(orgSchemaActionSchema, { ...action, result: { '@type': 'UserReview', description: deprecatedFeedbackLoopChannelData?.disclaimer } - } + }) ); } @@ -141,7 +141,9 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { } const voteActions = Object.freeze( - graph.filter(({ type }) => type === 'https://schema.org/VoteAction').map(parseAction) + graph + .filter(({ type }) => type === 'https://schema.org/VoteAction') + .map(action => parse(orgSchemaActionSchema, action)) // TODO: Instead of processing VoteAction, convert it to LikeAction/DislikeAction. // .map(action => ({ // ...action, @@ -162,14 +164,15 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { useMemo(() => { const activeOrCompletedAction = rawActions.find( - (action): action is OrgSchemaAction & { actionStatus: 'ActiveActionStatus' | 'CompletedActionStatus' } => - action.actionStatus === 'ActiveActionStatus' || action.actionStatus === 'CompletedActionStatus' + (action): action is OrgSchemaAction & { actionStatus: ['ActiveActionStatus' | 'CompletedActionStatus'] } => + action.actionStatus?.length === 1 && + (action.actionStatus[0] === 'ActiveActionStatus' || action.actionStatus[0] === 'CompletedActionStatus') ); actionStateRef.current = activeOrCompletedAction ? { actionId: activeOrCompletedAction['@id'], - actionStatus: activeOrCompletedAction.actionStatus + actionStatus: activeOrCompletedAction.actionStatus?.[0] } : undefined; }, [rawActions]); @@ -177,15 +180,15 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { // Workaround ESLint on saying actionStateRef.current is redundant when using it directly. const actionStateForActions = actionStateRef.current; - const actions = useMemo( + const actions = useMemo( () => Object.freeze( rawActions.map(action => actionStateForActions && actionStateForActions.actionId === action['@id'] - ? Object.freeze({ ...action, actionStatus: actionStateForActions.actionStatus }) - : action.actionStatus === 'PotentialActionStatus' + ? Object.freeze({ ...action, actionStatus: [actionStateForActions.actionStatus] } satisfies OrgSchemaAction) + : action.actionStatus?.length === 1 && action.actionStatus?.[0] === 'PotentialActionStatus' ? action - : Object.freeze({ ...action, actionStatus: 'PotentialActionStatus' }) + : Object.freeze({ ...action, actionStatus: ['PotentialActionStatus'] } satisfies OrgSchemaAction) ) ), [actionStateForActions, rawActions] @@ -196,7 +199,8 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { const postActivity = usePostActivity(); const hasSubmitted = useMemo( - () => actions.some(action => action.actionStatus === 'CompletedActionStatus'), + () => + actions.some(action => action.actionStatus?.length === 1 && action.actionStatus?.[0] === 'CompletedActionStatus'), [actions] ); @@ -248,7 +252,9 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { const selectedAction = useMemo( () => actions.find( - ({ actionStatus }) => actionStatus === 'ActiveActionStatus' || actionStatus === 'CompletedActionStatus' + ({ actionStatus }) => + actionStatus?.length === 1 && + (actionStatus[0] === 'ActiveActionStatus' || actionStatus[0] === 'CompletedActionStatus') ), [actions] ); diff --git a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx index da35f46059..a20658c46f 100644 --- a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx +++ b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx @@ -3,13 +3,14 @@ import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import { hooks } from 'botframework-webchat-api'; import { getOrgSchemaMessage, + orgSchemaActionSchema, + orgSchemaClaimSchema, OrgSchemaProject, - parseAction, - parseClaim, type WebChatActivity } from 'botframework-webchat-core'; import cx from 'classnames'; import React, { memo, useMemo } from 'react'; +import { parse } from 'valibot'; import ActivityFeedback from '../ActivityFeedback/ActivityFeedback'; import dereferenceBlankNodes from '../Utils/JSONLinkedData/dereferenceBlankNodes'; @@ -38,23 +39,28 @@ const OthersActivityStatus = memo(({ activity, className, slotted }: Props) => { const claimInterpreter = useMemo(() => { try { if (messageThing) { - return parseClaim((messageThing?.citation || [])[0])?.claimInterpreter; + return parse(orgSchemaClaimSchema, (messageThing?.citation || [])[0])?.claimInterpreter?.[0]; } - const [firstClaim] = graph.filter(({ type }) => type === 'https://schema.org/Claim').map(parseClaim); + const [firstClaim] = graph + .filter(({ type }) => type === 'https://schema.org/Claim') + .map(claim => parse(orgSchemaClaimSchema, claim)); if (firstClaim) { warnRootLevelThings(); - return firstClaim?.claimInterpreter; + return firstClaim?.claimInterpreter?.[0]; } - const replyAction = parseAction(graph.find(({ type }) => type === 'https://schema.org/ReplyAction')); + const replyAction = parse( + orgSchemaActionSchema, + graph.find(({ type }) => type === 'https://schema.org/ReplyAction') + ); if (replyAction) { warnRootLevelThings(); - return replyAction?.provider; + return replyAction?.provider?.[0]; } } catch { // Intentionally left blank. diff --git a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx index bcdb25687a..15aba971fd 100644 --- a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx +++ b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx @@ -4,14 +4,14 @@ import { hooks } from 'botframework-webchat-api'; import { getOrgSchemaMessage, onErrorResumeNext, - parseClaim, + orgSchemaClaimSchema, type OrgSchemaClaim, type WebChatActivity } from 'botframework-webchat-core'; import cx from 'classnames'; import React, { memo, useCallback, useMemo, useRef, type MouseEventHandler } from 'react'; import { useRefFrom } from 'use-ref-from'; -import { custom, object, optional, pipe, readonly, string, type InferInput } from 'valibot'; +import { custom, object, optional, parse, pipe, readonly, string, type InferInput } from 'valibot'; import ActivityFeedback from '../../../ActivityFeedback/ActivityFeedback'; import { LinkDefinitionItem, LinkDefinitions } from '../../../LinkDefinition/index'; @@ -21,17 +21,16 @@ import useStreamingMarkdownWithDefinitions, { type MarkdownLinkDefinition } from '../../../hooks/useStreamingMarkdownWithDefinitions'; import useShowModal from '../../../providers/ModalDialog/useShowModal'; -import { type PropsOf } from '../../../types/PropsOf'; import ActivityCopyButton from './ActivityCopyButton'; import ActivityViewCodeButton from './ActivityViewCodeButton'; import CitationModalContext from './CitationModalContent'; import MessageSensitivityLabel, { type MessageSensitivityLabelProps } from './MessageSensitivityLabel'; import isAIGeneratedActivity from './isAIGeneratedActivity'; -import isBasedOnSoftwareSourceCode from './isBasedOnSoftwareSourceCode'; import isHTMLButtonElement from './isHTMLButtonElement'; -import citationModalStyles from './CitationModal.module.css'; +import getFirstBaseOfSoftwareSourceCode from '../../../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; import textContentStyles from '../TextContent.module.css'; +import citationModalStyles from './CitationModal.module.css'; const { useLocalizer, useStyleOptions } = hooks; @@ -73,7 +72,7 @@ function isCitingInline(claim: OrgSchemaClaim): claim is OrgSchemaClaim & { url?: undefined; }; } { - return !!claim.appearance && !claim.appearance.url; + return !!claim.appearance?.length && !claim.appearance?.[0].url; } function MarkdownTextContent(props: MarkdownTextContentProps) { @@ -116,13 +115,13 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { markdownDefinitions .map(markdownDefinition => { let messageCitation: OrgSchemaClaim | undefined = messageThing?.citation - ?.map(parseClaim) - .find(({ position }) => '' + position === markdownDefinition.identifier); + ?.map(claim => parse(orgSchemaClaimSchema, claim)) + .find(({ position }) => '' + position?.[0] === markdownDefinition.identifier); if (!messageCitation) { const rootLevelClaim = graph .filter(({ type }) => type === 'https://schema.org/Claim') - .map(parseClaim) + .map(claim => parse(orgSchemaClaimSchema, claim)) .find(({ '@id': id }) => id === markdownDefinition.url); if (rootLevelClaim) { @@ -130,22 +129,24 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { 'botframework-webchat: Root-level `Claim` thing is deprecated, please use `Message[@id=""].citation[@type="Claim"]` instead. It will be removed on or after 2027-08-29.' ); - messageCitation = { + messageCitation = parse(orgSchemaClaimSchema, { '@context': 'https://schema.org', '@id': markdownDefinition.url, '@type': 'Claim', alternateName: rootLevelClaim.alternateName, - appearance: isCitationURL(rootLevelClaim['@id']) - ? { - '@type': 'DigitalDocument', - name: rootLevelClaim.name, - text: rootLevelClaim.text - } - : { - '@type': 'DigitalDocument', - url: markdownDefinition.url - } - }; + appearance: [ + isCitationURL(rootLevelClaim['@id']) + ? { + '@type': 'DigitalDocument', + name: rootLevelClaim.name[0], + text: rootLevelClaim.text[0] + } + : { + '@type': 'DigitalDocument', + url: [markdownDefinition.url] + } + ] + } satisfies InferInput); } } @@ -165,8 +166,8 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { key: url, handleClick: () => showClaimModal( - appearance.name ?? markdownDefinition.title, - appearance.text, + appearance[0]?.name[0] ?? markdownDefinition.title[0], + appearance[0]?.text[0], messageCitation.alternateName ), markdownDefinition @@ -175,14 +176,14 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { // Not inline citation, we care about the URL. // Warn if it break single source of truth principle, we still use the URL from Markdown. - if (messageCitation.appearance?.url && messageCitation.appearance.url !== url) { + if (messageCitation.appearance?.[0]?.url?.[0] && messageCitation.appearance?.[0]?.url?.[0] !== url) { console.warn( 'botframework-webchat: When "Message.citation[].url" is set in entities, it must match its corresponding URL in Markdown link reference definition', { citation: messageCitation, markdownDefinition, url: { - citation: messageCitation.appearance.url, + citation: messageCitation.appearance[0]?.url[0], markdown: url } } @@ -242,35 +243,37 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { [entriesRef] ); - const messageSensitivityLabelProps = useMemo | undefined>(() => { - const usageInfo = messageThing?.usageInfo; + const messageSensitivityLabelProps = useMemo(() => { + const usageInfo = messageThing?.usageInfo?.[0]; if (usageInfo) { - const { pattern } = usageInfo; + const pattern = usageInfo?.pattern?.[0]; const encryptionStatus = !!usageInfo.keywords?.find(keyword => keyword === 'encrypted-content'); return { color: pattern && - pattern.inDefinedTermSet === 'https://www.w3.org/TR/css-color-4/' && - pattern.name === 'color' && - pattern.termCode, + pattern.inDefinedTermSet?.[0] === 'https://www.w3.org/TR/css-color-4/' && + pattern.name?.[0] === 'color' && + pattern.termCode?.[0], isEncrypted: encryptionStatus, - name: usageInfo.name, - title: usageInfo.description - }; + name: usageInfo.name?.[0], + title: usageInfo.description?.[0] + } satisfies MessageSensitivityLabelProps; } }, [messageThing]); // The main text of the citation entry (e.g. the title of the document). Used as the content of the main link and, if it exists, the header of the popup window. - const getEntryMainText = (entry: Entry) => - entry.claim?.name ?? entry.claim?.appearance?.name ?? (entry.markdownDefinition.title || undefined); + const getEntryMainText = (entry: Entry): string | undefined => + entry.claim?.name?.[0] ?? entry.claim?.appearance?.[0]?.name?.[0] ?? (entry.markdownDefinition.title || undefined); // Optional alternate name for the entry, used as a subtitle beneath the link - const getEntryBadgeName = (entry: Entry) => entry.claim?.appearance?.usageInfo?.name; + const getEntryBadgeName = (entry: Entry) => entry.claim?.appearance?.[0]?.usageInfo?.[0]?.name?.[0]; // Secondary text describing the citation, used in the a11y description (i.e. the div's title attribute) - const getEntryDescription = (entry: Entry) => entry.claim?.appearance?.usageInfo?.description; + const getEntryDescription = (entry: Entry) => entry.claim?.appearance?.[0]?.usageInfo?.[0]?.description?.[0]; + + const firstSoftwareSourceCodeBase = useMemo(() => getFirstBaseOfSoftwareSourceCode(messageThing), [messageThing]); return (
@@ -296,15 +299,14 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { )}
{activity.type === 'message' && - isBasedOnSoftwareSourceCode(messageThing) && - messageThing.isBasedOn.text && + firstSoftwareSourceCodeBase?.text && !messageThing.keywords?.includes?.('Collapsible') ? ( ) : null} {activity.type === 'message' && activity.text && messageThing?.keywords?.includes('AllowCopy') ? ( diff --git a/packages/component/src/Attachment/Text/private/isBasedOnSoftwareSourceCode.ts b/packages/component/src/Attachment/Text/private/isBasedOnSoftwareSourceCode.ts deleted file mode 100644 index 37f192caa8..0000000000 --- a/packages/component/src/Attachment/Text/private/isBasedOnSoftwareSourceCode.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { type OrgSchemaCreativeWork } from 'botframework-webchat-core'; - -/** - * Type guard to check if the isBasedOn field is of type SoftwareSourceCode - * @param messageEntity The message entity to check - * @returns True if isBasedOn is of type SoftwareSourceCode, false otherwise - */ -export default function isBasedOnSoftwareSourceCode( - messageEntity?: OrgSchemaCreativeWork -): messageEntity is OrgSchemaCreativeWork & { isBasedOn: SoftwareSourceCode } { - return messageEntity?.isBasedOn?.['@type'] === 'SoftwareSourceCode'; -} - -interface SoftwareSourceCode { - '@type': 'SoftwareSourceCode'; - programmingLanguage: string; - text: string; -} diff --git a/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx b/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx index 7eaaa1ea5e..543e20ebf6 100644 --- a/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx +++ b/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx @@ -4,7 +4,9 @@ import { createActivityPolymiddlewareFromLegacy, type Polymiddleware } from 'bot import { getActivityLivestreamingMetadata, getOrgSchemaMessage, - isVoiceTranscriptActivity + isVoiceTranscriptActivity, + type OrgSchemaCreativeWork, + type WebChatActivity } from 'botframework-webchat-core'; import React from 'react'; @@ -12,7 +14,7 @@ import CarouselLayout from '../../Activity/CarouselLayout'; import StackedLayout from '../../Activity/StackedLayout'; // TODO: [P4] Can we simplify these if-statement to something more readable? -function shouldFilterActivity(activity, messageThing) { +function shouldFilterActivity(activity: WebChatActivity, messageThing: OrgSchemaCreativeWork): boolean { const { type } = activity; if ( type === 'conversationUpdate' || @@ -21,14 +23,14 @@ function shouldFilterActivity(activity, messageThing) { // Do not show content for contentless livestream interims, or finalized activity without content. (type === 'typing' && (getActivityLivestreamingMetadata(activity)?.type === 'contentless' || - !(activity['text'] || activity.attachments?.length > 0 || messageThing?.abstract))) || + !(activity['text'] || activity.attachments?.length > 0 || messageThing?.abstract.length))) || (type === 'message' && // Do not show postback (activity.channelData?.postBack || // Do not show messageBack if displayText is undefined (activity.channelData?.messageBack && !activity.channelData.messageBack.displayText) || // Do not show empty bubbles (no text and attachments) - !(activity.text || activity.attachments?.length || messageThing?.abstract))) + !(activity.text || activity.attachments?.length || messageThing?.abstract.length))) ) { return true; } diff --git a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx index 211b992c31..696ee2b7f4 100644 --- a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx @@ -50,7 +50,7 @@ function PartGrouping(props: PartGroupingProps) { [activities, lastActivity] ); - const isGroup = activities.length > 1 || safeParse(IdentifierSchema, lastMessage?.isPartOf?.['@id']).success; + const isGroup = activities.length > 1 || safeParse(IdentifierSchema, lastMessage?.isPartOf[0]?.['@id']).success; return isGroup ? ( {children} diff --git a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx index d960e53675..38b7943e0a 100644 --- a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx @@ -168,7 +168,7 @@ function PartGroupingActivity(props: PartGroupingActivityProps) { const lastActivity = activities.at(-1); const currentMessage = useMemo( - () => messages.find(message => message.creativeWorkStatus === 'Incomplete') || lastMessage, + () => messages.find(message => message.creativeWorkStatus[0] === 'Incomplete') || lastMessage, [messages, lastMessage] ); @@ -184,14 +184,13 @@ function PartGroupingActivity(props: PartGroupingActivityProps) { // The HowTo entity (the group root) may carry an explicit `creativeWorkStatus` and `abstract`. // When present, it takes precedence over status derived from individual messages. - const [howToAbstract, howToStatus] = useMemo(() => { - const howToMessage = messages.find(message => message.isPartOf?.creativeWorkStatus); - const howTo = howToMessage?.isPartOf; + const [howToAbstract, howToStatus] = useMemo<[string | undefined, string | undefined]>(() => { + const howTo = messages.find(message => message.isPartOf[0]?.creativeWorkStatus)?.isPartOf[0]; - return [howTo?.abstract, howTo?.creativeWorkStatus]; + return [howTo?.abstract[0], howTo?.creativeWorkStatus[0]]; }, [messages]); - const defaultWorkStatus = useMemo( + const defaultWorkStatus = useMemo<'Incomplete' | undefined>( () => (messages.some(message => 'creativeWorkStatus' in message) ? 'Incomplete' : undefined), [messages] ); @@ -200,7 +199,8 @@ function PartGroupingActivity(props: PartGroupingActivityProps) { // 1. If the HowTo entity has an explicit `creativeWorkStatus`, use it. // 2. Otherwise, derive from the active message: find the first 'Incomplete' message's status. // 3. Fall back to `defaultWorkStatus` which is 'Incomplete' if any message has a `creativeWorkStatus` property. - const currentGroupStatus = howToStatus || currentMessage?.creativeWorkStatus || defaultWorkStatus; + const currentGroupStatus: string | undefined = + howToStatus || currentMessage?.creativeWorkStatus[0] || defaultWorkStatus; /** * The idea behind group header is that it displays the state of the entire group: diff --git a/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts b/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts new file mode 100644 index 0000000000..286b7a0c0b --- /dev/null +++ b/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts @@ -0,0 +1,24 @@ +import { + orgSchemaSoftwareSourceCodeSchema, + type OrgSchemaCreativeWork, + type OrgSchemaSoftwareSourceCode +} from 'botframework-webchat-core'; +import { safeParse } from 'valibot'; + +/** + * Finds the first `isBasedOf` element that is of type `SoftwareSourceCode`. + * + * @param messageThing The `CreativeWork` to find. + * @returns A `SoftwareSourceCode` if found, otherwise, `undefined`. + */ +export default function getFirstBaseOfSoftwareSourceCode( + messageThing: OrgSchemaCreativeWork +): OrgSchemaSoftwareSourceCode | undefined { + for (const base of messageThing.isBasedOn) { + const result = safeParse(orgSchemaSoftwareSourceCodeSchema, base); + + if (result.success) { + return result.output; + } + } +} diff --git a/packages/component/src/hooks/internal/useFeedbackActions.ts b/packages/component/src/hooks/internal/useFeedbackActions.ts index f7c533f076..a3ad9dca7f 100644 --- a/packages/component/src/hooks/internal/useFeedbackActions.ts +++ b/packages/component/src/hooks/internal/useFeedbackActions.ts @@ -1,6 +1,12 @@ -import { getOrgSchemaMessage, OrgSchemaAction, parseAction, WebChatActivity } from 'botframework-webchat-core'; +import { + getOrgSchemaMessage, + OrgSchemaAction, + orgSchemaActionSchema, + WebChatActivity +} from 'botframework-webchat-core'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { useRefFrom } from 'use-ref-from'; +import { parse } from 'valibot'; import dereferenceBlankNodes from '../../Utils/JSONLinkedData/dereferenceBlankNodes'; export default function useFeedbackActions(initialActivity: WebChatActivity): { @@ -34,7 +40,9 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { } const voteActions = Object.freeze( - graph.filter(({ type }) => type === 'https://schema.org/VoteAction').map(parseAction) + graph + .filter(({ type }) => type === 'https://schema.org/VoteAction') + .map(action => parse(orgSchemaActionSchema, action)) ); if (voteActions.length) { @@ -48,7 +56,7 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { }); const isCompleted = useMemo( - () => actions.some(action => action.actionStatus === 'CompletedActionStatus'), + () => actions.some(action => action.actionStatus?.[0] === 'CompletedActionStatus'), [actions] ); @@ -66,9 +74,9 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { Object.freeze( actions.map(action => action === target - ? Object.freeze({ ...action, actionStatus: 'ActiveActionStatus' }) - : action.actionStatus === 'ActiveActionStatus' - ? Object.freeze({ ...action, actionStatus: 'PotentialActionStatus' }) + ? Object.freeze({ ...action, actionStatus: ['ActiveActionStatus'] } satisfies OrgSchemaAction) + : action.actionStatus?.[0] === 'ActiveActionStatus' + ? Object.freeze({ ...action, actionStatus: ['PotentialActionStatus'] } satisfies OrgSchemaAction) : action ) ) @@ -88,7 +96,9 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { setActions(actions => Object.freeze( actions.map(action => - action === target ? Object.freeze({ ...action, actionStatus: 'CompletedActionStatus' }) : action + action === target + ? Object.freeze({ ...action, actionStatus: ['CompletedActionStatus'] } satisfies OrgSchemaAction) + : action ) ) ); @@ -99,7 +109,8 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { const selectedAction = useMemo( () => actions.find( - ({ actionStatus }) => actionStatus === 'ActiveActionStatus' || actionStatus === 'CompletedActionStatus' + ({ actionStatus }) => + actionStatus?.[0] === 'ActiveActionStatus' || actionStatus?.[0] === 'CompletedActionStatus' ), [actions] ); diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 4376cfe3c4..0fa0c32ddd 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -116,6 +116,10 @@ export { projectSchema as orgSchemaProjectSchema, type ProjectOutput as OrgSchemaProject } from './types/external/OrgSchema/Project'; +export { + softwareSourceCodeSchema as orgSchemaSoftwareSourceCodeSchema, + type SoftwareSourceCodeOutput as OrgSchemaSoftwareSourceCode +} from './types/external/OrgSchema/SoftwareSourceCode'; export { thingSchema as orgSchemaThingSchema, type ThingOutput as OrgSchemaThing diff --git a/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts b/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts index cdc387c149..7cf6ed0dc5 100644 --- a/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts +++ b/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts @@ -1,18 +1,6 @@ -import { IdentifierSchema } from '@msinternal/botframework-webchat-core-graph'; -import { array, literal, number, object, optional, safeParse, string, union } from 'valibot'; import type { WebChatActivity } from '../../../../types/WebChatActivity'; import getOrgSchemaMessage from '../../../../utils/getOrgSchemaMessage'; -// TODO: [P0] Need to fix `getOrgSchemaMessage` before we can move to `NodeReferenceSchema`. -// It is introducing new properties, should be relaxed. -const IsPartOfNodeReferenceSchema = object({ '@id': IdentifierSchema, '@type': string() }); - -const MessageIsPartOfSchema = object({ - '@type': literal('Message'), - isPartOf: union([IsPartOfNodeReferenceSchema, array(IsPartOfNodeReferenceSchema)]), - position: optional(number()) -}); - type PartGroupingMetadataMapEntry = { readonly groupingId: string; readonly position: number | undefined; @@ -24,18 +12,13 @@ function getPartGroupingMetadataMap(activity: WebChatActivity): ReadonlyMap = intersect([ diff --git a/packages/core/src/types/external/OrgSchema/Claim.ts b/packages/core/src/types/external/OrgSchema/Claim.ts index e1ac7650a6..51e875d7c0 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.ts @@ -44,14 +44,14 @@ type ClaimOutput = CreativeWorkOutput & { * * @see https://schema.org/appearance. */ - readonly appearance?: readonly CreativeWorkOutput[] | undefined; + readonly appearance: readonly CreativeWorkOutput[]; /** * For a [Claim](https://schema.org/Claim) interpreted from [MediaObject](https://schema.org/MediaObject) content sed to indicate a claim contained, implied or refined from the content of a [MediaObject](https://schema.org/MediaObject). * * @see https://schema.org/claimInterpreter. */ - readonly claimInterpreter?: readonly ProjectOutput[] | undefined; + readonly claimInterpreter: readonly ProjectOutput[]; }; const claimSchema: GenericSchema = intersect([ diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index 768eba6d42..3c35416980 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -62,40 +62,47 @@ type CreativeWorkInput = ThingInput & { */ readonly isBasedOn?: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; + /** + * Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. + * + * @see https://schema.org/isPartOf + */ + readonly isPartOf?: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; + /** * Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property. * * @see https://schema.org/keywords */ - readonly keywords: DefinedTermInput | string | readonly (DefinedTermInput | string)[] | undefined; + readonly keywords?: DefinedTermInput | string | readonly (DefinedTermInput | string)[] | undefined; /** * A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported. * * @see https://schema.org/pattern */ - readonly pattern: DefinedTermInput | readonly DefinedTermInput[] | undefined; + readonly pattern?: DefinedTermInput | readonly DefinedTermInput[] | undefined; /** * The position of an item in a series or sequence of items. * * @see https://schema.org/position */ - readonly position: number | string | readonly (number | string)[] | undefined; + readonly position?: number | string | readonly (number | string)[] | undefined; /** * The textual content of this CreativeWork. * * @see https://schema.org/text */ - readonly text: string | readonly string[] | undefined; + readonly text?: string | readonly string[] | undefined; /** * The schema.org [usageInfo](https://schema.org/usageInfo) property indicates further information about a [CreativeWork](https://schema.org/CreativeWork). This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. * * This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses. */ - readonly usageInfo: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; + readonly usageInfo?: CreativeWorkInput | readonly CreativeWorkInput[] | undefined; }; /** @@ -111,68 +118,75 @@ type CreativeWorkOutput = ThingOutput & { * * @see https://schema.org/abstract */ - readonly abstract?: readonly string[] | undefined; + readonly abstract: readonly string[]; /** * The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably. * * @see https://schema.org/author */ - readonly author?: readonly (PersonOutput | string)[] | undefined; + readonly author: readonly (PersonOutput | string)[]; /** * A citation or reference to another creative work, such as another publication, web page, scholarly article, etc. * * @see https://schema.org/citation */ - readonly citation?: readonly CreativeWorkOutput[] | undefined; + readonly citation: readonly CreativeWorkOutput[]; /** * The status of the creative work, such as whether it is incomplete or published. * * @see https://schema.org/creativeWorkStatus */ - readonly creativeWorkStatus?: readonly CreativeWorkStatusOutput[] | undefined; + readonly creativeWorkStatus: readonly CreativeWorkStatusOutput[]; /** * The schema.org [isBasedOn](https://schema.org/isBasedOn) property provides a resource from which this work is derived or from which it is a modification or adaptation. */ - readonly isBasedOn?: readonly CreativeWorkOutput[] | undefined; + readonly isBasedOn: readonly CreativeWorkOutput[]; + + /** + * Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. + * + * @see https://schema.org/isPartOf + */ + readonly isPartOf: readonly CreativeWorkOutput[]; /** * Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property. * * @see https://schema.org/keywords */ - readonly keywords: readonly (DefinedTermOutput | string)[] | undefined; + readonly keywords: readonly (DefinedTermOutput | string)[]; /** * A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported. * * @see https://schema.org/pattern */ - readonly pattern: readonly DefinedTermOutput[] | undefined; + readonly pattern: readonly DefinedTermOutput[]; /** * The position of an item in a series or sequence of items. * * @see https://schema.org/position */ - readonly position: readonly (number | string)[] | undefined; + readonly position: readonly (number | string)[]; /** * The textual content of this CreativeWork. * * @see https://schema.org/text */ - readonly text: readonly string[] | undefined; + readonly text: readonly string[]; /** * The schema.org [usageInfo](https://schema.org/usageInfo) property indicates further information about a [CreativeWork](https://schema.org/CreativeWork). This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options. * * This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses. */ - readonly usageInfo: readonly CreativeWorkOutput[] | undefined; + readonly usageInfo: readonly CreativeWorkOutput[]; }; const creativeWorkSchema: GenericSchema = intersect([ @@ -187,6 +201,7 @@ const creativeWorkSchema: GenericSchema = citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), + isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema)), keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), pattern: orgSchemaProperties(lazy(() => definedTermSchema)), position: orgSchemaProperties(union([number(), string()])), diff --git a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts index 1fab65fa3f..5112beaa1e 100644 --- a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts +++ b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts @@ -39,14 +39,14 @@ type DefinedTermOutput = ThingOutput & { * * @see https://schema.org/inDefinedTermSet */ - readonly inDefinedTermSet?: readonly string[] | undefined; + readonly inDefinedTermSet: readonly string[]; /** * A code that identifies this [DefinedTerm](https://schema.org/DefinedTerm) within a [DefinedTermSet](https://schema.org/DefinedTermSet). * * @see https://schema.org/termCode */ - readonly termCode?: readonly string[] | undefined; + readonly termCode: readonly string[]; }; const definedTermSchema: GenericSchema = intersect([ diff --git a/packages/core/src/types/external/OrgSchema/Person.ts b/packages/core/src/types/external/OrgSchema/Person.ts index f81dd629fd..7b826d27ed 100644 --- a/packages/core/src/types/external/OrgSchema/Person.ts +++ b/packages/core/src/types/external/OrgSchema/Person.ts @@ -2,16 +2,40 @@ import { intersect, lazy, looseObject, parse, pipe, readonly, string, type Gener import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; +/** + * A person (alive, dead, undead, or fictional). + * + * This is partial implementation of https://schema.org/Person. + * + * @see https://schema.org/Person + */ type PersonInput = ThingInput & { - readonly description?: string | readonly string[] | undefined; + /** + * An image of the item. This can be a [URL](https://schema.org/URL) or a fully described [ImageObject](https://schema.org/ImageObject). + * + * Note: `ImageObject` is not supported. + * + * @see https://schema.org/image + */ readonly image?: string | readonly string[] | undefined; - readonly name?: string | readonly string[] | undefined; }; +/** + * A person (alive, dead, undead, or fictional). + * + * This is partial implementation of https://schema.org/Person. + * + * @see https://schema.org/Person + */ type PersonOutput = ThingOutput & { - readonly description?: readonly string[] | undefined; - readonly image?: readonly string[] | undefined; - readonly name?: readonly string[] | undefined; + /** + * An image of the item. This can be a [URL](https://schema.org/URL) or a fully described [ImageObject](https://schema.org/ImageObject). + * + * Note: `ImageObject` is not supported. + * + * @see https://schema.org/image + */ + readonly image: readonly string[]; }; const personSchema: GenericSchema = intersect([ diff --git a/packages/core/src/types/external/OrgSchema/Project.ts b/packages/core/src/types/external/OrgSchema/Project.ts index febf05b51e..de3588831f 100644 --- a/packages/core/src/types/external/OrgSchema/Project.ts +++ b/packages/core/src/types/external/OrgSchema/Project.ts @@ -16,7 +16,7 @@ type ProjectInput = ThingInput & { * * @see https://schema.org/slogan */ - readonly slogan: string | readonly string[] | undefined; + readonly slogan?: string | readonly string[] | undefined; }; /** @@ -32,7 +32,7 @@ type ProjectOutput = ThingOutput & { * * @see https://schema.org/slogan */ - readonly slogan: readonly string[] | undefined; + readonly slogan: readonly string[]; }; /** diff --git a/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts b/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts new file mode 100644 index 0000000000..ca3b0ca5bc --- /dev/null +++ b/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts @@ -0,0 +1,48 @@ +import { intersect, lazy, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; + +import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; +import orgSchemaProperties from './private/orgSchemaProperties'; + +/** + * Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates. + * + * This is partial implementation of https://schema.org/SoftwareSourceCode. + * + * @see https://schema.org/SoftwareSourceCode + */ +type SoftwareSourceCodeInput = CreativeWorkInput & { + /** + * The computer programming language. + * + * @see https://schema.org/programmingLanguage + */ + readonly programmingLanguage?: string | readonly string[] | undefined; +}; + +/** + * Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates. + * + * This is partial implementation of https://schema.org/SoftwareSourceCode. + * + * @see https://schema.org/SoftwareSourceCode + */ +type SoftwareSourceCodeOutput = CreativeWorkOutput & { + /** + * The computer programming language. + * + * @see https://schema.org/programmingLanguage + */ + readonly programmingLanguage: readonly string[]; +}; + +const softwareSourceCodeSchema: GenericSchema = intersect([ + lazy(() => creativeWorkSchema), + pipe( + looseObject({ + programmingLanguage: orgSchemaProperties(string()) + }), + readonly() + ) +]); + +export { softwareSourceCodeSchema, type SoftwareSourceCodeInput, type SoftwareSourceCodeOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Thing.ts b/packages/core/src/types/external/OrgSchema/Thing.ts index 2d288ff2ce..1c87b7a2c8 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.ts @@ -56,13 +56,6 @@ type ThingInput = { * @see https://schema.org/url */ readonly url?: string | readonly string[] | undefined; - - /** - * Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. - * - * @see https://schema.org/isPartOf - */ - readonly isPartOf?: ThingInput | readonly ThingInput[] | undefined; }; /** @@ -82,49 +75,42 @@ type ThingOutput = { * * @see https://schema.org/additionalType */ - readonly additionalType?: readonly string[] | undefined; + readonly additionalType: readonly string[]; /** * An alias for the item. * * @see https://schema.org/alternateName */ - readonly alternateName?: readonly string[] | undefined; + readonly alternateName: readonly string[]; /** * A description of the item. * * @see https://schema.org/description */ - readonly description?: readonly string[] | undefined; + readonly description: readonly string[]; /** * The name of the item. * * @see https://schema.org/name */ - readonly name?: readonly string[] | undefined; + readonly name: readonly string[]; /** * Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role. * * @see https://schema.org/potentialAction */ - readonly potentialAction?: readonly ActionOutput[] | undefined; + readonly potentialAction: readonly ActionOutput[]; /** * URL of the item. * * @see https://schema.org/url */ - readonly url?: readonly string[] | undefined; - - /** - * Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. - * - * @see https://schema.org/isPartOf - */ - readonly isPartOf?: readonly ThingOutput[] | undefined; + readonly url: readonly string[]; }; /** @@ -152,7 +138,6 @@ const thingSchema: GenericSchema = additionalType: orgSchemaProperties(string()), alternateName: orgSchemaProperties(string()), description: orgSchemaProperties(string()), - isPartOf: orgSchemaProperties(lazy(() => thingSchema)), name: orgSchemaProperties(string()), potentialAction: orgSchemaProperties(lazy(() => actionSchema)), url: orgSchemaProperties(string()) diff --git a/packages/core/src/types/external/OrgSchema/UserReview.ts b/packages/core/src/types/external/OrgSchema/UserReview.ts index a6c3a00a06..6ad7802365 100644 --- a/packages/core/src/types/external/OrgSchema/UserReview.ts +++ b/packages/core/src/types/external/OrgSchema/UserReview.ts @@ -1,6 +1,6 @@ import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; -import orgSchemaProperty from './private/orgSchemaProperty'; +import orgSchemaProperties from './private/orgSchemaProperties'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; /** @@ -28,14 +28,14 @@ type UserReviewOutput = ThingOutput & { /** * This Review or Rating is relevant to this part or facet of the itemReviewed. */ - readonly reviewAspect?: string | readonly string[] | undefined; + readonly reviewAspect: readonly string[]; }; const userReviewSchema: GenericSchema = intersect([ lazy(() => thingSchema), pipe( looseObject({ - reviewAspect: orgSchemaProperty(string()) + reviewAspect: orgSchemaProperties(string()) }), readonly() ) diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.ts b/packages/core/src/types/external/OrgSchema/VoteAction.ts index 6dd03df907..a5ee5c33ee 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.ts @@ -36,7 +36,7 @@ type VoteActionOutput = ActionOutput & { * * @see https://schema.org/VoteAction */ - readonly actionOption?: readonly string[] | undefined; + readonly actionOption: readonly string[]; }; const voteActionSchema: GenericSchema = intersect([ diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts index 4775340590..9d100b15e6 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts @@ -1,8 +1,10 @@ import { array, fallback, + optional, parse, pipe, + readonly, transform, type BaseSchema, type Fallback, @@ -12,19 +14,29 @@ import { } from 'valibot'; type SingularToArraySchema> = GenericSchema< - InferInput | InferInput[] | undefined, - InferOutput[] | undefined + InferInput | readonly InferInput[] | undefined, + readonly InferOutput[] | undefined >; +const EMPTY_ARRAY = Object.freeze([]); + const singularToArray = >( schema: T -): GenericSchema | InferInput[] | undefined, InferOutput[] | undefined> => - fallback, Fallback>>( - pipe( - array(schema), - transform(value => value.filter(value => typeof value !== 'undefined')) +): GenericSchema | readonly InferInput[] | undefined, readonly InferOutput[] | undefined> => + optional( + fallback, Fallback>>( + pipe( + // If it is an array. + array(schema), + // Filter out all `undefined` value. + transform(value => Object.freeze(value.filter(value => typeof value !== 'undefined'))), + // If it is empty, return our empty flywheel. + transform(value => (value.length ? value : EMPTY_ARRAY)), + readonly() + ), + value => (value?.value ? Object.freeze([parse(schema, value?.value) as InferOutput]) : EMPTY_ARRAY) ), - value => (value?.value ? [parse(schema, value?.value) as InferOutput] : undefined) + EMPTY_ARRAY ); export default function orgSchemaProperties>( diff --git a/packages/core/src/utils/getActivityLivestreamingMetadata.ts b/packages/core/src/utils/getActivityLivestreamingMetadata.ts index 30f211c2a6..00923f8998 100644 --- a/packages/core/src/utils/getActivityLivestreamingMetadata.ts +++ b/packages/core/src/utils/getActivityLivestreamingMetadata.ts @@ -183,7 +183,7 @@ export default function getActivityLivestreamingMetadata(activity: WebChatActivi type: !( output.text || output.attachments?.length || - ('entities' in output && getOrgSchemaMessage(output.entities)?.abstract) + ('entities' in output && getOrgSchemaMessage(output.entities)?.abstract[0]) ) ? 'contentless' : livestreamMetadata.streamType === 'informative' diff --git a/packages/core/src/utils/getOrgSchemaMessage.spec.ts b/packages/core/src/utils/getOrgSchemaMessage.spec.ts index a45af71ba0..b60f1202e8 100644 --- a/packages/core/src/utils/getOrgSchemaMessage.spec.ts +++ b/packages/core/src/utils/getOrgSchemaMessage.spec.ts @@ -1,3 +1,4 @@ +import { expect, test } from '@jest/globals'; import getOrgSchemaMessage from './getOrgSchemaMessage'; test('should get message', () => { diff --git a/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx b/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx index 487f712fba..98cbc9509e 100644 --- a/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx +++ b/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx @@ -40,7 +40,7 @@ function PartGroupingDecorator(props: PartGroupingDecoratorProps) { const isInGroup = useMemo( () => restActivities.length > 0 || - !!(activity?.entities && getOrgSchemaMessage(activity.entities)?.isPartOf?.[0]?.['@id']), + !!(activity?.entities && getOrgSchemaMessage(activity.entities)?.isPartOf[0]?.['@id']), [activity, restActivities.length] ); diff --git a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts index 353ea260b2..89d500a02c 100644 --- a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts +++ b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts @@ -5,9 +5,7 @@ import { parse } from 'valibot'; export default function useActivityAuthor(activity?: WebChatActivity | undefined): OrgSchemaPerson | undefined { return useMemo(() => { - const entity = getOrgSchemaMessage(activity?.entities || []); - - const [firstAuthor] = entity?.author ?? []; + const firstAuthor = getOrgSchemaMessage(activity?.entities || [])?.author[0]; return typeof firstAuthor === 'string' ? parse(orgSchemaPersonSchema, { From 6350b0150fac523859c0e3466b5d5c538aff6867 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 22:41:05 +0000 Subject: [PATCH 34/59] Fix Schema.org typings --- .../private/FeedbackVoteButton.tsx | 18 ++++++++++--- .../private/getDisclaimerFromReviewAction.ts | 11 ++++---- .../src/ActivityStatus/private/Originator.tsx | 21 ++++------------ .../ui/PartGrouping/CollapsibleGrouping.tsx | 2 +- .../src/Styles/StyleSet/SuggestedAction.ts | 14 +---------- packages/core/src/index.ts | 25 ++++++++----------- 6 files changed, 38 insertions(+), 53 deletions(-) diff --git a/packages/component/src/ActivityFeedback/private/FeedbackVoteButton.tsx b/packages/component/src/ActivityFeedback/private/FeedbackVoteButton.tsx index 89988604ac..95b073afde 100644 --- a/packages/component/src/ActivityFeedback/private/FeedbackVoteButton.tsx +++ b/packages/component/src/ActivityFeedback/private/FeedbackVoteButton.tsx @@ -1,9 +1,21 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { hooks } from 'botframework-webchat-api'; -import { onErrorResumeNext, parseVoteAction, type OrgSchemaAction } from 'botframework-webchat-core'; +import { onErrorResumeNext, orgSchemaVoteActionSchema, type OrgSchemaAction } from 'botframework-webchat-core'; import React, { memo, useCallback, useMemo, useRef } from 'react'; import { useRefFrom } from 'use-ref-from'; -import { custom, literal, object, optional, pipe, readonly, safeParse, string, union, type InferInput } from 'valibot'; +import { + custom, + literal, + object, + optional, + parse, + pipe, + readonly, + safeParse, + string, + union, + type InferInput +} from 'valibot'; import { useListenToActivityFeedbackFocus } from '../providers/private/FocusPropagation'; import useActivityFeedbackHooks from '../providers/useActivityFeedbackHooks'; @@ -52,7 +64,7 @@ function FeedbackVoteButton(props: FeedbackVoteButtonProps) { if ( action['@type'] === 'DislikeAction' || (action['@type'] === 'VoteAction' && - onErrorResumeNext(() => parseVoteAction(action))?.actionOption === 'downvote') + onErrorResumeNext(() => parse(orgSchemaVoteActionSchema, action))?.actionOption[0] === 'downvote') ) { return 'down'; } diff --git a/packages/component/src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts b/packages/component/src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts index 3568644b85..00f434bd40 100644 --- a/packages/component/src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts +++ b/packages/component/src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts @@ -1,9 +1,8 @@ -import { type OrgSchemaAction, type OrgSchemaThing, type OrgSchemaUserReview } from 'botframework-webchat-core'; - -function isUserReview(thing: OrgSchemaThing | undefined): thing is OrgSchemaUserReview { - return thing?.['@type'] === 'UserReview'; -} +import { orgSchemaUserReviewSchema, type OrgSchemaAction } from 'botframework-webchat-core'; +import { safeParse } from 'valibot'; export default function getDisclaimerFromActivity(action: OrgSchemaAction): string | undefined { - return isUserReview(action.result) ? action.result.reviewAspect : undefined; + const userReview = safeParse(orgSchemaUserReviewSchema, action.result); + + return userReview.success ? userReview.output.reviewAspect[0] : undefined; } diff --git a/packages/component/src/ActivityStatus/private/Originator.tsx b/packages/component/src/ActivityStatus/private/Originator.tsx index 9b8fccdd18..18255ad39c 100644 --- a/packages/component/src/ActivityStatus/private/Originator.tsx +++ b/packages/component/src/ActivityStatus/private/Originator.tsx @@ -1,9 +1,9 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { useStyles } from '@msinternal/botframework-webchat-styles/react'; -import { type OrgSchemaProject } from 'botframework-webchat-core'; +import { orgSchemaProjectSchema } from 'botframework-webchat-core'; import cx from 'classnames'; import React, { memo } from 'react'; -import { custom, object, optional, pipe, readonly, safeParse, string, type InferInput } from 'valibot'; +import { object, pipe, readonly, type InferInput } from 'valibot'; import useSanitizeHrefCallback from '../../hooks/internal/useSanitizeHrefCallback'; @@ -11,18 +11,7 @@ import styles from '../ActivityStatus.module.css'; const originatorPropsSchema = pipe( object({ - // TODO: [P1] We should build this schema into `OrgSchemaProject` instead, or build a Schema.org query library. - project: custom( - value => - safeParse( - object({ - name: optional(string()), - slogan: optional(string()), - url: optional(string()) - }), - value - ).success - ) + project: orgSchemaProjectSchema }), readonly() ); @@ -39,8 +28,8 @@ const Originator = memo(function Originator(props: OriginatorProps) { const sanitizeHref = useSanitizeHrefCallback(); const classNames = useStyles(styles); - const { sanitizedHref } = sanitizeHref(url); - const text = slogan || name; + const { sanitizedHref } = sanitizeHref(url[0]); + const text = slogan[0] || name[0]; return sanitizedHref ? ( // Link is sanitized. diff --git a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.tsx b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.tsx index c57f49adbf..edc93320c6 100644 --- a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.tsx @@ -20,7 +20,7 @@ const collapsibleGroupingPropsSchema = pipe( className: optional(string()), header: optional(reactNode()), isOpen: optional(boolean()), - onToggle: optional(pipe(custom<(isOpen: boolean) => void>(toggle => typeof toggle === 'function')), readonly()) + onToggle: optional(custom<(isOpen: boolean) => void>(toggle => typeof toggle === 'function')) }), readonly() ); diff --git a/packages/component/src/Styles/StyleSet/SuggestedAction.ts b/packages/component/src/Styles/StyleSet/SuggestedAction.ts index 97b4d7d4a2..456dcb457c 100644 --- a/packages/component/src/Styles/StyleSet/SuggestedAction.ts +++ b/packages/component/src/Styles/StyleSet/SuggestedAction.ts @@ -48,19 +48,11 @@ export default function createSuggestedActionStyle({ suggestedActionHeight, suggestedActionImageHeight, suggestedActionsStackedLayoutButtonMaxHeight, - subtle, - - // Deprecated - suggestedActionActiveBackground, - suggestedActionBackground, - suggestedActionDisabledBackground, - suggestedActionFocusBackground, - suggestedActionHoverBackground + subtle }: StrictStyleOptions) { return { '&.webchat__suggested-action': { alignItems: 'center', - background: suggestedActionBackground, // Deprecated as of 4.15.0. Remove on or after 2021-09-16. backgroundColor: suggestedActionBackgroundColor, borderColor: suggestedActionBorderColor || accent, borderRadius: suggestedActionBorderRadius, @@ -82,7 +74,6 @@ export default function createSuggestedActionStyle({ // Order of style preferences (based on effort of user gesture): disabled > active > hover > focus. // Keyboard focus indicator styles applied by :focus-visible do not conflict with :active/:hover/:focus, so it is not included here. '&:disabled, &[aria-disabled="true"]': { - background: suggestedActionDisabledBackground, backgroundColor: suggestedActionBackgroundColorOnDisabled, borderColor: suggestedActionBorderColorOnDisabled, borderStyle: suggestedActionBorderStyleOnDisabled, @@ -92,7 +83,6 @@ export default function createSuggestedActionStyle({ '&:not(:disabled):not([aria-disabled="true"])': { '&:active': { - background: suggestedActionActiveBackground, backgroundColor: suggestedActionBackgroundColorOnActive, borderColor: suggestedActionBorderColorOnActive, borderStyle: suggestedActionBorderStyleOnActive, @@ -102,7 +92,6 @@ export default function createSuggestedActionStyle({ '&:not(:active)': { '&:hover': { - background: suggestedActionHoverBackground, backgroundColor: suggestedActionBackgroundColorOnHover, borderColor: suggestedActionBorderColorOnHover, borderStyle: suggestedActionBorderStyleOnHover, @@ -112,7 +101,6 @@ export default function createSuggestedActionStyle({ '&:not(:hover)': { '&:focus': { - background: suggestedActionFocusBackground, backgroundColor: suggestedActionBackgroundColorOnFocus, borderColor: suggestedActionBorderColorOnFocus, borderStyle: suggestedActionBorderStyleOnFocus, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 0fa0c32ddd..6a0cfb78c8 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -38,13 +38,6 @@ import createStore, { withDevTools as createStoreWithDevTools, withOptions as createStoreWithOptions } from './createStore'; -import { parseAction } from './types/external/OrgSchema/Action'; -import { parseClaim } from './types/external/OrgSchema/Claim'; -import { parseCreativeWork } from './types/external/OrgSchema/CreativeWork'; -import { parseDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; -import { parseProject } from './types/external/OrgSchema/Project'; -import { parseThing } from './types/external/OrgSchema/Thing'; -import { parseVoteAction } from './types/external/OrgSchema/VoteAction'; import getActivityLivestreamingMetadata from './utils/getActivityLivestreamingMetadata'; import getOrgSchemaMessage from './utils/getOrgSchemaMessage'; import onErrorResumeNext from './utils/onErrorResumeNext'; @@ -94,18 +87,22 @@ import type { Observable } from './types/external/Observable'; // #region Schema.org export { actionSchema as orgSchemaActionSchema, + parseAction, type ActionOutput as OrgSchemaAction } from './types/external/OrgSchema/Action'; export { claimSchema as orgSchemaClaimSchema, + parseClaim, type ClaimOutput as OrgSchemaClaim } from './types/external/OrgSchema/Claim'; export { creativeWorkSchema as orgSchemaCreativeWorkSchema, + parseCreativeWork, type CreativeWorkOutput as OrgSchemaCreativeWork } from './types/external/OrgSchema/CreativeWork'; export { definedTermSchema as orgSchemaDefinedTermSchema, + parseDefinedTerm, type DefinedTermOutput as OrgSchemaDefinedTerm } from './types/external/OrgSchema/DefinedTerm'; export { @@ -114,6 +111,7 @@ export { } from './types/external/OrgSchema/Person'; export { projectSchema as orgSchemaProjectSchema, + parseProject, type ProjectOutput as OrgSchemaProject } from './types/external/OrgSchema/Project'; export { @@ -122,12 +120,18 @@ export { } from './types/external/OrgSchema/SoftwareSourceCode'; export { thingSchema as orgSchemaThingSchema, + parseThing, type ThingOutput as OrgSchemaThing } from './types/external/OrgSchema/Thing'; export { userReviewSchema as orgSchemaUserReviewSchema, type UserReviewOutput as OrgSchemaUserReview } from './types/external/OrgSchema/UserReview'; +export { + voteActionSchema as orgSchemaVoteActionSchema, + parseVoteAction, + type VoteActionOutput as OrgSchemaVoteAction +} from './types/external/OrgSchema/VoteAction'; // #endregion /** @deprecated */ @@ -153,13 +157,6 @@ export { markActivity, muteVoiceRecording, onErrorResumeNext, - parseAction, - parseClaim, - parseCreativeWork, - parseDefinedTerm, - parseProject, - parseThing, - parseVoteAction, postActivity, postVoiceActivity, registerVoiceHandler, From cf2ca914eff7346ef0de57a2e99e969b549aecb8 Mon Sep 17 00:00:00 2001 From: William Wong Date: Thu, 23 Apr 2026 22:41:44 +0000 Subject: [PATCH 35/59] Export as HTMLElement --- .../customElements/CodeBlock.ts | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts b/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts index a0f210d4c9..b984c31f28 100644 --- a/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts +++ b/packages/component/src/providers/CustomElements/customElements/CodeBlock.ts @@ -1,5 +1,4 @@ /* eslint-disable class-methods-use-this */ -// eslint-disable-next-line max-classes-per-file import { hooks } from 'botframework-webchat-api'; import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import { ReactNode, useMemo, useRef } from 'react'; @@ -12,24 +11,11 @@ import styles from './CodeBlock.module.css'; const { useStyleOptions, useLocalizer } = hooks; -abstract class CodeBlockBase extends HTMLElement { - copyButtonElement: HTMLElement; - - abstract get code(): string; - abstract get theme(): string; - abstract set theme(value: string); - abstract get language(): string; - abstract set language(value: string); - abstract get options(): { readonly theme: string }; - - abstract scheduleUpdate(): void; - abstract update(): void; - abstract highlightCode(...args: Parameters): DocumentFragment | string; -} - -class CodeBlock extends CodeBlockBase { +class CodeBlock extends HTMLElement { static observedAttributes = ['theme', 'language']; + copyButtonElement: HTMLElement; + #connected = false; #originalFragment: DocumentFragment = undefined; #updateTask?: Promise; @@ -163,12 +149,12 @@ const useCodeBlockProps = (copyButtonTagName: string) => { ); }; -export default function useReactCodeBlockClass(copyButtonTagName: string) { +export default function useReactCodeBlockClass(copyButtonTagName: string): typeof HTMLElement { const [codeBlockTarget, codeBlockPropsRef] = useCodeBlockProps(copyButtonTagName); const classNames = useStyles(styles); - return useMemo( + return useMemo( () => class ReactCodeBlock extends CodeBlock { static observedAttributes = CodeBlock.observedAttributes; From e7bc27f0fdfe27e20a9583d363dfc26565217f36 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 00:40:48 +0000 Subject: [PATCH 36/59] Fix looseObject --- .../ActivityStatus/OthersActivityStatus.tsx | 7 ++- .../src/ActivityStatus/private/Originator.tsx | 15 +++-- .../getFirstBaseOfSoftwareSourceCode.ts | 4 +- .../src/types/external/OrgSchema/Action.ts | 4 +- .../src/types/external/OrgSchema/Claim.ts | 4 +- .../types/external/OrgSchema/CreativeWork.ts | 48 ++++++---------- .../types/external/OrgSchema/DefinedTerm.ts | 4 +- .../src/types/external/OrgSchema/Person.ts | 4 +- .../OrgSchema/Project.parseProject.spec.ts | 1 + .../src/types/external/OrgSchema/Project.ts | 4 +- .../external/OrgSchema/SoftwareSourceCode.ts | 4 +- .../src/types/external/OrgSchema/Thing.ts | 57 +++++++++++++++---- .../types/external/OrgSchema/UserReview.ts | 4 +- .../types/external/OrgSchema/VoteAction.ts | 4 +- .../OrgSchema/private/orgSchemaProperties.ts | 46 +++++++-------- .../core/src/utils/getOrgSchemaMessage.ts | 29 ++++++---- 16 files changed, 131 insertions(+), 108 deletions(-) diff --git a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx index a20658c46f..5235316e8c 100644 --- a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx +++ b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx @@ -78,7 +78,12 @@ const OthersActivityStatus = memo(({ activity, className, slotted }: Props) => { )} {claimInterpreter && ( - + )} {feedbackActionsPlacement === 'activity-status' && ( diff --git a/packages/component/src/ActivityStatus/private/Originator.tsx b/packages/component/src/ActivityStatus/private/Originator.tsx index 18255ad39c..b559b2481f 100644 --- a/packages/component/src/ActivityStatus/private/Originator.tsx +++ b/packages/component/src/ActivityStatus/private/Originator.tsx @@ -1,9 +1,8 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { useStyles } from '@msinternal/botframework-webchat-styles/react'; -import { orgSchemaProjectSchema } from 'botframework-webchat-core'; import cx from 'classnames'; import React, { memo } from 'react'; -import { object, pipe, readonly, type InferInput } from 'valibot'; +import { object, pipe, readonly, string, undefinedable, type InferInput } from 'valibot'; import useSanitizeHrefCallback from '../../hooks/internal/useSanitizeHrefCallback'; @@ -11,7 +10,9 @@ import styles from '../ActivityStatus.module.css'; const originatorPropsSchema = pipe( object({ - project: orgSchemaProjectSchema + name: undefinedable(string()), + slogan: undefinedable(string()), + url: undefinedable(string()) }), readonly() ); @@ -21,15 +22,13 @@ type OriginatorProps = InferInput; // Regular function is better for React function component. // eslint-disable-next-line prefer-arrow-callback const Originator = memo(function Originator(props: OriginatorProps) { - const { - project: { name, slogan, url } - } = validateProps(originatorPropsSchema, props); + const { name, slogan, url } = validateProps(originatorPropsSchema, props); const sanitizeHref = useSanitizeHrefCallback(); const classNames = useStyles(styles); - const { sanitizedHref } = sanitizeHref(url[0]); - const text = slogan[0] || name[0]; + const { sanitizedHref } = sanitizeHref(url); + const text = slogan || name; return sanitizedHref ? ( // Link is sanitized. diff --git a/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts b/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts index 286b7a0c0b..aee4b7d03d 100644 --- a/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts +++ b/packages/component/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts @@ -12,9 +12,9 @@ import { safeParse } from 'valibot'; * @returns A `SoftwareSourceCode` if found, otherwise, `undefined`. */ export default function getFirstBaseOfSoftwareSourceCode( - messageThing: OrgSchemaCreativeWork + messageThing: OrgSchemaCreativeWork | undefined ): OrgSchemaSoftwareSourceCode | undefined { - for (const base of messageThing.isBasedOn) { + for (const base of messageThing?.isBasedOn ?? []) { const result = safeParse(orgSchemaSoftwareSourceCodeSchema, base); if (result.success) { diff --git a/packages/core/src/types/external/OrgSchema/Action.ts b/packages/core/src/types/external/OrgSchema/Action.ts index 1f5dab7eb6..c0a922d4bb 100644 --- a/packages/core/src/types/external/OrgSchema/Action.ts +++ b/packages/core/src/types/external/OrgSchema/Action.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionStatusSchema, type ActionStatusInput, type ActionStatusOutput } from './ActionStatus'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -79,7 +79,7 @@ type ActionOutput = ThingOutput & { const actionSchema: GenericSchema = intersect([ lazy(() => thingSchema), pipe( - looseObject({ + object({ actionOption: orgSchemaProperties(string()), actionStatus: orgSchemaProperties(actionStatusSchema), provider: orgSchemaProperties(lazy(() => projectSchema)), diff --git a/packages/core/src/types/external/OrgSchema/Claim.ts b/packages/core/src/types/external/OrgSchema/Claim.ts index 51e875d7c0..f0bdc3f87c 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, type GenericSchema } from 'valibot'; import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; import { projectSchema, type ProjectInput, type ProjectOutput } from './Project'; @@ -57,7 +57,7 @@ type ClaimOutput = CreativeWorkOutput & { const claimSchema: GenericSchema = intersect([ lazy(() => creativeWorkSchema), pipe( - looseObject({ + object({ appearance: orgSchemaProperties(lazy(() => creativeWorkSchema)), claimInterpreter: orgSchemaProperties(lazy(() => projectSchema)) }), diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index 3c35416980..6d47837ffb 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -1,15 +1,4 @@ -import { - intersect, - lazy, - looseObject, - number, - parse, - pipe, - readonly, - string, - union, - type GenericSchema -} from 'valibot'; +import { intersect, lazy, number, object, parse, string, union, type GenericSchema } from 'valibot'; import { creativeWorkStatusSchema, @@ -191,25 +180,22 @@ type CreativeWorkOutput = ThingOutput & { const creativeWorkSchema: GenericSchema = intersect([ lazy(() => thingSchema), - pipe( - looseObject({ - // For forward compatibility, we did not enforce @type must be "CreativeWork" or any other subtypes. - // In future, if Schema.org introduced a new subtype of CreativeWork, we should still able to parse that one as a CreativeWork. - - abstract: orgSchemaProperties(string()), - author: orgSchemaProperties(union([personSchema, string()])), - citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), - creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), - isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), - isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema)), - keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), - pattern: orgSchemaProperties(lazy(() => definedTermSchema)), - position: orgSchemaProperties(union([number(), string()])), - text: orgSchemaProperties(string()), - usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema)) - }), - readonly() - ) + object({ + // For forward compatibility, we did not enforce @type must be "CreativeWork" or any other subtypes. + // In future, if Schema.org introduced a new subtype of CreativeWork, we should still able to parse that one as a CreativeWork. + + abstract: orgSchemaProperties(string()), + author: orgSchemaProperties(union([lazy(() => personSchema), string()])), + citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), + creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), + isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), + isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema)), + keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), + pattern: orgSchemaProperties(lazy(() => definedTermSchema)), + position: orgSchemaProperties(union([number(), string()])), + text: orgSchemaProperties(string()), + usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema)) + }) ]); /** @deprecated Use Valibot.parse(creativeWorkSchema) instead. Will be removed on or after 2028-04-23. */ diff --git a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts index 5112beaa1e..6b6e4d8dd6 100644 --- a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts +++ b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -52,7 +52,7 @@ type DefinedTermOutput = ThingOutput & { const definedTermSchema: GenericSchema = intersect([ lazy(() => thingSchema), pipe( - looseObject({ + object({ inDefinedTermSet: orgSchemaProperties(string()), termCode: orgSchemaProperties(string()) }), diff --git a/packages/core/src/types/external/OrgSchema/Person.ts b/packages/core/src/types/external/OrgSchema/Person.ts index 7b826d27ed..9f395e91a5 100644 --- a/packages/core/src/types/external/OrgSchema/Person.ts +++ b/packages/core/src/types/external/OrgSchema/Person.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -41,7 +41,7 @@ type PersonOutput = ThingOutput & { const personSchema: GenericSchema = intersect([ lazy(() => thingSchema), pipe( - looseObject({ + object({ description: orgSchemaProperties(string()), image: orgSchemaProperties(string()), name: orgSchemaProperties(string()) diff --git a/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts b/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts index 2b6841a81d..0d227323ba 100644 --- a/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts @@ -1,3 +1,4 @@ +import { describe, expect, test } from '@jest/globals'; import { parseProject } from './Project'; describe('Project', () => { diff --git a/packages/core/src/types/external/OrgSchema/Project.ts b/packages/core/src/types/external/OrgSchema/Project.ts index de3588831f..89238150eb 100644 --- a/packages/core/src/types/external/OrgSchema/Project.ts +++ b/packages/core/src/types/external/OrgSchema/Project.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, string } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, string } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; @@ -45,7 +45,7 @@ type ProjectOutput = ThingOutput & { const projectSchema = intersect([ lazy(() => thingSchema), pipe( - looseObject({ + object({ /** * A slogan or motto associated with the item. * diff --git a/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts b/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts index ca3b0ca5bc..ca8b6c092e 100644 --- a/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts +++ b/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, pipe, readonly, string, type GenericSchema } from 'valibot'; import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -38,7 +38,7 @@ type SoftwareSourceCodeOutput = CreativeWorkOutput & { const softwareSourceCodeSchema: GenericSchema = intersect([ lazy(() => creativeWorkSchema), pipe( - looseObject({ + object({ programmingLanguage: orgSchemaProperties(string()) }), readonly() diff --git a/packages/core/src/types/external/OrgSchema/Thing.ts b/packages/core/src/types/external/OrgSchema/Thing.ts index 1c87b7a2c8..d413feec34 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.ts @@ -1,4 +1,4 @@ -import { lazy, literal, looseObject, optional, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { lazy, literal, object, optional, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -121,20 +121,53 @@ type ThingOutput = { * @see https://schema.org/Thing */ const thingSchema: GenericSchema = - // Forward compatibility is the reason why we use looseObject() here and not adhere to JSON-LD which drop unknown fields. - // - // Example: - // - CreativeWork.editor must be type of Person (or any of its subtypes, Patient) - // - Without looseObject(), when we parse the CreativeWork, we will drop Patient.diagnosis - // - That means, CreativeWork.editor.diagnosis will be unset despite CreativeWork.editor is of type Patient - // - // We can drop looseObject() if there is a way to keep CreativeWork.editor.diagnosis. - // It is okay to drop future/unsupported properties. But not today/supported properties. + // We cannot use looseObject() to futureproof properties. + + // The following code will result in error: + + // parse( + // intersect([ + // looseObject({ one: number() }), + // looseObject({ + // two: pipe( + // number(), + // transform(value => '' + value) + // ) + // }) + // ]), + // { + // one: 1, + // two: 2 + // } + // ); + + // { + // kind: 'schema', + // type: 'intersect', + // input: { + // one: 1, + // two: 2 + // }, + // expected: 'Object', + // received: 'unknown', + // message: 'Invalid type: Expected Object but received unknown' + // }; + + // This is due to how intersect works. + // Intersection kicks-in after both looseObject() is done. + // When trying to intersect { one: 1, two: 2 } and { one: 1, two: '2' }, it would fail. + + // In our code, we are literally doing `intersect(lazy(() => looseObject({})), looseObject({}))`. + + // We cannot use object().entries because we need to use lazy() which requires GenericSchema. + // We could write out the GenericSchema as ObjectSchema but it will be very cumbersome. + // At the end of the day, it is easier to keep object() than looseObject(). + pipe( - looseObject({ + object({ '@context': optional(pipe(literal('https://schema.org'))), '@id': optional(string()), - '@type': string(), + '@type': optional(string()), additionalType: orgSchemaProperties(string()), alternateName: orgSchemaProperties(string()), description: orgSchemaProperties(string()), diff --git a/packages/core/src/types/external/OrgSchema/UserReview.ts b/packages/core/src/types/external/OrgSchema/UserReview.ts index 6ad7802365..9ef29823c5 100644 --- a/packages/core/src/types/external/OrgSchema/UserReview.ts +++ b/packages/core/src/types/external/OrgSchema/UserReview.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; @@ -34,7 +34,7 @@ type UserReviewOutput = ThingOutput & { const userReviewSchema: GenericSchema = intersect([ lazy(() => thingSchema), pipe( - looseObject({ + object({ reviewAspect: orgSchemaProperties(string()) }), readonly() diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.ts b/packages/core/src/types/external/OrgSchema/VoteAction.ts index a5ee5c33ee..b95577a4f1 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -42,7 +42,7 @@ type VoteActionOutput = ActionOutput & { const voteActionSchema: GenericSchema = intersect([ lazy(() => actionSchema), pipe( - looseObject({ + object({ actionOption: orgSchemaProperties(string()) }), readonly() diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts index 9d100b15e6..d7d27a1f24 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts @@ -1,46 +1,40 @@ import { array, - fallback, optional, - parse, pipe, - readonly, transform, + union, type BaseSchema, - type Fallback, type GenericSchema, type InferInput, type InferOutput } from 'valibot'; -type SingularToArraySchema> = GenericSchema< - InferInput | readonly InferInput[] | undefined, - readonly InferOutput[] | undefined ->; - const EMPTY_ARRAY = Object.freeze([]); -const singularToArray = >( +export default function orgSchemaProperties>( schema: T -): GenericSchema | readonly InferInput[] | undefined, readonly InferOutput[] | undefined> => - optional( - fallback, Fallback>>( +): GenericSchema | readonly InferInput[] | undefined, readonly InferOutput[] | undefined> { + return optional( + union([ + // If it is an array. pipe( - // If it is an array. array(schema), - // Filter out all `undefined` value. - transform(value => Object.freeze(value.filter(value => typeof value !== 'undefined'))), - // If it is empty, return our empty flywheel. - transform(value => (value.length ? value : EMPTY_ARRAY)), - readonly() + transform(value => { + // Filter out all `undefined` value. + const result = value.filter(value => typeof value !== 'undefined'); + + // If it is non-empty, return the frozen array, otherwise, return our empty flywheel. + return result.length ? Object.freeze(result) : EMPTY_ARRAY; + }) ), - value => (value?.value ? Object.freeze([parse(schema, value?.value) as InferOutput]) : EMPTY_ARRAY) - ), + pipe( + // Otherwise, it must match the schema + schema, + // Put it in a frozen array tuple. + transform(value => Object.freeze([value])) + ) + ]), EMPTY_ARRAY ); - -export default function orgSchemaProperties>( - schema: T -): GenericSchema | readonly InferInput[] | undefined, readonly InferOutput[] | undefined> { - return singularToArray(schema); } diff --git a/packages/core/src/utils/getOrgSchemaMessage.ts b/packages/core/src/utils/getOrgSchemaMessage.ts index 431154f99c..a9c62d3055 100644 --- a/packages/core/src/utils/getOrgSchemaMessage.ts +++ b/packages/core/src/utils/getOrgSchemaMessage.ts @@ -1,22 +1,27 @@ -import { parse } from 'valibot'; +import { parse, safeParse } from 'valibot'; import { creativeWorkSchema, type CreativeWorkOutput } from '../types/external/OrgSchema/CreativeWork'; -import { thingSchema } from '../types/external/OrgSchema/Thing'; import { type WebChatActivity } from '../types/WebChatActivity'; type EntityType = NonNullable[number]; export default function getOrgSchemaMessage(graph: readonly EntityType[]): CreativeWorkOutput | undefined { - const messageEntity = (graph || []).find(entity => { - const isThing = entity.type?.startsWith('https://schema.org/'); + for (const entity of graph ?? []) { + const isPossiblySelfMessage = + entity && + typeof entity === 'object' && + 'type' in entity && + entity.type?.startsWith('https://schema.org/') && + '@id' in entity && + entity['@id'] === ''; - if (isThing) { - const thing = parse(thingSchema, entity); + if (isPossiblySelfMessage) { + try { + return parse(creativeWorkSchema, entity); + } catch (error) { + console.error(safeParse(creativeWorkSchema, entity).issues); - return thing['@id'] === ''; + throw error; + } } - }); - - const message = messageEntity && parse(creativeWorkSchema, messageEntity); - - return message && parse(creativeWorkSchema, message); + } } From f6b3447ad762eca9be51a22c5ee4b77f1476863f Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 01:37:14 +0000 Subject: [PATCH 37/59] Fix Schema.org accessors --- .../component/src/Activity/StackedLayout.tsx | 13 +++--- .../providers/ActivityFeedbackComposer.tsx | 4 +- .../ActivityStatus/OthersActivityStatus.tsx | 4 +- .../Text/private/MarkdownTextContent.tsx | 44 ++++++++++--------- .../Text/private/isAIGeneratedActivity.ts | 2 +- .../private/PartGroupingActivity.tsx | 2 +- .../src/hooks/internal/useFeedbackActions.ts | 4 +- .../activity/private/isAIGeneratedActivity.ts | 2 +- .../isPreChatMessageActivity.ts | 2 +- 9 files changed, 37 insertions(+), 40 deletions(-) diff --git a/packages/component/src/Activity/StackedLayout.tsx b/packages/component/src/Activity/StackedLayout.tsx index 63808cafba..48581b5e0d 100644 --- a/packages/component/src/Activity/StackedLayout.tsx +++ b/packages/component/src/Activity/StackedLayout.tsx @@ -136,6 +136,7 @@ const StackedLayout = ({ const messageThing = useMemo(() => getOrgSchemaMessage(activity.entities), [activity]); const isCollapsible = useMemo(() => messageThing?.keywords?.includes('Collapsible'), [messageThing]); + const creativeWorkStatus = messageThing?.creativeWorkStatus[0]; const isLivestreaming = !!getActivityLivestreamingMetadata(activity); const activityDisplayText = isMessageOrTyping ? messageBackDisplayText || activity.text @@ -164,14 +165,12 @@ const StackedLayout = ({ const showAvatar = showCallout && hasAvatar && !!renderAvatar; const showNub = !isInGroup && showCallout && hasNub && (topAlignedCallout || !attachments?.length); - const showStatus = !!messageThing?.creativeWorkStatus[0] || isInGroup; + const showStatus = !!creativeWorkStatus || isInGroup; const renderMainBubbleContent = useCallback( (title = '', withStatus = true) => (
- {withStatus && showStatus && ( - - )} + {withStatus && showStatus && } {title &&
{title}
} {activityDisplayText && renderAttachment({ @@ -183,7 +182,7 @@ const StackedLayout = ({ })}
), - [activity, activityDisplayText, classNames, messageThing?.creativeWorkStatus, renderAttachment, showStatus] + [activity, activityDisplayText, classNames, creativeWorkStatus, renderAttachment, showStatus] ); const attachmentChildren = useMemo(() => { @@ -265,7 +264,7 @@ const StackedLayout = ({ const renderCollapsibleBubbleContent = useCallback( (title = '') => (
- {showStatus && } + {showStatus && }
), - [attachmentChildren, classNames, messageThing?.creativeWorkStatus, showStatus] + [attachmentChildren, classNames, creativeWorkStatus, showStatus] ); const renderBubbleContent = isCollapsible ? renderCollapsibleBubbleContent : renderMainBubbleContent; diff --git a/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx b/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx index df2c045cab..95dbf04542 100644 --- a/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx +++ b/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx @@ -131,9 +131,7 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { const messageThing = getOrgSchemaMessage(graph); const reactActions = Object.freeze( - (messageThing?.potentialAction || []).filter( - ({ '@type': type }) => type === 'LikeAction' || type === 'DislikeAction' - ) + messageThing?.potentialAction.filter(({ '@type': type }) => type === 'LikeAction' || type === 'DislikeAction') ); if (reactActions.length) { diff --git a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx index 5235316e8c..f6539080ad 100644 --- a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx +++ b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx @@ -39,7 +39,7 @@ const OthersActivityStatus = memo(({ activity, className, slotted }: Props) => { const claimInterpreter = useMemo(() => { try { if (messageThing) { - return parse(orgSchemaClaimSchema, (messageThing?.citation || [])[0])?.claimInterpreter?.[0]; + return parse(orgSchemaClaimSchema, messageThing?.citation[0])?.claimInterpreter[0]; } const [firstClaim] = graph @@ -49,7 +49,7 @@ const OthersActivityStatus = memo(({ activity, className, slotted }: Props) => { if (firstClaim) { warnRootLevelThings(); - return firstClaim?.claimInterpreter?.[0]; + return firstClaim?.claimInterpreter[0]; } const replyAction = parse( diff --git a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx index 15aba971fd..19317071d8 100644 --- a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx +++ b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx @@ -6,6 +6,7 @@ import { onErrorResumeNext, orgSchemaClaimSchema, type OrgSchemaClaim, + type OrgSchemaCreativeWork, type WebChatActivity } from 'botframework-webchat-core'; import cx from 'classnames'; @@ -68,11 +69,9 @@ function isCitationURL(url: string): boolean { } function isCitingInline(claim: OrgSchemaClaim): claim is OrgSchemaClaim & { - appearance: { - url?: undefined; - }; + appearance: [OrgSchemaCreativeWork & { readonly url: never[] }]; } { - return !!claim.appearance?.length && !claim.appearance?.[0].url; + return !!claim.appearance.length && !claim.appearance[0].url.length; } function MarkdownTextContent(props: MarkdownTextContentProps) { @@ -98,7 +97,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { const citationModalDialogLabel = localize('CITATION_MODEL_DIALOG_ALT'); const showClaimModal = useCallback( - (title, text, altText) => { + (title: string | undefined, text: string, altText: string | undefined) => { showModal(() => , { 'aria-label': altText || title || citationModalDialogLabel, className: citationModalClassNames['citation-modal-dialog'] @@ -115,8 +114,9 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { markdownDefinitions .map(markdownDefinition => { let messageCitation: OrgSchemaClaim | undefined = messageThing?.citation - ?.map(claim => parse(orgSchemaClaimSchema, claim)) - .find(({ position }) => '' + position?.[0] === markdownDefinition.identifier); + // .filter(claim => claim['@type'] === 'Claim') + .map(claim => parse(orgSchemaClaimSchema, claim)) + .find(({ position }) => '' + position[0] === markdownDefinition.identifier); if (!messageCitation) { const rootLevelClaim = graph @@ -138,8 +138,8 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { isCitationURL(rootLevelClaim['@id']) ? { '@type': 'DigitalDocument', - name: rootLevelClaim.name[0], - text: rootLevelClaim.text[0] + name: rootLevelClaim.name, + text: rootLevelClaim.text } : { '@type': 'DigitalDocument', @@ -153,6 +153,8 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { const { url } = markdownDefinition; const { sanitizedHref } = sanitizeHref(markdownDefinition.url); + console.log('------------', { messageCitation, sanitizedHref, url }); + // After HTML content transform (or sanitization), the link could be gone. // In that case, Markdown will not render the link. We also need to remove it from citation. if (messageCitation) { @@ -166,9 +168,9 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { key: url, handleClick: () => showClaimModal( - appearance[0]?.name[0] ?? markdownDefinition.title[0], + appearance[0]?.name[0] ?? markdownDefinition.title, appearance[0]?.text[0], - messageCitation.alternateName + messageCitation.alternateName[0] ), markdownDefinition }; @@ -176,7 +178,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { // Not inline citation, we care about the URL. // Warn if it break single source of truth principle, we still use the URL from Markdown. - if (messageCitation.appearance?.[0]?.url?.[0] && messageCitation.appearance?.[0]?.url?.[0] !== url) { + if (messageCitation.appearance[0]?.url[0] && messageCitation.appearance[0]?.url[0] !== url) { console.warn( 'botframework-webchat: When "Message.citation[].url" is set in entities, it must match its corresponding URL in Markdown link reference definition', { @@ -244,21 +246,21 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { ); const messageSensitivityLabelProps = useMemo(() => { - const usageInfo = messageThing?.usageInfo?.[0]; + const usageInfo = messageThing?.usageInfo[0]; if (usageInfo) { - const pattern = usageInfo?.pattern?.[0]; + const [pattern] = usageInfo.pattern; const encryptionStatus = !!usageInfo.keywords?.find(keyword => keyword === 'encrypted-content'); return { color: pattern && - pattern.inDefinedTermSet?.[0] === 'https://www.w3.org/TR/css-color-4/' && - pattern.name?.[0] === 'color' && - pattern.termCode?.[0], + pattern.inDefinedTermSet[0] === 'https://www.w3.org/TR/css-color-4/' && + pattern.name[0] === 'color' && + pattern.termCode[0], isEncrypted: encryptionStatus, - name: usageInfo.name?.[0], - title: usageInfo.description?.[0] + name: usageInfo.name[0], + title: usageInfo.description[0] } satisfies MessageSensitivityLabelProps; } }, [messageThing]); @@ -300,7 +302,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) {
{activity.type === 'message' && firstSoftwareSourceCodeBase?.text && - !messageThing.keywords?.includes?.('Collapsible') ? ( + !messageThing?.keywords.includes?.('Collapsible') ? ( ) : null} - {activity.type === 'message' && activity.text && messageThing?.keywords?.includes('AllowCopy') ? ( + {activity.type === 'message' && activity.text && messageThing?.keywords.includes('AllowCopy') ? ( ) : null} {activity.type === 'message' && feedbackActionsPlacement === 'activity-actions' && ( diff --git a/packages/component/src/Attachment/Text/private/isAIGeneratedActivity.ts b/packages/component/src/Attachment/Text/private/isAIGeneratedActivity.ts index 5a43c99ec4..2251357633 100644 --- a/packages/component/src/Attachment/Text/private/isAIGeneratedActivity.ts +++ b/packages/component/src/Attachment/Text/private/isAIGeneratedActivity.ts @@ -1,5 +1,5 @@ import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat-core'; export default function isAIGeneratedActivity(activity: undefined | WebChatActivity) { - return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords?.includes('AIGeneratedContent')); + return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords.includes('AIGeneratedContent')); } diff --git a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx index 38b7943e0a..67989e8da8 100644 --- a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx @@ -147,7 +147,7 @@ function PartGroupingActivity(props: PartGroupingActivityProps) { const [isGroupOpen, setIsGroupOpen] = useState(partGroupDefaultOpen); const messages = useMemo( - () => activities.map(activity => getOrgSchemaMessage(activity.entities)).filter(message => !!message), + () => activities.map(activity => getOrgSchemaMessage(activity.entities)).filter(Boolean), [activities] ); // eslint-disable-next-line no-magic-numbers diff --git a/packages/component/src/hooks/internal/useFeedbackActions.ts b/packages/component/src/hooks/internal/useFeedbackActions.ts index a3ad9dca7f..79eab3fa26 100644 --- a/packages/component/src/hooks/internal/useFeedbackActions.ts +++ b/packages/component/src/hooks/internal/useFeedbackActions.ts @@ -30,9 +30,7 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { const messageThing = getOrgSchemaMessage(graph); const reactActions = Object.freeze( - (messageThing?.potentialAction || []).filter( - ({ '@type': type }) => type === 'LikeAction' || type === 'DislikeAction' - ) + messageThing?.potentialAction.filter(({ '@type': type }) => type === 'LikeAction' || type === 'DislikeAction') ); if (reactActions.length) { diff --git a/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts b/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts index 43924ffdc5..60688d986a 100644 --- a/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts +++ b/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts @@ -1,5 +1,5 @@ import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal'; export default function isAIGeneratedActivity(activity: undefined | WebChatActivity) { - return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords?.includes('AIGeneratedContent')); + return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords.includes('AIGeneratedContent')); } diff --git a/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts b/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts index 754fad510d..be5e3c1077 100644 --- a/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts +++ b/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts @@ -3,5 +3,5 @@ import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/ export default function isPreChatMessageActivity( activity: undefined | WebChatActivity ): activity is WebChatActivity & { type: 'message' } { - return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords?.includes('PreChatMessage')); + return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords.includes('PreChatMessage')); } From d8933c829f08abc129c60af2fd14529e799fce30 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 02:26:27 +0000 Subject: [PATCH 38/59] Fix marker check --- packages/api/src/decorator/DecoratorComposer.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/api/src/decorator/DecoratorComposer.tsx b/packages/api/src/decorator/DecoratorComposer.tsx index 469d41c3bc..5435983aea 100644 --- a/packages/api/src/decorator/DecoratorComposer.tsx +++ b/packages/api/src/decorator/DecoratorComposer.tsx @@ -15,15 +15,7 @@ const decoratorComposerPropsSchema = pipe( ); const warnInvalidMiddlewarePropsSchema = optional( - array( - custom( - value => - !!value && - typeof value === 'object' && - middlewareFactoryMarker in value && - value[middlewareFactoryMarker satisfies symbol] === middlewareFactoryMarker - ) - ) + array(custom(value => value && value[middlewareFactoryMarker satisfies symbol] === middlewareFactoryMarker)) ); type DecoratorComposerProps = Omit, 'middleware'> & { From 48596d3a1e7f985232cb8456c2b72dfa71442698 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 02:27:37 +0000 Subject: [PATCH 39/59] Modern normalizeStyleOptions --- packages/api/src/normalizeStyleOptions.ts | 31 +++++++++++++++++-- .../patchStyleOptionsFromDeprecatedProps.js | 23 -------------- .../private/rectifyStyleOptions.ts | 3 +- .../SendBoxToolbar/BasicSendBoxToolbar.tsx | 2 +- 4 files changed, 30 insertions(+), 29 deletions(-) delete mode 100644 packages/api/src/patchStyleOptionsFromDeprecatedProps.js diff --git a/packages/api/src/normalizeStyleOptions.ts b/packages/api/src/normalizeStyleOptions.ts index 7946d2e6fb..3acfd4059f 100644 --- a/packages/api/src/normalizeStyleOptions.ts +++ b/packages/api/src/normalizeStyleOptions.ts @@ -15,6 +15,12 @@ const bubbleMinWidthDeprecation = warnOnce( '"styleOptions.bubbleMinWidth" has been deprecated. Use "styleOptions.bubbleAttachmentMinWidth" and "styleOptions.bubbleMessageMinWidth" instead. This deprecation migration will be removed on or after 2026-07-05.' ); +const hideUploadButtonDeprecation = warnOnce( + '`styleOptions.hideUploadButton` is being deprecated in favor of `styleOptions.disableFileUpload`. The option will be removed on or after 2027-07-14.' +); + +const slowConnectionAfterInvalidValue = warnOnce('"slowConnectionAfter" cannot be negative, will set to 0.'); + // TODO: [P4] We should add a notice for people who want to use "styleSet" instead of "styleOptions". // "styleSet" is actually CSS stylesheet and it is based on the DOM tree. // DOM tree may change from time to time, thus, maintaining "styleSet" becomes a constant effort. @@ -23,7 +29,9 @@ export default function normalizeStyleOptions({ bubbleImageHeight, bubbleMaxWidth, bubbleMinWidth, - hideUploadButton: _hideUploadButton, + disableFileUpload, + hideUploadButton, + slowConnectionAfter, ...options }: StyleOptions = {}): StrictStyleOptions { const filledOptions: Required = { @@ -58,7 +66,7 @@ export default function normalizeStyleOptions({ normalizedBubbleNubOffset = bubbleNubOffset; } - if (emojiSet === true) { + if (emojiSet === true || typeof emojiSet === 'undefined') { normalizedEmojiSet = { ':)': '😊', ':-)': '😊', @@ -86,6 +94,8 @@ export default function normalizeStyleOptions({ ' 0); - } - - // Rectify deprecated "hideUploadButton" into "disableFileUpload" - if (styleOptions.hideUploadButton !== undefined) { - console.warn( - 'botframework-webchat: `styleOptions.hideUploadButton` is being deprecated in favor of `styleOptions.disableFileUpload`. The option will be removed on or after 2027-07-14.' - ); - - styleOptions = updateIn(styleOptions, ['disableFileUpload'], () => !!styleOptions.hideUploadButton); - } - - return styleOptions; -} diff --git a/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts b/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts index ae0da6edae..f2e1dfc846 100644 --- a/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts +++ b/packages/api/src/providers/StyleOptions/private/rectifyStyleOptions.ts @@ -1,7 +1,6 @@ import type { StrictStyleOptions, StyleOptions } from '../../../StyleOptions'; import normalizeStyleOptions from '../../../normalizeStyleOptions'; -import patchStyleOptionsFromDeprecatedProps from '../../../patchStyleOptionsFromDeprecatedProps'; export default function rectifyStyleOptions(styleOptions: StyleOptions): StrictStyleOptions { - return normalizeStyleOptions(patchStyleOptionsFromDeprecatedProps(styleOptions)); + return normalizeStyleOptions(styleOptions); } diff --git a/packages/component/src/SendBoxToolbar/BasicSendBoxToolbar.tsx b/packages/component/src/SendBoxToolbar/BasicSendBoxToolbar.tsx index 0c945bf922..366cdfb2ab 100644 --- a/packages/component/src/SendBoxToolbar/BasicSendBoxToolbar.tsx +++ b/packages/component/src/SendBoxToolbar/BasicSendBoxToolbar.tsx @@ -6,7 +6,7 @@ import UploadButton from './UploadButton'; const { useStyleOptions } = hooks; // NOTE: "hideUploadButton" is deprecated. Use "disableFileUpload" instead. -// Rectification logic is handled in patchStyleOptionsFromDeprecatedProps.js +// Rectification logic is handled in normalizeStyleOptions.ts function BasicSendBoxToolbar({ className }: SendBoxToolbarMiddlewareProps) { const [{ disableFileUpload }] = useStyleOptions(); From 2041f053a6346f712699a56dc39a33bb0f39279d Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 02:30:34 +0000 Subject: [PATCH 40/59] Transpile Redux devtools extension --- __tests__/unit.setup/jest.config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/__tests__/unit.setup/jest.config.js b/__tests__/unit.setup/jest.config.js index fedb0e222f..ad0006f20e 100644 --- a/__tests__/unit.setup/jest.config.js +++ b/__tests__/unit.setup/jest.config.js @@ -45,7 +45,10 @@ const TRANSFORM_IGNORE_PACKAGES = [ // Related to Adaptive Cards 'adaptivecards', - 'swiper' + 'swiper', + + // Related to Redux + '@redux-devtools/extension' ]; module.exports = { From 1ee3a69385584b47a22ca4ecf6fd57aeeba25e17 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 02:31:27 +0000 Subject: [PATCH 41/59] Fix ESLint for deps --- packages/react-hooks/src/useMemoWithPrevious.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-hooks/src/useMemoWithPrevious.ts b/packages/react-hooks/src/useMemoWithPrevious.ts index ceb92cbf79..cdc0cdf284 100644 --- a/packages/react-hooks/src/useMemoWithPrevious.ts +++ b/packages/react-hooks/src/useMemoWithPrevious.ts @@ -3,7 +3,7 @@ import { useEffect, useMemo, useRef, type DependencyList } from 'react'; export default function useMemoWithPrevious(factory: (prevValue: T | undefined) => T, deps: DependencyList): T { const prevValueRef = useRef(); // We are building a `useMemo`-like hook, `deps` is passed as-is and `factory` is not one fo the dependencies. - // eslint-disable-next-line react-hooks/exhaustive-deps + // eslint-disable-next-line react-hooks/exhaustive-deps, react-hooks/use-memo const value = useMemo(() => factory(prevValueRef.current), deps); useEffect(() => { From 2532a3666b7bed6a20560c0ae11dd9681a5a1bfb Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 02:42:43 +0000 Subject: [PATCH 42/59] Remove console.log --- .../src/Attachment/Text/private/MarkdownTextContent.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx index 19317071d8..061d423911 100644 --- a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx +++ b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx @@ -153,8 +153,6 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { const { url } = markdownDefinition; const { sanitizedHref } = sanitizeHref(markdownDefinition.url); - console.log('------------', { messageCitation, sanitizedHref, url }); - // After HTML content transform (or sanitization), the link could be gone. // In that case, Markdown will not render the link. We also need to remove it from citation. if (messageCitation) { From d18c294360b6f0708fe01cf58f26d04e5410417b Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 02:52:39 +0000 Subject: [PATCH 43/59] Remove DictateState type --- packages/core/src/actions/setDictateState.ts | 4 +--- packages/core/src/constants/DictateState.ts | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/core/src/actions/setDictateState.ts b/packages/core/src/actions/setDictateState.ts index b0ae68c1dd..b1c963fa15 100644 --- a/packages/core/src/actions/setDictateState.ts +++ b/packages/core/src/actions/setDictateState.ts @@ -1,8 +1,6 @@ -import type { DictateState } from '../constants/DictateState'; - const SET_DICTATE_STATE = 'WEB_CHAT/SET_DICTATE_STATE'; -export default function setDictateState(dictateState: DictateState) { +export default function setDictateState(dictateState: number) { return { type: SET_DICTATE_STATE, payload: { dictateState } diff --git a/packages/core/src/constants/DictateState.ts b/packages/core/src/constants/DictateState.ts index dac7eb8263..23674bc5f4 100644 --- a/packages/core/src/constants/DictateState.ts +++ b/packages/core/src/constants/DictateState.ts @@ -7,6 +7,4 @@ const DICTATING = 3 as const; // eslint-disable-next-line no-magic-numbers const STOPPING = 4 as const; -type DictateState = typeof DICTATING | typeof IDLE | typeof STARTING | typeof STOPPING | typeof WILL_START; - -export { DICTATING, IDLE, STARTING, STOPPING, WILL_START, type DictateState }; +export { DICTATING, IDLE, STARTING, STOPPING, WILL_START }; From 456fab6bb7b899f42a8ae2bc2447cd0928d7a28a Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 03:07:08 +0000 Subject: [PATCH 44/59] Sort --- packages/component/src/Activity/StackedLayout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/component/src/Activity/StackedLayout.tsx b/packages/component/src/Activity/StackedLayout.tsx index 48581b5e0d..edb5865e4d 100644 --- a/packages/component/src/Activity/StackedLayout.tsx +++ b/packages/component/src/Activity/StackedLayout.tsx @@ -17,6 +17,7 @@ import React, { memo, useCallback, useMemo, type ReactNode } from 'react'; import ScreenReaderText from '../ScreenReaderText'; import isZeroOrPositive from '../Utils/isZeroOrPositive'; +import getFirstBaseOfSoftwareSourceCode from '../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; import textFormatToContentType from '../Utils/textFormatToContentType'; import useUniqueId from '../hooks/internal/useUniqueId'; import { useGetLogicalGroupKey } from '../providers/ActivityLogicalGrouping'; @@ -30,7 +31,6 @@ import StackedLayoutRoot from './StackedLayoutRoot'; import StackedLayoutStatus from './StackedLayoutStatus'; import styles from './StackedLayout.module.css'; -import getFirstBaseOfSoftwareSourceCode from '../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; const { useAvatarForBot, useAvatarForUser, useLocalizer, useGetKeyByActivity, useStyleOptions } = hooks; From 66f47c2f3512ba58758b35bb024769581c687361 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 03:56:58 +0000 Subject: [PATCH 45/59] Clean up --- packages/api/src/decorator/DecoratorComposer.tsx | 2 +- .../providers/ActivityFeedbackComposer.tsx | 14 +++++--------- .../src/ActivityStatus/OthersActivityStatus.tsx | 4 ++-- .../Text/private/MarkdownTextContent.tsx | 14 +++++++------- .../src/hooks/internal/useFeedbackActions.ts | 7 +++---- packages/core/src/utils/getOrgSchemaMessage.ts | 8 +------- 6 files changed, 19 insertions(+), 30 deletions(-) diff --git a/packages/api/src/decorator/DecoratorComposer.tsx b/packages/api/src/decorator/DecoratorComposer.tsx index 5435983aea..f78367f451 100644 --- a/packages/api/src/decorator/DecoratorComposer.tsx +++ b/packages/api/src/decorator/DecoratorComposer.tsx @@ -15,7 +15,7 @@ const decoratorComposerPropsSchema = pipe( ); const warnInvalidMiddlewarePropsSchema = optional( - array(custom(value => value && value[middlewareFactoryMarker satisfies symbol] === middlewareFactoryMarker)) + array(custom(value => value[middlewareFactoryMarker satisfies symbol] === middlewareFactoryMarker)) ); type DecoratorComposerProps = Omit, 'middleware'> & { diff --git a/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx b/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx index 95dbf04542..85c70e17d1 100644 --- a/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx +++ b/packages/component/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx @@ -163,14 +163,13 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { useMemo(() => { const activeOrCompletedAction = rawActions.find( (action): action is OrgSchemaAction & { actionStatus: ['ActiveActionStatus' | 'CompletedActionStatus'] } => - action.actionStatus?.length === 1 && - (action.actionStatus[0] === 'ActiveActionStatus' || action.actionStatus[0] === 'CompletedActionStatus') + action.actionStatus[0] === 'ActiveActionStatus' || action.actionStatus[0] === 'CompletedActionStatus' ); actionStateRef.current = activeOrCompletedAction ? { actionId: activeOrCompletedAction['@id'], - actionStatus: activeOrCompletedAction.actionStatus?.[0] + actionStatus: activeOrCompletedAction.actionStatus[0] } : undefined; }, [rawActions]); @@ -184,7 +183,7 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { rawActions.map(action => actionStateForActions && actionStateForActions.actionId === action['@id'] ? Object.freeze({ ...action, actionStatus: [actionStateForActions.actionStatus] } satisfies OrgSchemaAction) - : action.actionStatus?.length === 1 && action.actionStatus?.[0] === 'PotentialActionStatus' + : action.actionStatus[0] === 'PotentialActionStatus' ? action : Object.freeze({ ...action, actionStatus: ['PotentialActionStatus'] } satisfies OrgSchemaAction) ) @@ -197,8 +196,7 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { const postActivity = usePostActivity(); const hasSubmitted = useMemo( - () => - actions.some(action => action.actionStatus?.length === 1 && action.actionStatus?.[0] === 'CompletedActionStatus'), + () => actions.some(action => action.actionStatus[0] === 'CompletedActionStatus'), [actions] ); @@ -250,9 +248,7 @@ function ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) { const selectedAction = useMemo( () => actions.find( - ({ actionStatus }) => - actionStatus?.length === 1 && - (actionStatus[0] === 'ActiveActionStatus' || actionStatus[0] === 'CompletedActionStatus') + ({ actionStatus }) => actionStatus[0] === 'ActiveActionStatus' || actionStatus[0] === 'CompletedActionStatus' ), [actions] ); diff --git a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx index f6539080ad..1620c85dfb 100644 --- a/packages/component/src/ActivityStatus/OthersActivityStatus.tsx +++ b/packages/component/src/ActivityStatus/OthersActivityStatus.tsx @@ -39,7 +39,7 @@ const OthersActivityStatus = memo(({ activity, className, slotted }: Props) => { const claimInterpreter = useMemo(() => { try { if (messageThing) { - return parse(orgSchemaClaimSchema, messageThing?.citation[0])?.claimInterpreter[0]; + return parse(orgSchemaClaimSchema, messageThing?.citation[0]).claimInterpreter[0]; } const [firstClaim] = graph @@ -60,7 +60,7 @@ const OthersActivityStatus = memo(({ activity, className, slotted }: Props) => { if (replyAction) { warnRootLevelThings(); - return replyAction?.provider?.[0]; + return replyAction?.provider[0]; } } catch { // Intentionally left blank. diff --git a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx index 061d423911..ea0d8bad6b 100644 --- a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx +++ b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx @@ -17,6 +17,7 @@ import { custom, object, optional, parse, pipe, readonly, string, type InferInpu import ActivityFeedback from '../../../ActivityFeedback/ActivityFeedback'; import { LinkDefinitionItem, LinkDefinitions } from '../../../LinkDefinition/index'; import dereferenceBlankNodes from '../../../Utils/JSONLinkedData/dereferenceBlankNodes'; +import getFirstBaseOfSoftwareSourceCode from '../../../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; import useSanitizeHrefCallback from '../../../hooks/internal/useSanitizeHrefCallback'; import useStreamingMarkdownWithDefinitions, { type MarkdownLinkDefinition @@ -29,7 +30,6 @@ import MessageSensitivityLabel, { type MessageSensitivityLabelProps } from './Me import isAIGeneratedActivity from './isAIGeneratedActivity'; import isHTMLButtonElement from './isHTMLButtonElement'; -import getFirstBaseOfSoftwareSourceCode from '../../../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode'; import textContentStyles from '../TextContent.module.css'; import citationModalStyles from './CitationModal.module.css'; @@ -114,7 +114,6 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { markdownDefinitions .map(markdownDefinition => { let messageCitation: OrgSchemaClaim | undefined = messageThing?.citation - // .filter(claim => claim['@type'] === 'Claim') .map(claim => parse(orgSchemaClaimSchema, claim)) .find(({ position }) => '' + position[0] === markdownDefinition.identifier); @@ -143,7 +142,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { } : { '@type': 'DigitalDocument', - url: [markdownDefinition.url] + url: markdownDefinition.url } ] } satisfies InferInput); @@ -265,13 +264,14 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { // The main text of the citation entry (e.g. the title of the document). Used as the content of the main link and, if it exists, the header of the popup window. const getEntryMainText = (entry: Entry): string | undefined => - entry.claim?.name?.[0] ?? entry.claim?.appearance?.[0]?.name?.[0] ?? (entry.markdownDefinition.title || undefined); + entry.claim?.name[0] ?? entry.claim?.appearance[0]?.name[0] ?? (entry.markdownDefinition.title || undefined); // Optional alternate name for the entry, used as a subtitle beneath the link - const getEntryBadgeName = (entry: Entry) => entry.claim?.appearance?.[0]?.usageInfo?.[0]?.name?.[0]; + const getEntryBadgeName = (entry: Entry): string | undefined => entry.claim?.appearance[0]?.usageInfo[0]?.name[0]; // Secondary text describing the citation, used in the a11y description (i.e. the div's title attribute) - const getEntryDescription = (entry: Entry) => entry.claim?.appearance?.[0]?.usageInfo?.[0]?.description?.[0]; + const getEntryDescription = (entry: Entry): string | undefined => + entry.claim?.appearance[0]?.usageInfo[0]?.description[0]; const firstSoftwareSourceCodeBase = useMemo(() => getFirstBaseOfSoftwareSourceCode(messageThing), [messageThing]); @@ -300,7 +300,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) {
{activity.type === 'message' && firstSoftwareSourceCodeBase?.text && - !messageThing?.keywords.includes?.('Collapsible') ? ( + !messageThing?.keywords.includes('Collapsible') ? ( ( - () => actions.some(action => action.actionStatus?.[0] === 'CompletedActionStatus'), + () => actions.some(action => action.actionStatus[0] === 'CompletedActionStatus'), [actions] ); @@ -73,7 +73,7 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { actions.map(action => action === target ? Object.freeze({ ...action, actionStatus: ['ActiveActionStatus'] } satisfies OrgSchemaAction) - : action.actionStatus?.[0] === 'ActiveActionStatus' + : action.actionStatus[0] === 'ActiveActionStatus' ? Object.freeze({ ...action, actionStatus: ['PotentialActionStatus'] } satisfies OrgSchemaAction) : action ) @@ -107,8 +107,7 @@ export default function useFeedbackActions(initialActivity: WebChatActivity): { const selectedAction = useMemo( () => actions.find( - ({ actionStatus }) => - actionStatus?.[0] === 'ActiveActionStatus' || actionStatus?.[0] === 'CompletedActionStatus' + ({ actionStatus }) => actionStatus[0] === 'ActiveActionStatus' || actionStatus[0] === 'CompletedActionStatus' ), [actions] ); diff --git a/packages/core/src/utils/getOrgSchemaMessage.ts b/packages/core/src/utils/getOrgSchemaMessage.ts index a9c62d3055..86b093c74f 100644 --- a/packages/core/src/utils/getOrgSchemaMessage.ts +++ b/packages/core/src/utils/getOrgSchemaMessage.ts @@ -15,13 +15,7 @@ export default function getOrgSchemaMessage(graph: readonly EntityType[]): Creat entity['@id'] === ''; if (isPossiblySelfMessage) { - try { - return parse(creativeWorkSchema, entity); - } catch (error) { - console.error(safeParse(creativeWorkSchema, entity).issues); - - throw error; - } + return parse(creativeWorkSchema, entity); } } } From a7f7812d8195142731506428c55d0719d52dba2a Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 04:00:15 +0000 Subject: [PATCH 46/59] Clean up --- .../src/components/activity/CopilotMessageHeader.tsx | 4 ++-- .../components/preChatActivity/PreChatMessageActivity.tsx | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx b/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx index 24e0962f96..d73e5e78d6 100644 --- a/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx +++ b/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx @@ -37,8 +37,8 @@ function CopilotMessageHeader(props: CopilotMessageHeaderProps) { ); const author = useActivityAuthor(activity); - const avatarImage = author?.image?.[0] || botAvatarImage; - const botTitle = author?.name?.[0] || activity?.from?.name?.[0]; + const avatarImage = author?.image[0] || botAvatarImage; + const botTitle = author?.name[0] || activity?.from?.name; return (
diff --git a/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx b/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx index c0bfa4ca37..6955f95b7d 100644 --- a/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx +++ b/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx @@ -21,7 +21,7 @@ const PreChatMessageActivity = ({ activity }: Props) => { const author = useActivityAuthor(activity); const html = useMemo( - () => (renderMarkdownAsHTML ? { __html: renderMarkdownAsHTML(author?.description?.[0] || '') } : { __html: '' }), + () => (renderMarkdownAsHTML ? { __html: renderMarkdownAsHTML(author?.description[0] || '') } : { __html: '' }), [author?.description, renderMarkdownAsHTML] ); @@ -36,9 +36,9 @@ const PreChatMessageActivity = ({ activity }: Props) => { > {author.image && ( {localize('AVATAR_ALT', )} {author.name &&

{author.name}

} From 1bd5b56a21acb541aa47f56720d81afd2911494b Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 18:27:22 +0000 Subject: [PATCH 47/59] Add xxxEntries --- .../Text/private/MarkdownTextContent.tsx | 4 +- .../src/types/external/OrgSchema/Action.ts | 27 +++---- .../src/types/external/OrgSchema/Claim.ts | 28 ++++--- .../types/external/OrgSchema/CreativeWork.ts | 45 ++++++----- .../types/external/OrgSchema/DefinedTerm.ts | 26 +++--- .../src/types/external/OrgSchema/Person.ts | 23 +++--- .../src/types/external/OrgSchema/Project.ts | 33 +++----- .../external/OrgSchema/SoftwareSourceCode.ts | 29 ++++--- .../src/types/external/OrgSchema/Thing.ts | 81 ++++--------------- .../types/external/OrgSchema/UserReview.ts | 24 +++--- .../types/external/OrgSchema/VoteAction.ts | 24 +++--- .../core/src/utils/getOrgSchemaMessage.ts | 2 +- 12 files changed, 141 insertions(+), 205 deletions(-) diff --git a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx index ea0d8bad6b..e3cb76f682 100644 --- a/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx +++ b/packages/component/src/Attachment/Text/private/MarkdownTextContent.tsx @@ -121,7 +121,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { const rootLevelClaim = graph .filter(({ type }) => type === 'https://schema.org/Claim') .map(claim => parse(orgSchemaClaimSchema, claim)) - .find(({ '@id': id }) => id === markdownDefinition.url); + .find(claim => claim['@id'] === markdownDefinition.url); if (rootLevelClaim) { console.warn( @@ -247,7 +247,7 @@ function MarkdownTextContent(props: MarkdownTextContentProps) { if (usageInfo) { const [pattern] = usageInfo.pattern; - const encryptionStatus = !!usageInfo.keywords?.find(keyword => keyword === 'encrypted-content'); + const encryptionStatus = !!usageInfo.keywords.find(keyword => keyword === 'encrypted-content'); return { color: diff --git a/packages/core/src/types/external/OrgSchema/Action.ts b/packages/core/src/types/external/OrgSchema/Action.ts index c0a922d4bb..6d9e23e25c 100644 --- a/packages/core/src/types/external/OrgSchema/Action.ts +++ b/packages/core/src/types/external/OrgSchema/Action.ts @@ -1,9 +1,9 @@ -import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { lazy, looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionStatusSchema, type ActionStatusInput, type ActionStatusOutput } from './ActionStatus'; import orgSchemaProperties from './private/orgSchemaProperties'; import { projectSchema, type ProjectInput, type ProjectOutput } from './Project'; -import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { thingEntries, type ThingInput, type ThingOutput } from './Thing'; import { userReviewSchema, type UserReviewInput, type UserReviewOutput } from './UserReview'; /** @@ -76,20 +76,17 @@ type ActionOutput = ThingOutput & { readonly result: readonly (ThingOutput | UserReviewOutput)[]; }; -const actionSchema: GenericSchema = intersect([ - lazy(() => thingSchema), - pipe( - object({ - actionOption: orgSchemaProperties(string()), - actionStatus: orgSchemaProperties(actionStatusSchema), - provider: orgSchemaProperties(lazy(() => projectSchema)), - result: orgSchemaProperties(userReviewSchema) - }), - readonly() - ) -]); +const actionEntries = { + ...thingEntries, + actionOption: orgSchemaProperties(string()), + actionStatus: orgSchemaProperties(actionStatusSchema), + provider: orgSchemaProperties(lazy(() => projectSchema)), + result: orgSchemaProperties(userReviewSchema) +}; + +const actionSchema: GenericSchema = pipe(looseObject(actionEntries), readonly()); /** @deprecated Use Valibot.parse(actionSchema) instead. Will be removed on or after 2028-04-23. */ const parseAction = (action: ActionInput): ActionOutput => parse(actionSchema, action); -export { actionSchema, parseAction, type ActionInput, type ActionOutput }; +export { actionEntries, actionSchema, parseAction, type ActionInput, type ActionOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Claim.ts b/packages/core/src/types/external/OrgSchema/Claim.ts index f0bdc3f87c..bc2da5f95b 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.ts @@ -1,6 +1,11 @@ -import { intersect, lazy, object, parse, pipe, readonly, type GenericSchema } from 'valibot'; +import { lazy, looseObject, parse, pipe, readonly, type GenericSchema } from 'valibot'; -import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; +import { + creativeWorkEntries, + creativeWorkSchema, + type CreativeWorkInput, + type CreativeWorkOutput +} from './CreativeWork'; import { projectSchema, type ProjectInput, type ProjectOutput } from './Project'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -54,18 +59,15 @@ type ClaimOutput = CreativeWorkOutput & { readonly claimInterpreter: readonly ProjectOutput[]; }; -const claimSchema: GenericSchema = intersect([ - lazy(() => creativeWorkSchema), - pipe( - object({ - appearance: orgSchemaProperties(lazy(() => creativeWorkSchema)), - claimInterpreter: orgSchemaProperties(lazy(() => projectSchema)) - }), - readonly() - ) -]); +const claimEntries = { + ...creativeWorkEntries, + appearance: orgSchemaProperties(lazy(() => creativeWorkSchema)), + claimInterpreter: orgSchemaProperties(lazy(() => projectSchema)) +}; + +const claimSchema: GenericSchema = pipe(looseObject(claimEntries), readonly()); /** @deprecated Use Valibot.parse(claimSchema) instead. Will be removed on or after 2028-04-23. */ const parseClaim = (claim: ClaimInput): ClaimOutput => parse(claimSchema, claim); -export { claimSchema, parseClaim, type ClaimInput, type ClaimOutput }; +export { claimEntries, claimSchema, parseClaim, type ClaimInput, type ClaimOutput }; diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index 6d47837ffb..fe1894e813 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -1,4 +1,4 @@ -import { intersect, lazy, number, object, parse, string, union, type GenericSchema } from 'valibot'; +import { lazy, looseObject, number, parse, pipe, readonly, string, union, type GenericSchema } from 'valibot'; import { creativeWorkStatusSchema, @@ -8,7 +8,7 @@ import { import { definedTermSchema, type DefinedTermInput, type DefinedTermOutput } from './DefinedTerm'; import { personSchema, type PersonInput, type PersonOutput } from './Person'; import orgSchemaProperties from './private/orgSchemaProperties'; -import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { thingEntries, type ThingInput, type ThingOutput } from './Thing'; /** * The most generic kind of creative work, including books, movies, photographs, software programs, etc. @@ -178,28 +178,29 @@ type CreativeWorkOutput = ThingOutput & { readonly usageInfo: readonly CreativeWorkOutput[]; }; -const creativeWorkSchema: GenericSchema = intersect([ - lazy(() => thingSchema), - object({ - // For forward compatibility, we did not enforce @type must be "CreativeWork" or any other subtypes. - // In future, if Schema.org introduced a new subtype of CreativeWork, we should still able to parse that one as a CreativeWork. - - abstract: orgSchemaProperties(string()), - author: orgSchemaProperties(union([lazy(() => personSchema), string()])), - citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), - creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), - isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), - isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema)), - keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), - pattern: orgSchemaProperties(lazy(() => definedTermSchema)), - position: orgSchemaProperties(union([number(), string()])), - text: orgSchemaProperties(string()), - usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema)) - }) -]); +// Cyclic dependency. +// eslint-disable-next-line prefer-const +let creativeWorkSchema: GenericSchema; + +const creativeWorkEntries = { + ...thingEntries, + abstract: orgSchemaProperties(string()), + author: orgSchemaProperties(union([lazy(() => personSchema), string()])), + citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), + creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), + isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), + isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema)), + keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), + pattern: orgSchemaProperties(lazy(() => definedTermSchema)), + position: orgSchemaProperties(union([number(), string()])), + text: orgSchemaProperties(string()), + usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema)) +}; + +creativeWorkSchema = pipe(looseObject(creativeWorkEntries), readonly()); /** @deprecated Use Valibot.parse(creativeWorkSchema) instead. Will be removed on or after 2028-04-23. */ const parseCreativeWork = (creativeWork: CreativeWorkInput): CreativeWorkOutput => parse(creativeWorkSchema, creativeWork); -export { creativeWorkSchema, parseCreativeWork, type CreativeWorkInput, type CreativeWorkOutput }; +export { creativeWorkEntries, creativeWorkSchema, parseCreativeWork, type CreativeWorkInput, type CreativeWorkOutput }; diff --git a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts index 6b6e4d8dd6..9a634440a2 100644 --- a/packages/core/src/types/external/OrgSchema/DefinedTerm.ts +++ b/packages/core/src/types/external/OrgSchema/DefinedTerm.ts @@ -1,6 +1,6 @@ -import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { thingEntries, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; /** @@ -49,18 +49,18 @@ type DefinedTermOutput = ThingOutput & { readonly termCode: readonly string[]; }; -const definedTermSchema: GenericSchema = intersect([ - lazy(() => thingSchema), - pipe( - object({ - inDefinedTermSet: orgSchemaProperties(string()), - termCode: orgSchemaProperties(string()) - }), - readonly() - ) -]); +const definedTermEntries = { + ...thingEntries, + inDefinedTermSet: orgSchemaProperties(string()), + termCode: orgSchemaProperties(string()) +}; + +const definedTermSchema: GenericSchema = pipe( + looseObject(definedTermEntries), + readonly() +); /** @deprecated Use Valibot.parse(definedTermSchema) instead. Will be removed on or after 2028-04-23. */ const parseDefinedTerm = (definedTerm: DefinedTermInput): DefinedTermOutput => parse(definedTermSchema, definedTerm); -export { definedTermSchema, parseDefinedTerm, type DefinedTermInput, type DefinedTermOutput }; +export { definedTermEntries, definedTermSchema, parseDefinedTerm, type DefinedTermInput, type DefinedTermOutput }; diff --git a/packages/core/src/types/external/OrgSchema/Person.ts b/packages/core/src/types/external/OrgSchema/Person.ts index 9f395e91a5..0cdf0aa06a 100644 --- a/packages/core/src/types/external/OrgSchema/Person.ts +++ b/packages/core/src/types/external/OrgSchema/Person.ts @@ -1,5 +1,5 @@ -import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { thingEntries, type ThingInput, type ThingOutput } from './Thing'; import orgSchemaProperties from './private/orgSchemaProperties'; /** @@ -38,17 +38,14 @@ type PersonOutput = ThingOutput & { readonly image: readonly string[]; }; -const personSchema: GenericSchema = intersect([ - lazy(() => thingSchema), - pipe( - object({ - description: orgSchemaProperties(string()), - image: orgSchemaProperties(string()), - name: orgSchemaProperties(string()) - }), - readonly() - ) -]); +const personEntries = { + ...thingEntries, + description: orgSchemaProperties(string()), + image: orgSchemaProperties(string()), + name: orgSchemaProperties(string()) +}; + +const personSchema: GenericSchema = pipe(looseObject(personEntries), readonly()); /** @deprecated Use Valibot.parse(personSchema) instead. Will be removed on or after 2028-04-23. */ const parsePerson = (person: PersonInput): PersonOutput => parse(personSchema, person); diff --git a/packages/core/src/types/external/OrgSchema/Project.ts b/packages/core/src/types/external/OrgSchema/Project.ts index 89238150eb..02daa253b6 100644 --- a/packages/core/src/types/external/OrgSchema/Project.ts +++ b/packages/core/src/types/external/OrgSchema/Project.ts @@ -1,7 +1,7 @@ -import { intersect, lazy, object, parse, pipe, readonly, string } from 'valibot'; +import { looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; -import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { thingEntries, type ThingInput, type ThingOutput } from './Thing'; /** * An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim. Use properties from [Organization](https://schema.org/Organization), [subOrganization](https://schema.org/subOrganization)/[parentOrganization](https://schema.org/parentOrganization) to indicate project sub-structures. @@ -35,29 +35,14 @@ type ProjectOutput = ThingOutput & { readonly slogan: readonly string[]; }; -/** - * An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim. Use properties from [Organization](https://schema.org/Organization), [subOrganization](https://schema.org/subOrganization)/[parentOrganization](https://schema.org/parentOrganization) to indicate project sub-structures. - * - * This is partial implementation of https://schema.org/Project. - * - * @see https://schema.org/Project - */ -const projectSchema = intersect([ - lazy(() => thingSchema), - pipe( - object({ - /** - * A slogan or motto associated with the item. - * - * @see https://schema.org/slogan - */ - slogan: orgSchemaProperties(string()) - }), - readonly() - ) -]); +const projectEntries = { + ...thingEntries, + slogan: orgSchemaProperties(string()) +}; + +const projectSchema: GenericSchema = pipe(looseObject(projectEntries), readonly()); /** @deprecated Use Valibot.parse(projectSchema) instead. Will be removed on or after 2028-04-23. */ const parseProject = (project: ProjectInput): ProjectOutput => parse(projectSchema, project); -export { parseProject, projectSchema, type ProjectInput, type ProjectOutput }; +export { projectEntries, parseProject, projectSchema, type ProjectInput, type ProjectOutput }; diff --git a/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts b/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts index ca8b6c092e..843bd795b5 100644 --- a/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts +++ b/packages/core/src/types/external/OrgSchema/SoftwareSourceCode.ts @@ -1,6 +1,6 @@ -import { intersect, lazy, object, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { looseObject, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { creativeWorkSchema, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; +import { creativeWorkEntries, type CreativeWorkInput, type CreativeWorkOutput } from './CreativeWork'; import orgSchemaProperties from './private/orgSchemaProperties'; /** @@ -35,14 +35,19 @@ type SoftwareSourceCodeOutput = CreativeWorkOutput & { readonly programmingLanguage: readonly string[]; }; -const softwareSourceCodeSchema: GenericSchema = intersect([ - lazy(() => creativeWorkSchema), - pipe( - object({ - programmingLanguage: orgSchemaProperties(string()) - }), - readonly() - ) -]); +const softwareSourceCodeEntries = { + ...creativeWorkEntries, + programmingLanguage: orgSchemaProperties(string()) +}; + +const softwareSourceCodeSchema: GenericSchema = pipe( + looseObject(softwareSourceCodeEntries), + readonly() +); -export { softwareSourceCodeSchema, type SoftwareSourceCodeInput, type SoftwareSourceCodeOutput }; +export { + softwareSourceCodeEntries, + softwareSourceCodeSchema, + type SoftwareSourceCodeInput, + type SoftwareSourceCodeOutput +}; diff --git a/packages/core/src/types/external/OrgSchema/Thing.ts b/packages/core/src/types/external/OrgSchema/Thing.ts index d413feec34..3c6b10292e 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.ts @@ -1,4 +1,4 @@ -import { lazy, literal, object, optional, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { lazy, literal, looseObject, optional, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import { actionSchema, type ActionInput, type ActionOutput } from './Action'; import orgSchemaProperties from './private/orgSchemaProperties'; @@ -113,72 +113,21 @@ type ThingOutput = { readonly url: readonly string[]; }; -/** - * The most generic type of item. - * - * This is partial implementation of https://schema.org/Thing. - * - * @see https://schema.org/Thing - */ -const thingSchema: GenericSchema = - // We cannot use looseObject() to futureproof properties. - - // The following code will result in error: - - // parse( - // intersect([ - // looseObject({ one: number() }), - // looseObject({ - // two: pipe( - // number(), - // transform(value => '' + value) - // ) - // }) - // ]), - // { - // one: 1, - // two: 2 - // } - // ); - - // { - // kind: 'schema', - // type: 'intersect', - // input: { - // one: 1, - // two: 2 - // }, - // expected: 'Object', - // received: 'unknown', - // message: 'Invalid type: Expected Object but received unknown' - // }; - - // This is due to how intersect works. - // Intersection kicks-in after both looseObject() is done. - // When trying to intersect { one: 1, two: 2 } and { one: 1, two: '2' }, it would fail. - - // In our code, we are literally doing `intersect(lazy(() => looseObject({})), looseObject({}))`. - - // We cannot use object().entries because we need to use lazy() which requires GenericSchema. - // We could write out the GenericSchema as ObjectSchema but it will be very cumbersome. - // At the end of the day, it is easier to keep object() than looseObject(). - - pipe( - object({ - '@context': optional(pipe(literal('https://schema.org'))), - '@id': optional(string()), - '@type': optional(string()), - additionalType: orgSchemaProperties(string()), - alternateName: orgSchemaProperties(string()), - description: orgSchemaProperties(string()), - name: orgSchemaProperties(string()), - potentialAction: orgSchemaProperties(lazy(() => actionSchema)), - url: orgSchemaProperties(string()) - }), - readonly() - ); +const thingEntries = { + '@context': optional(pipe(literal('https://schema.org'))), + '@id': optional(string()), + '@type': optional(string()), + additionalType: orgSchemaProperties(string()), + alternateName: orgSchemaProperties(string()), + description: orgSchemaProperties(string()), + name: orgSchemaProperties(string()), + potentialAction: orgSchemaProperties(lazy(() => actionSchema)), + url: orgSchemaProperties(string()) +}; + +const thingSchema: GenericSchema = pipe(looseObject(thingEntries), readonly()); /** @deprecated Use Valibot.parse(thingSchema) instead. Will be removed on or after 2028-04-23. */ const parseThing = (thing: ThingInput): ThingOutput => parse(thingSchema, thing); -export { parseThing, thingSchema, type ThingInput, type ThingOutput }; +export { parseThing, thingEntries, thingSchema, type ThingInput, type ThingOutput }; diff --git a/packages/core/src/types/external/OrgSchema/UserReview.ts b/packages/core/src/types/external/OrgSchema/UserReview.ts index 9ef29823c5..2088845d9a 100644 --- a/packages/core/src/types/external/OrgSchema/UserReview.ts +++ b/packages/core/src/types/external/OrgSchema/UserReview.ts @@ -1,7 +1,7 @@ -import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; import orgSchemaProperties from './private/orgSchemaProperties'; -import { thingSchema, type ThingInput, type ThingOutput } from './Thing'; +import { thingEntries, type ThingInput, type ThingOutput } from './Thing'; /** * A review created by an end-user (e.g. consumer, purchaser, attendee etc.), in contrast with [`CriticReview`](https://schema.org/CriticReview). @@ -31,17 +31,17 @@ type UserReviewOutput = ThingOutput & { readonly reviewAspect: readonly string[]; }; -const userReviewSchema: GenericSchema = intersect([ - lazy(() => thingSchema), - pipe( - object({ - reviewAspect: orgSchemaProperties(string()) - }), - readonly() - ) -]); +const userReviewEntries = { + ...thingEntries, + reviewAspect: orgSchemaProperties(string()) +}; + +const userReviewSchema: GenericSchema = pipe( + looseObject(userReviewEntries), + readonly() +); /** @deprecated Use Valibot.parse(userReviewSchema) instead. Will be removed on or after 2028-04-23. */ const parseUserReview = (userReview: UserReviewInput): UserReviewOutput => parse(userReviewSchema, userReview); -export { parseUserReview, userReviewSchema, type UserReviewInput, type UserReviewOutput }; +export { parseUserReview, userReviewEntries, userReviewSchema, type UserReviewInput, type UserReviewOutput }; diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.ts b/packages/core/src/types/external/OrgSchema/VoteAction.ts index b95577a4f1..bbd06a0d90 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.ts @@ -1,6 +1,6 @@ -import { intersect, lazy, object, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; +import { looseObject, parse, pipe, readonly, string, type GenericSchema } from 'valibot'; -import { actionSchema, type ActionInput, type ActionOutput } from './Action'; +import { actionEntries, type ActionInput, type ActionOutput } from './Action'; import orgSchemaProperties from './private/orgSchemaProperties'; /** @@ -39,17 +39,17 @@ type VoteActionOutput = ActionOutput & { readonly actionOption: readonly string[]; }; -const voteActionSchema: GenericSchema = intersect([ - lazy(() => actionSchema), - pipe( - object({ - actionOption: orgSchemaProperties(string()) - }), - readonly() - ) -]); +const voteActionEntries = { + ...actionEntries, + actionOption: orgSchemaProperties(string()) +}; + +const voteActionSchema: GenericSchema = pipe( + looseObject(voteActionEntries), + readonly() +); /** @deprecated Use Valibot.parse(voteActionSchema) instead. Will be removed on or after 2028-04-23. */ const parseVoteAction = (voteAction: VoteActionInput): VoteActionOutput => parse(voteActionSchema, voteAction); -export { parseVoteAction, voteActionSchema, type VoteActionInput, type VoteActionOutput }; +export { parseVoteAction, voteActionEntries, voteActionSchema, type VoteActionInput, type VoteActionOutput }; diff --git a/packages/core/src/utils/getOrgSchemaMessage.ts b/packages/core/src/utils/getOrgSchemaMessage.ts index 86b093c74f..d36dd162ad 100644 --- a/packages/core/src/utils/getOrgSchemaMessage.ts +++ b/packages/core/src/utils/getOrgSchemaMessage.ts @@ -1,4 +1,4 @@ -import { parse, safeParse } from 'valibot'; +import { parse } from 'valibot'; import { creativeWorkSchema, type CreativeWorkOutput } from '../types/external/OrgSchema/CreativeWork'; import { type WebChatActivity } from '../types/WebChatActivity'; From 09f9f8b811712775f4032dee277d28ba6e77fe66 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 19:12:27 +0000 Subject: [PATCH 48/59] Fix tests --- .../types/external/OrgSchema/Action.spec.ts | 14 +++-- .../types/external/OrgSchema/Claim.spec.ts | 51 +++++++++++++++---- .../CreativeWork.parseCreativeWork.spec.ts | 34 ++++++++++--- .../OrgSchema/Project.parseProject.spec.ts | 10 ++-- .../OrgSchema/Thing.parseThing.spec.ts | 12 +++-- .../external/OrgSchema/VoteAction.spec.ts | 14 +++-- .../private/orgSchemaProperties.spec.ts | 6 +-- .../OrgSchema/private/orgSchemaProperties.ts | 51 ++++++++++++------- .../private/orgSchemaProperty.spec.ts | 22 -------- .../OrgSchema/private/orgSchemaProperty.ts | 33 ------------ 10 files changed, 141 insertions(+), 106 deletions(-) delete mode 100644 packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts delete mode 100644 packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts diff --git a/packages/core/src/types/external/OrgSchema/Action.spec.ts b/packages/core/src/types/external/OrgSchema/Action.spec.ts index dc68c20b18..541b350f31 100644 --- a/packages/core/src/types/external/OrgSchema/Action.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Action.spec.ts @@ -1,4 +1,8 @@ -import { parseAction } from './Action'; +import { describe, expect, test } from '@jest/globals'; +import { actionSchema, parseAction } from './Action'; +import { parse } from 'valibot'; + +const actionTemplate = parse(actionSchema, {}); describe('Action', () => { describe('actionStatus', () => { @@ -9,8 +13,9 @@ describe('Action', () => { actionStatus: 'ActiveActionStatus' }) ).toEqual({ + ...actionTemplate, '@type': 'Action', - actionStatus: 'ActiveActionStatus' + actionStatus: ['ActiveActionStatus'] })); test('should change invalid into undefined', () => { @@ -18,14 +23,17 @@ describe('Action', () => { expect( parseAction({ '@type': 'Action', + // @ts-expect-error actionStatus: 'ABC' }) ).toEqual({ + ...actionTemplate, '@type': 'Action', - actionStatus: undefined + actionStatus: [] }); } catch (err) { console.error(err); + // @ts-expect-error console.error(err.issues[0].input); throw err; diff --git a/packages/core/src/types/external/OrgSchema/Claim.spec.ts b/packages/core/src/types/external/OrgSchema/Claim.spec.ts index 5a38e9e51e..c53c615df4 100644 --- a/packages/core/src/types/external/OrgSchema/Claim.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Claim.spec.ts @@ -1,6 +1,12 @@ import { describe, expect, test } from '@jest/globals'; import { parse } from 'valibot'; import { claimSchema } from './Claim'; +import { creativeWorkSchema } from './CreativeWork'; +import { projectSchema } from './Project'; + +const claimTemplate = parse(claimSchema, {}); +const creativeWorkTemplate = parse(creativeWorkSchema, {}); +const projectTemplate = parse(projectSchema, {}); describe('Claim', () => { test('should parse appearance', () => @@ -13,11 +19,15 @@ describe('Claim', () => { } }) ).toEqual({ + ...claimTemplate, '@type': 'Claim', - appearance: { - '@type': 'Book', - name: 'Business @ the Speed of Thought' - } + appearance: [ + { + ...creativeWorkTemplate, + '@type': 'Book', + name: ['Business @ the Speed of Thought'] + } + ] })); test('should parse claimInterpreter', () => @@ -30,21 +40,40 @@ describe('Claim', () => { } }) ).toEqual({ + ...claimTemplate, '@type': 'Claim', - claimInterpreter: { - '@type': 'Project', - slogan: 'Empower every person and every organization on the planet to achieve more.' - } + claimInterpreter: [ + { + ...projectTemplate, + '@type': 'Project', + slogan: ['Empower every person and every organization on the planet to achieve more.'] + } + ] })); describe('should parse position', () => { test('as a number', () => - expect(parse(claimSchema, { '@type': 'Claim', position: 1 })).toEqual({ '@type': 'Claim', position: 1 })); + expect( + parse(claimSchema, { + '@type': 'Claim', + position: 1 + }) + ).toEqual({ + ...claimTemplate, + '@type': 'Claim', + position: [1] + })); test('as a string', () => - expect(parse(claimSchema, { '@type': 'Claim', position: 'First' })).toEqual({ + expect( + parse(claimSchema, { + '@type': 'Claim', + position: 'First' + }) + ).toEqual({ + ...claimTemplate, '@type': 'Claim', - position: 'First' + position: ['First'] })); }); }); diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.parseCreativeWork.spec.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.parseCreativeWork.spec.ts index 9dff5c0162..14436cf206 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.parseCreativeWork.spec.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.parseCreativeWork.spec.ts @@ -1,4 +1,8 @@ -import { parseCreativeWork } from './CreativeWork'; +import { describe, expect, test } from '@jest/globals'; +import { creativeWorkSchema, parseCreativeWork } from './CreativeWork'; +import { parse } from 'valibot'; + +const creativeWorkTemplate = parse(creativeWorkSchema, {}); describe('CreativeWork', () => { test('should parse properties from Thing', () => @@ -8,8 +12,9 @@ describe('CreativeWork', () => { name: 'Business @ the Speed of Thought' }) ).toEqual({ + ...creativeWorkTemplate, '@type': 'CreativeWork', - name: 'Business @ the Speed of Thought' + name: ['Business @ the Speed of Thought'] })); test('should parse thing of Book type', () => @@ -19,8 +24,9 @@ describe('CreativeWork', () => { name: 'Business @ the Speed of Thought' }) ).toEqual({ + ...creativeWorkTemplate, '@type': 'Book', - name: 'Business @ the Speed of Thought' + name: ['Business @ the Speed of Thought'] })); test('should parse citation (singular)', () => @@ -31,9 +37,16 @@ describe('CreativeWork', () => { citation: { '@type': 'Book', name: 'The Road Ahead' } }) ).toEqual({ + ...creativeWorkTemplate, '@type': 'Book', - name: 'Business @ the Speed of Thought', - citation: [{ '@type': 'Book', name: 'The Road Ahead' }] + name: ['Business @ the Speed of Thought'], + citation: [ + { + ...creativeWorkTemplate, + '@type': 'Book', + name: ['The Road Ahead'] + } + ] })); test('should parse citation (plural)', () => @@ -44,8 +57,15 @@ describe('CreativeWork', () => { citation: [{ '@type': 'Book', name: 'The Road Ahead' }] }) ).toEqual({ + ...creativeWorkTemplate, '@type': 'Book', - name: 'Business @ the Speed of Thought', - citation: [{ '@type': 'Book', name: 'The Road Ahead' }] + name: ['Business @ the Speed of Thought'], + citation: [ + { + ...creativeWorkTemplate, + '@type': 'Book', + name: ['The Road Ahead'] + } + ] })); }); diff --git a/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts b/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts index 0d227323ba..b7ac478ac5 100644 --- a/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Project.parseProject.spec.ts @@ -1,5 +1,8 @@ import { describe, expect, test } from '@jest/globals'; -import { parseProject } from './Project'; +import { parseProject, projectSchema } from './Project'; +import { parse } from 'valibot'; + +const projectTemplate = parse(projectSchema, {}); describe('Project', () => { test('should parse', () => { @@ -10,9 +13,10 @@ describe('Project', () => { slogan: 'Empower every person and every organization on the planet to achieve more.' }) ).toEqual({ + ...projectTemplate, '@type': 'Project', - name: 'Microsoft', - slogan: 'Empower every person and every organization on the planet to achieve more.' + name: ['Microsoft'], + slogan: ['Empower every person and every organization on the planet to achieve more.'] }); }); }); diff --git a/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts b/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts index a0fbdf8de7..c9d4492b67 100644 --- a/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts +++ b/packages/core/src/types/external/OrgSchema/Thing.parseThing.spec.ts @@ -2,6 +2,8 @@ import { describe, expect, test } from '@jest/globals'; import { parse } from 'valibot'; import { thingSchema } from './Thing'; +const thingTemplate = parse(thingSchema, {}); + describe('Thing', () => { test('should parse', () => { expect( @@ -10,8 +12,9 @@ describe('Thing', () => { name: 'John Doe' }) ).toEqual({ + ...thingTemplate, '@type': 'Thing', - name: 'John Doe' + name: ['John Doe'] }); }); @@ -22,8 +25,9 @@ describe('Thing', () => { name: 'John Doe' }) ).toEqual({ + ...thingTemplate, '@type': 'Unknown', - name: 'John Doe' + name: ['John Doe'] }); }); @@ -37,6 +41,7 @@ describe('Thing', () => { something: 1 }) ).toEqual({ + ...thingTemplate, '@type': 'Thing', something: 1 }); @@ -49,8 +54,9 @@ describe('Thing', () => { name: 1 }) ).toEqual({ + ...thingTemplate, '@type': 'Thing', - name: undefined + name: [] }); }); }); diff --git a/packages/core/src/types/external/OrgSchema/VoteAction.spec.ts b/packages/core/src/types/external/OrgSchema/VoteAction.spec.ts index 76cf89730b..e4029cd2a7 100644 --- a/packages/core/src/types/external/OrgSchema/VoteAction.spec.ts +++ b/packages/core/src/types/external/OrgSchema/VoteAction.spec.ts @@ -1,4 +1,8 @@ -import { parseVoteAction } from './VoteAction'; +import { describe, expect, test } from '@jest/globals'; +import { parseVoteAction, voteActionSchema } from './VoteAction'; +import { parse } from 'valibot'; + +const voteActionTemplate = parse(voteActionSchema, {}); describe('VoteAction', () => { describe('actionOption', () => { @@ -9,8 +13,9 @@ describe('VoteAction', () => { actionOption: 'upvote' }) ).toEqual({ + ...voteActionTemplate, '@type': 'VoteAction', - actionOption: 'upvote' + actionOption: ['upvote'] })); test('should change invalid into undefined', () => { @@ -18,14 +23,17 @@ describe('VoteAction', () => { expect( parseVoteAction({ '@type': 'Action', + // @ts-expect-error actionOption: 123 }) ).toEqual({ + ...voteActionTemplate, '@type': 'Action', - actionOption: undefined + actionOption: [] }); } catch (err) { console.error(err); + // @ts-expect-error console.error(err.issues[0].input); throw err; diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts index eb25caff33..7592867191 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts @@ -10,15 +10,15 @@ describe('orgSchemaProperties', () => { }); test('should turn item of invalid type into undefined', () => { - expect(parse(orgSchemaProperties(string()), 0)).toBeUndefined(); + expect(parse(orgSchemaProperties(string()), 0)).toEqual([]); }); test('should turn null into undefined', () => { - expect(parse(orgSchemaProperties(string()), null)).toBeUndefined(); + expect(parse(orgSchemaProperties(string()), null)).toEqual([]); }); test('should keep undefined as-is', () => { - expect(parse(orgSchemaProperties(string()), undefined)).toBeUndefined(); + expect(parse(orgSchemaProperties(string()), undefined)).toEqual([]); }); }); diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts index d7d27a1f24..e07cebf537 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts @@ -1,7 +1,11 @@ import { + any, array, + fallback, + is, optional, pipe, + safeParse, transform, union, type BaseSchema, @@ -16,25 +20,36 @@ export default function orgSchemaProperties | readonly InferInput[] | undefined, readonly InferOutput[] | undefined> { return optional( - union([ - // If it is an array. - pipe( - array(schema), - transform(value => { - // Filter out all `undefined` value. - const result = value.filter(value => typeof value !== 'undefined'); + fallback( + union([ + // If it is an array. + pipe( + array(any()), + transform(value => { + // Filter out all `undefined` and invalid values. + const result = value.reduce((output, value) => { + if (typeof value !== 'undefined') { + const result = safeParse(schema, value); - // If it is non-empty, return the frozen array, otherwise, return our empty flywheel. - return result.length ? Object.freeze(result) : EMPTY_ARRAY; - }) - ), - pipe( - // Otherwise, it must match the schema - schema, - // Put it in a frozen array tuple. - transform(value => Object.freeze([value])) - ) - ]), + result.success && output.push(result.output); + } + + return output; + }, []); + + // If it is non-empty, return the frozen array, otherwise, return our empty flywheel. + return result.length ? Object.freeze(result) : EMPTY_ARRAY; + }) + ), + pipe( + // Otherwise, it must match the schema + schema, + // Put it in a frozen array tuple. + transform(value => Object.freeze([value])) + ) + ]), + () => EMPTY_ARRAY + ), EMPTY_ARRAY ); } diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts deleted file mode 100644 index 8495ccf4ab..0000000000 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { describe, expect, test } from '@jest/globals'; -import { parse, string } from 'valibot'; - -import orgSchemaProperty from './orgSchemaProperty'; - -describe('orgSchemaProperty', () => { - test('should keep valid type as-is', () => { - expect(parse(orgSchemaProperty(string()), 'abc')).toBe('abc'); - }); - - test('should keep undefined as-is', () => { - expect(parse(orgSchemaProperty(string()), undefined)).toBeUndefined(); - }); - - test('should convert invalid type to undefined', () => { - expect(parse(orgSchemaProperty(string()), null)).toBeUndefined(); - }); - - test('should take the first item from an array', () => { - expect(parse(orgSchemaProperty(string()), ['abc', 'def', 'xyz'])).toBe('abc'); - }); -}); diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts deleted file mode 100644 index e3821a03ab..0000000000 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperty.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { - array, - fallback, - optional, - pipe, - transform, - union, - type BaseSchema, - type Fallback, - type GenericSchema, - type InferOutput -} from 'valibot'; - -type ArrayToSingularSchema> = GenericSchema< - InferOutput | InferOutput[] | undefined, - InferOutput | undefined ->; - -const orgSchemaProperty = >(schema: T): ArrayToSingularSchema => - fallback, Fallback>>( - optional( - union([ - pipe( - array(schema), - transform(array => array[0]) - ), - schema - ]) - ), - undefined - ); - -export default orgSchemaProperty; From 99f8f9e4c59d00cd2714982f363b67607ed07021 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 19:45:51 +0000 Subject: [PATCH 49/59] Add schema.js export --- .../html2/simple/fatModule/fluentTheme.html | 1 + packages/bundle/esbuild.static.mjs | 1 + packages/bundle/package.json | 10 +++++++++ packages/bundle/src/boot/actual/schema.ts | 22 +++++++++++++++++++ packages/bundle/src/boot/exports/schema.ts | 1 + packages/bundle/tsup.config.ts | 8 ++++--- .../types/external/OrgSchema/CreativeWork.ts | 17 ++++++++------ .../activity/private/useActivityAuthor.ts | 2 +- 8 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 packages/bundle/src/boot/actual/schema.ts create mode 100644 packages/bundle/src/boot/exports/schema.ts diff --git a/__tests__/html2/simple/fatModule/fluentTheme.html b/__tests__/html2/simple/fatModule/fluentTheme.html index fff45cf0ad..4288a2e29a 100644 --- a/__tests__/html2/simple/fatModule/fluentTheme.html +++ b/__tests__/html2/simple/fatModule/fluentTheme.html @@ -22,6 +22,7 @@ "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/schema": "/__dist__/packages/bundle/static/botframework-webchat/schema.js", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js", diff --git a/packages/bundle/esbuild.static.mjs b/packages/bundle/esbuild.static.mjs index 863974e53e..22126b7360 100644 --- a/packages/bundle/esbuild.static.mjs +++ b/packages/bundle/esbuild.static.mjs @@ -165,6 +165,7 @@ const IGNORED_OWN_PACKAGES = [ 'botframework-webchat/hook': './src/boot/exports/hook.ts', 'botframework-webchat/internal': './src/boot/exports/internal.ts', 'botframework-webchat/middleware': './src/boot/exports/middleware.ts', + 'botframework-webchat/schema': './src/boot/exports/schema.ts', // TODO: [P2] We can remove the `Array.from()` after bumping Node.js. ...Array.from(allOwnExports.keys()).reduce((entryPoints, key) => ({ ...entryPoints, [key]: key }), {}) }; diff --git a/packages/bundle/package.json b/packages/bundle/package.json index 851811f05b..726b81c89c 100644 --- a/packages/bundle/package.json +++ b/packages/bundle/package.json @@ -65,6 +65,16 @@ "default": "./dist/botframework-webchat.middleware.js" } }, + "./schema": { + "import": { + "types": "./dist/botframework-webchat.schema.d.mts", + "default": "./dist/botframework-webchat.schema.mjs" + }, + "require": { + "types": "./dist/botframework-webchat.schema.d.ts", + "default": "./dist/botframework-webchat.schema.js" + } + }, "./static/*": "./static/*" }, "publishConfig": { diff --git a/packages/bundle/src/boot/actual/schema.ts b/packages/bundle/src/boot/actual/schema.ts new file mode 100644 index 0000000000..37699525c1 --- /dev/null +++ b/packages/bundle/src/boot/actual/schema.ts @@ -0,0 +1,22 @@ +export { + orgSchemaActionSchema, + orgSchemaClaimSchema, + orgSchemaCreativeWorkSchema, + orgSchemaDefinedTermSchema, + orgSchemaPersonSchema, + orgSchemaProjectSchema, + orgSchemaSoftwareSourceCodeSchema, + orgSchemaUserReviewSchema, + orgSchemaVoteActionSchema, + orgSchemaThingSchema, + type OrgSchemaThing, + type OrgSchemaAction, + type OrgSchemaClaim, + type OrgSchemaCreativeWork, + type OrgSchemaDefinedTerm, + type OrgSchemaPerson, + type OrgSchemaProject, + type OrgSchemaSoftwareSourceCode, + type OrgSchemaUserReview, + type OrgSchemaVoteAction +} from 'botframework-webchat-core'; diff --git a/packages/bundle/src/boot/exports/schema.ts b/packages/bundle/src/boot/exports/schema.ts new file mode 100644 index 0000000000..903da15447 --- /dev/null +++ b/packages/bundle/src/boot/exports/schema.ts @@ -0,0 +1 @@ +export * from '../actual/schema'; diff --git a/packages/bundle/tsup.config.ts b/packages/bundle/tsup.config.ts index f10dedd7dc..307d6ed5e7 100644 --- a/packages/bundle/tsup.config.ts +++ b/packages/bundle/tsup.config.ts @@ -1,4 +1,5 @@ import { injectCSSPlugin } from '@msinternal/botframework-webchat-styles/build'; +import type { PluginBuild } from 'esbuild'; import path from 'path'; import { defineConfig } from 'tsup'; @@ -8,7 +9,7 @@ import { bundleStyleContent as bundleStyleContentPlaceholder } from './src/style // Redirect import paths for "react" and "react-dom" const resolveReact = { name: 'isomorphic-react', - setup(build) { + setup(build: PluginBuild) { // ESBuild use Go regular expressions and does not understand Unicode flag. // eslint-disable-next-line require-unicode-regexp build.onResolve({ filter: /^(react|react-dom)$/ }, ({ path: pkgName }) => ({ @@ -25,7 +26,8 @@ const commonConfig = applyConfig(config => ({ 'botframework-webchat.decorator': './src/boot/exports/decorator.ts', 'botframework-webchat.hook': './src/boot/exports/hook.ts', 'botframework-webchat.internal': './src/boot/exports/internal.ts', - 'botframework-webchat.middleware': './src/boot/exports/middleware.ts' + 'botframework-webchat.middleware': './src/boot/exports/middleware.ts', + 'botframework-webchat.schema': './src/boot/exports/schema.ts' }, env: { ...config.env, @@ -52,7 +54,7 @@ const commonConfig = applyConfig(config => ({ ...(config.esbuildPlugins ?? []), injectCSSPlugin({ ignoreCSSEntries: ['dist/botframework-webchat.component.css'], - stylesPlaceholder: bundleStyleContentPlaceholder, + stylesPlaceholder: bundleStyleContentPlaceholder }) ] })); diff --git a/packages/core/src/types/external/OrgSchema/CreativeWork.ts b/packages/core/src/types/external/OrgSchema/CreativeWork.ts index fe1894e813..116201b4fe 100644 --- a/packages/core/src/types/external/OrgSchema/CreativeWork.ts +++ b/packages/core/src/types/external/OrgSchema/CreativeWork.ts @@ -180,27 +180,30 @@ type CreativeWorkOutput = ThingOutput & { // Cyclic dependency. // eslint-disable-next-line prefer-const -let creativeWorkSchema: GenericSchema; +let creativeWorkSchema_: GenericSchema; const creativeWorkEntries = { ...thingEntries, abstract: orgSchemaProperties(string()), author: orgSchemaProperties(union([lazy(() => personSchema), string()])), - citation: orgSchemaProperties(lazy(() => creativeWorkSchema)), + citation: orgSchemaProperties(lazy(() => creativeWorkSchema_)), creativeWorkStatus: orgSchemaProperties(creativeWorkStatusSchema), - isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema)), - isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema)), + isBasedOn: orgSchemaProperties(lazy(() => creativeWorkSchema_)), + isPartOf: orgSchemaProperties(lazy(() => creativeWorkSchema_)), keywords: orgSchemaProperties(union([lazy(() => definedTermSchema), string()])), pattern: orgSchemaProperties(lazy(() => definedTermSchema)), position: orgSchemaProperties(union([number(), string()])), text: orgSchemaProperties(string()), - usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema)) + usageInfo: orgSchemaProperties(lazy(() => creativeWorkSchema_)) }; -creativeWorkSchema = pipe(looseObject(creativeWorkEntries), readonly()); +creativeWorkSchema_ = pipe(looseObject(creativeWorkEntries), readonly()); + +// Constantize here, so we are exporting a const than a let. +const creativeWorkSchema = creativeWorkSchema_; /** @deprecated Use Valibot.parse(creativeWorkSchema) instead. Will be removed on or after 2028-04-23. */ const parseCreativeWork = (creativeWork: CreativeWorkInput): CreativeWorkOutput => - parse(creativeWorkSchema, creativeWork); + parse(creativeWorkSchema_, creativeWork); export { creativeWorkEntries, creativeWorkSchema, parseCreativeWork, type CreativeWorkInput, type CreativeWorkOutput }; diff --git a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts index 89d500a02c..c1af6cfd59 100644 --- a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts +++ b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts @@ -1,5 +1,5 @@ -import { orgSchemaPersonSchema, type OrgSchemaPerson } from 'botframework-webchat-core'; import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal'; +import { orgSchemaPersonSchema, type OrgSchemaPerson } from 'botframework-webchat/schema'; import { useMemo } from 'react'; import { parse } from 'valibot'; From c2f4b7abcfdcc9ec739cd6781ce3b6de7e793b39 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 22:58:36 +0000 Subject: [PATCH 50/59] Suffix static with .js --- __tests__/html2/activity/message-status.html | 5 +- .../attachment/adaptiveCard/custom.skip.html | 9 ++-- .../html2/boot/deprecation/hooks.new.html | 2 +- __tests__/html2/citation/url.html | 5 +- .../html2/fluentTheme/maxMessageLength.html | 5 +- .../html2/hooks/useActivities.getter.html | 3 +- .../html2/hooks/useActivities.setter.html | 3 +- ...daptiveCardsHostConfig.getter.default.html | 3 +- .../useAdaptiveCardsHostConfig.getter.html | 3 +- .../useAdaptiveCardsHostConfig.setter.html | 3 +- ...seAdaptiveCardsPackage.getter.default.html | 3 +- .../hooks/useAdaptiveCardsPackage.getter.html | 3 +- .../hooks/useAdaptiveCardsPackage.setter.html | 3 +- .../html2/hooks/useAvatarForBot.getter.html | 3 +- .../html2/hooks/useAvatarForBot.setter.html | 3 +- .../html2/hooks/useAvatarForUser.getter.html | 3 +- .../html2/hooks/useAvatarForUser.setter.html | 3 +- __tests__/html2/hooks/useByteFormatter.html | 3 +- __tests__/html2/hooks/useCapabilities.html | 3 +- .../hooks/useConnectivityStatus.getter.html | 3 +- .../hooks/useConnectivityStatus.setter.html | 3 +- .../html2/hooks/useDateFormatter.en.html | 3 +- .../html2/hooks/useDateFormatter.yue.html | 3 +- .../hooks/useDictateInterims.getter.html | 3 +- .../hooks/useDictateInterims.setter.html | 3 +- .../hooks/useDisabled.getter.default.html | 3 +- __tests__/html2/hooks/useDisabled.getter.html | 3 +- __tests__/html2/hooks/useDisabled.setter.html | 3 +- .../html2/hooks/useDismissNotification.html | 3 +- .../html2/hooks/useFocus.sendBox.pure.html | 3 +- .../hooks/useGrammars.getter.default.html | 3 +- __tests__/html2/hooks/useGrammars.getter.html | 3 +- __tests__/html2/hooks/useGrammars.setter.html | 3 +- .../useGroupTimestamp.getter.default.html | 3 +- .../hooks/useGroupTimestamp.getter.false.html | 3 +- .../html2/hooks/useGroupTimestamp.getter.html | 3 +- .../html2/hooks/useGroupTimestamp.setter.html | 3 +- .../useInjectStylesElements/withNonce.html | 5 +- .../hooks/useLanguage.getter.default.html | 3 +- .../hooks/useLanguage.getter.speech.html | 3 +- .../html2/hooks/useLanguage.getter.xx-YY.html | 3 +- .../html2/hooks/useLanguage.getter.yue.html | 3 +- .../hooks/useLanguage.getter.zh-YUE.html | 3 +- __tests__/html2/hooks/useLanguage.setter.html | 3 +- .../html2/hooks/useLocalizer.default.html | 3 +- .../html2/hooks/useLocalizer.nonExistent.html | 3 +- .../hooks/useLocalizer.overrideStrings.html | 3 +- ...ocalizer.plural.firstArgumentIsString.html | 3 +- .../html2/hooks/useLocalizer.plural.one.html | 3 +- .../useLocalizer.plural.otherFallback.html | 3 +- .../useLocalizer.plural.throw.idOfString.html | 3 +- ...eLocalizer.plural.throw.idOneOfNumber.html | 3 +- ...izer.plural.throw.idOtherNotUndefined.html | 3 +- .../useLocalizer.plural.throw.idUnknown.html | 3 +- .../html2/hooks/useLocalizer.plural.two.html | 3 +- .../hooks/useLocalizer.throwOnInvalidId.html | 3 +- __tests__/html2/hooks/useLocalizer.yue.html | 3 +- .../html2/hooks/useLocalizer.yue.plural.html | 3 +- .../html2/hooks/useMarkActivityAsSpoken.html | 3 +- .../html2/hooks/useMicrophoneButtonClick.html | 3 +- .../html2/hooks/usePerformCardAction.html | 3 +- __tests__/html2/hooks/usePostActivity.html | 3 +- .../html2/hooks/useRelativeTimeFormatter.html | 3 +- .../hooks/useRenderMarkdownAsHTML.custom.html | 3 +- .../useRenderMarkdownAsHTML.default.html | 3 +- .../useRenderMarkdownAsHTML.externalLink.html | 3 +- ...RenderMarkdownAsHTML.externalLink.yue.html | 3 +- .../hooks/useRenderMarkdownAsHTML.null.html | 3 +- ...echInterimsVisible.getter.recognition.html | 3 +- ...peechInterimsVisible.getter.synthesis.html | 3 +- ...seSendBoxSpeechInterimsVisible.setter.html | 3 +- .../html2/hooks/useSendBoxValue.getter.html | 3 +- .../html2/hooks/useSendBoxValue.setter.html | 3 +- __tests__/html2/hooks/useSendFiles.html | 3 +- __tests__/html2/hooks/useSendMessage.html | 3 +- __tests__/html2/hooks/useSendMessageBack.html | 3 +- __tests__/html2/hooks/useSendPostBack.html | 3 +- __tests__/html2/hooks/useSetNotification.html | 3 +- .../useShouldSpeakIncomingActivity.false.html | 3 +- .../useShouldSpeakIncomingActivity.true.html | 3 +- __tests__/html2/hooks/useStartDictate.html | 3 +- __tests__/html2/hooks/useStopDictate.html | 3 +- .../html2/hooks/useStyleOptions.getter.html | 3 +- .../html2/hooks/useStyleOptions.setter.html | 3 +- __tests__/html2/hooks/useStyleSet.getter.html | 3 +- __tests__/html2/hooks/useStyleSet.setter.html | 3 +- __tests__/html2/hooks/useSubmitSendBox.html | 3 +- .../html2/hooks/useSuggestedActions.html | 3 +- __tests__/html2/hooks/useTextBoxValue.html | 3 +- .../hooks/useTimeoutForSend.default.html | 3 +- .../html2/hooks/useTimeoutForSend.getter.html | 3 +- .../html2/hooks/useTimeoutForSend.setter.html | 3 +- __tests__/html2/hooks/useTrackDimension.html | 3 +- ...seTrackDimension.invalidDimensionName.html | 3 +- ...eTrackDimension.invalidDimensionValue.html | 3 +- .../html2/hooks/useTrackEvent.debug.html | 3 +- .../hooks/useTrackEvent.error.complex.html | 3 +- __tests__/html2/hooks/useTrackEvent.html | 3 +- __tests__/html2/hooks/useTrackEvent.info.html | 3 +- .../useTrackEvent.invalid.booleanData.html | 3 +- .../hooks/useTrackEvent.invalid.complex.html | 3 +- .../hooks/useTrackEvent.invalid.name.html | 3 +- .../hooks/useTrackEvent.warn.numeric.html | 3 +- __tests__/html2/hooks/useTrackException.html | 3 +- .../hooks/useTrackException.nonFatal.html | 3 +- .../html2/hooks/useUserID.getter.default.html | 3 +- __tests__/html2/hooks/useUserID.getter.html | 3 +- __tests__/html2/hooks/useUserID.setter.html | 3 +- .../hooks/useUsername.getter.default.html | 3 +- __tests__/html2/hooks/useUsername.getter.html | 3 +- __tests__/html2/hooks/useUsername.setter.html | 3 +- __tests__/html2/hooks/useVoiceSelector.html | 3 +- .../useWebSpeechPonyfill.getter.bypass.html | 3 +- .../hooks/useWebSpeechPonyfill.getter.html | 3 +- .../hooks/useWebSpeechPonyfill.setter.html | 3 +- .../markdown/vnext/markdownStreaming.html | 5 +- .../supportPolymiddleware.reactDOMRender.html | 3 +- ...dleware.reactDOMRender.withCreateRoot.html | 3 +- .../supportPolymiddleware.renderWebChat.html | 3 +- .../simple/fatModule/esm.sh/fluentTheme.html | 5 +- .../fatModule/esm.sh/tsx/fluentTheme.html | 5 +- .../simple/fatModule/esm.sh/tsx/simple.html | 3 +- ...dleware.reactDOMRender.withCreateRoot.html | 3 +- .../html2/simple/fatModule/fluentTheme.html | 6 +-- .../simple/fatModule/simple.runHook.html | 3 +- .../supportPolymiddleware.reactDOMRender.html | 3 +- .../supportPolymiddleware.renderWebChat.html | 3 +- __tests__/html2/themeProvider/override.html | 5 +- docs/CAPABILITIES.md | 2 +- docs/MIDDLEWARE.md | 4 +- .../api-graph/src/private/GraphProvider.tsx | 2 +- packages/api/package.json | 40 ++++++++++++++ packages/api/src/boot/deprecated/decorator.ts | 5 ++ packages/api/src/boot/deprecated/graph.ts | 5 ++ packages/api/src/boot/deprecated/hook.ts | 5 ++ packages/api/src/boot/deprecated/internal.ts | 5 ++ .../api/src/boot/deprecated/middleware.ts | 5 ++ .../ActivitySendStatusComposer.tsx | 2 +- .../ActivityTyping/ActivityTypingComposer.tsx | 2 +- .../private/useReduceActivities.spec.tsx | 2 +- .../createDefaultGroupActivitiesMiddleware.ts | 4 +- packages/api/tsup.config.ts | 8 ++- packages/bundle/esbuild.static.mjs | 9 +++- packages/bundle/package.json | 52 ++++++++++++++++++- .../Attachment/AdaptiveCardRenderer.tsx | 2 +- .../src/boot/actual/component/minimal.ts | 2 +- packages/bundle/src/boot/actual/decorator.ts | 4 +- .../bundle/src/boot/actual/hook/minimal.ts | 2 +- packages/bundle/src/boot/actual/internal.ts | 4 +- packages/bundle/src/boot/actual/middleware.ts | 10 ++-- .../src/boot/exports/deprecated/component.ts | 5 ++ .../src/boot/exports/deprecated/decorator.ts | 5 ++ .../src/boot/exports/deprecated/hook.ts | 5 ++ .../src/boot/exports/deprecated/internal.ts | 5 ++ .../src/boot/exports/deprecated/middleware.ts | 5 ++ .../src/boot/exports/deprecated/minimal.ts | 5 ++ .../src/codeHighlighter/ShikiComposer.tsx | 2 +- .../middleware/createSanitizeMiddleware.ts | 2 +- .../betterLinkDocumentMod.ariaLabel.spec.ts | 2 +- .../betterLinkDocumentMod.asButton.spec.ts | 2 +- .../betterLinkDocumentMod.className.spec.ts | 2 +- ...etterLinkDocumentMod.iconClassName.spec.ts | 2 +- .../private/betterLinkDocumentMod.rel.spec.ts | 2 +- .../betterLinkDocumentMod.selector.spec.ts | 2 +- .../betterLinkDocumentMod.target.spec.ts | 2 +- .../betterLinkDocumentMod.title.spec.ts | 2 +- ...LinkDocumentMod.wrapZeroWidthSpace.spec.ts | 2 +- .../bundle/src/markdown/renderMarkdown.ts | 2 +- .../src/stylesheet/BundleStylesheet.tsx | 4 +- packages/bundle/tsup.config.ts | 14 ++++- packages/component/package.json | 40 ++++++++++++++ .../component/src/Activity/StackedLayout.tsx | 2 +- .../RestrictedActivityDebugAPI.ts | 2 +- packages/component/src/BuiltInDecorator.tsx | 2 +- packages/component/src/Composer.tsx | 6 +-- packages/component/src/Dictation.js | 2 +- .../defaultActivityPolymiddleware.tsx | 2 +- ...ultActivityGroupingDecoratorMiddleware.tsx | 2 +- .../ui/LegacyActivityBridgeComposer.tsx | 2 +- .../ui/PartGrouping/PartGrouping.tsx | 2 +- .../createDefaultAvatarPolymiddleware.tsx | 2 +- packages/component/src/SendBox/TextBox.tsx | 2 +- .../Styles/CSSCustomPropertiesContainer.tsx | 2 +- .../component/src/Transcript/ActivityTree.tsx | 2 +- .../hooks/useRenderActivityProps.ts | 2 +- .../src/boot/deprecated/component.ts | 5 ++ .../src/boot/deprecated/decorator.ts | 5 ++ .../component/src/boot/deprecated/hook.ts | 5 ++ .../component/src/boot/deprecated/internal.ts | 5 ++ packages/component/src/boot/hook.ts | 2 +- packages/component/src/boot/internal.ts | 2 +- .../decorator/private/WebChatDecorator.tsx | 2 +- .../stylesheet/DecoratorStylesheet.tsx | 2 +- .../RenderingActivitiesComposer.tsx | 2 +- .../private/RenderingActivitiesContext.ts | 2 +- .../useActivityRendererMap.ts | 2 +- .../src/providers/Theme/ThemeProvider.tsx | 4 +- .../src/providers/Theme/private/Context.ts | 2 +- .../src/stylesheet/ComponentStylesheet.tsx | 2 +- packages/component/tsup.config.ts | 21 ++++++-- packages/core/package.json | 30 +++++++++++ .../{activity/index.ts => boot/activity.ts} | 0 packages/core/src/boot/deprecated/activity.ts | 5 ++ packages/core/src/boot/deprecated/graph.ts | 5 ++ packages/core/src/boot/deprecated/internal.ts | 5 ++ .../src/{graph/index.ts => boot/graph.ts} | 2 +- .../{internal/index.ts => boot/internal.ts} | 4 +- packages/core/src/createStore.ts | 2 +- .../core/src/graph/createGraphFromStore.ts | 3 +- packages/core/src/types/WebChatActivity.ts | 2 +- packages/core/tsup.config.ts | 10 ++-- packages/debug-theme/src/DebugProvider.tsx | 2 +- .../activity/CopilotMessageHeader.tsx | 2 +- .../activity/PartGroupingDecorator.tsx | 2 +- .../activity/private/isAIGeneratedActivity.ts | 2 +- .../activity/private/useActivityAuthor.ts | 4 +- .../private/useActivityStyleOptions.ts | 2 +- .../VoiceTranscriptActivityStatus.tsx | 4 +- .../src/components/icon/FluentIcon.tsx | 2 +- .../linerActivity/private/LinerActivity.tsx | 2 +- .../private/isLinerMessageActivity.ts | 2 +- .../PreChatMessageActivity.tsx | 2 +- .../StarterPromptsCardAction.tsx | 2 +- .../preChatActivity/StarterPromptsToolbar.tsx | 2 +- .../isPreChatMessageActivity.ts | 2 +- .../src/components/sendBox/ErrorMessage.tsx | 2 +- .../src/components/sendBox/SendBox.tsx | 2 +- .../suggestedActions/SuggestedAction.tsx | 2 +- .../private/computeSuggestedActionText.ts | 2 +- .../{decorator.ts => decorator.js.ts} | 0 .../{hook.ts => hook.js.ts} | 0 .../{internal.ts => internal.js.ts} | 0 .../{middleware.ts => middleware.js.ts} | 0 .../{component.ts => component.js.ts} | 0 .../{decorator.ts => decorator.js.ts} | 0 .../{hook.ts => hook.js.ts} | 0 .../{internal.ts => internal.js.ts} | 0 .../src/private/FluentThemeProvider.tsx | 6 +-- .../src/stylesheet/FluentThemeStylesheet.tsx | 4 +- .../SuggestedActionsComposer.tsx | 2 +- 240 files changed, 528 insertions(+), 383 deletions(-) create mode 100644 packages/api/src/boot/deprecated/decorator.ts create mode 100644 packages/api/src/boot/deprecated/graph.ts create mode 100644 packages/api/src/boot/deprecated/hook.ts create mode 100644 packages/api/src/boot/deprecated/internal.ts create mode 100644 packages/api/src/boot/deprecated/middleware.ts create mode 100644 packages/bundle/src/boot/exports/deprecated/component.ts create mode 100644 packages/bundle/src/boot/exports/deprecated/decorator.ts create mode 100644 packages/bundle/src/boot/exports/deprecated/hook.ts create mode 100644 packages/bundle/src/boot/exports/deprecated/internal.ts create mode 100644 packages/bundle/src/boot/exports/deprecated/middleware.ts create mode 100644 packages/bundle/src/boot/exports/deprecated/minimal.ts create mode 100644 packages/component/src/boot/deprecated/component.ts create mode 100644 packages/component/src/boot/deprecated/decorator.ts create mode 100644 packages/component/src/boot/deprecated/hook.ts create mode 100644 packages/component/src/boot/deprecated/internal.ts rename packages/core/src/{activity/index.ts => boot/activity.ts} (100%) create mode 100644 packages/core/src/boot/deprecated/activity.ts create mode 100644 packages/core/src/boot/deprecated/graph.ts create mode 100644 packages/core/src/boot/deprecated/internal.ts rename packages/core/src/{graph/index.ts => boot/graph.ts} (81%) rename packages/core/src/{internal/index.ts => boot/internal.ts} (67%) rename packages/fluent-theme/src/external.umd/botframework-webchat-api/{decorator.ts => decorator.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-api/{hook.ts => hook.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-api/{internal.ts => internal.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-api/{middleware.ts => middleware.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-component/{component.ts => component.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-component/{decorator.ts => decorator.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-component/{hook.ts => hook.js.ts} (100%) rename packages/fluent-theme/src/external.umd/botframework-webchat-component/{internal.ts => internal.js.ts} (100%) diff --git a/__tests__/html2/activity/message-status.html b/__tests__/html2/activity/message-status.html index 1ddffec38b..8bae7eec24 100644 --- a/__tests__/html2/activity/message-status.html +++ b/__tests__/html2/activity/message-status.html @@ -11,10 +11,7 @@ "@fluentui/tokens": "/__dist__/packages/test/test-assets/out/@fluentui/tokens.js", "@testduet/wait-for": "https://unpkg.com/@testduet/wait-for@main/dist/wait-for.mjs", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/attachment/adaptiveCard/custom.skip.html b/__tests__/html2/attachment/adaptiveCard/custom.skip.html index 3ccbc3f4d6..68ab6d64fa 100644 --- a/__tests__/html2/attachment/adaptiveCard/custom.skip.html +++ b/__tests__/html2/attachment/adaptiveCard/custom.skip.html @@ -13,10 +13,7 @@ "@testduet/wait-for": "https://unpkg.com/@testduet/wait-for@main/dist/wait-for.mjs", "bot-bundle-chat-adapter": "https://cdn.jsdelivr.net/gh/compulim/experiment-mockbot@v0.0.4/esm/bot-bundle-chat-adapter.js", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "/__dist__/packages/test/test-assets/out/react.js", "react-dom": "/__dist__/packages/test/test-assets/out/react-dom.js", @@ -116,7 +113,7 @@ conversationStartProperties: { locale: navigator.language } }); - + run(async () => { await host.windowSize(800, 800, document.body); @@ -183,4 +180,4 @@ }); - \ No newline at end of file + diff --git a/__tests__/html2/boot/deprecation/hooks.new.html b/__tests__/html2/boot/deprecation/hooks.new.html index feb94450f0..078cff777d 100644 --- a/__tests__/html2/boot/deprecation/hooks.new.html +++ b/__tests__/html2/boot/deprecation/hooks.new.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" diff --git a/__tests__/html2/citation/url.html b/__tests__/html2/citation/url.html index a0174a9403..85de43733d 100644 --- a/__tests__/html2/citation/url.html +++ b/__tests__/html2/citation/url.html @@ -11,10 +11,7 @@ "@fluentui/tokens": "/__dist__/packages/test/test-assets/out/@fluentui/tokens.js", "@testduet/wait-for": "https://unpkg.com/@testduet/wait-for@main/dist/wait-for.mjs", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/fluentTheme/maxMessageLength.html b/__tests__/html2/fluentTheme/maxMessageLength.html index a04f661eeb..662e1ccd68 100644 --- a/__tests__/html2/fluentTheme/maxMessageLength.html +++ b/__tests__/html2/fluentTheme/maxMessageLength.html @@ -13,10 +13,7 @@ "@fluentui/react-components": "https://esm.sh/@fluentui/react-components?deps=react@18,react-dom@18&exports=FluentProvider,createDarkTheme,webLightTheme", "@testduet/wait-for": "https://esm.sh/@testduet/wait-for", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useActivities.getter.html b/__tests__/html2/hooks/useActivities.getter.html index c2d7c52fa2..39cce35285 100644 --- a/__tests__/html2/hooks/useActivities.getter.html +++ b/__tests__/html2/hooks/useActivities.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useActivities.setter.html b/__tests__/html2/hooks/useActivities.setter.html index 085dcff462..6520ff35e2 100644 --- a/__tests__/html2/hooks/useActivities.setter.html +++ b/__tests__/html2/hooks/useActivities.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html index c76b0a04d7..740d7f44f9 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html +++ b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html index d1f926db1a..58003d92fa 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html index 4180ad61c7..05b25859da 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html index 9ae675527e..9108316cd4 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html +++ b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html index 9aab89daa2..9379780600 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html b/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html index 0ceb2e8650..71d405f9f2 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAvatarForBot.getter.html b/__tests__/html2/hooks/useAvatarForBot.getter.html index acfefe7836..5590d58005 100644 --- a/__tests__/html2/hooks/useAvatarForBot.getter.html +++ b/__tests__/html2/hooks/useAvatarForBot.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAvatarForBot.setter.html b/__tests__/html2/hooks/useAvatarForBot.setter.html index fb1f316f19..c71c7dd623 100644 --- a/__tests__/html2/hooks/useAvatarForBot.setter.html +++ b/__tests__/html2/hooks/useAvatarForBot.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAvatarForUser.getter.html b/__tests__/html2/hooks/useAvatarForUser.getter.html index fe2a4d0f53..c7bea2d55c 100644 --- a/__tests__/html2/hooks/useAvatarForUser.getter.html +++ b/__tests__/html2/hooks/useAvatarForUser.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useAvatarForUser.setter.html b/__tests__/html2/hooks/useAvatarForUser.setter.html index 3fe650a66e..b4749efc0c 100644 --- a/__tests__/html2/hooks/useAvatarForUser.setter.html +++ b/__tests__/html2/hooks/useAvatarForUser.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useByteFormatter.html b/__tests__/html2/hooks/useByteFormatter.html index a3feacc9d0..6d322f002b 100644 --- a/__tests__/html2/hooks/useByteFormatter.html +++ b/__tests__/html2/hooks/useByteFormatter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useCapabilities.html b/__tests__/html2/hooks/useCapabilities.html index 9d5e5e6f61..7cf43cfb89 100644 --- a/__tests__/html2/hooks/useCapabilities.html +++ b/__tests__/html2/hooks/useCapabilities.html @@ -10,8 +10,7 @@ "imports": { "@testduet/wait-for": "https://unpkg.com/@testduet/wait-for@main/dist/wait-for.mjs", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useConnectivityStatus.getter.html b/__tests__/html2/hooks/useConnectivityStatus.getter.html index d2fd7487e3..89eb2a003d 100644 --- a/__tests__/html2/hooks/useConnectivityStatus.getter.html +++ b/__tests__/html2/hooks/useConnectivityStatus.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useConnectivityStatus.setter.html b/__tests__/html2/hooks/useConnectivityStatus.setter.html index 713e2e3c67..abb931a0c7 100644 --- a/__tests__/html2/hooks/useConnectivityStatus.setter.html +++ b/__tests__/html2/hooks/useConnectivityStatus.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useDateFormatter.en.html b/__tests__/html2/hooks/useDateFormatter.en.html index a8fd37a9d0..5616f76d71 100644 --- a/__tests__/html2/hooks/useDateFormatter.en.html +++ b/__tests__/html2/hooks/useDateFormatter.en.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useDateFormatter.yue.html b/__tests__/html2/hooks/useDateFormatter.yue.html index 1af8a6b323..0bcf3d40fe 100644 --- a/__tests__/html2/hooks/useDateFormatter.yue.html +++ b/__tests__/html2/hooks/useDateFormatter.yue.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useDictateInterims.getter.html b/__tests__/html2/hooks/useDictateInterims.getter.html index 958d21dc4f..2b554fe8e2 100644 --- a/__tests__/html2/hooks/useDictateInterims.getter.html +++ b/__tests__/html2/hooks/useDictateInterims.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useDictateInterims.setter.html b/__tests__/html2/hooks/useDictateInterims.setter.html index 90e2fcaffd..92c444a1c4 100644 --- a/__tests__/html2/hooks/useDictateInterims.setter.html +++ b/__tests__/html2/hooks/useDictateInterims.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useDisabled.getter.default.html b/__tests__/html2/hooks/useDisabled.getter.default.html index a23fd08776..e07f0579db 100644 --- a/__tests__/html2/hooks/useDisabled.getter.default.html +++ b/__tests__/html2/hooks/useDisabled.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useDisabled.getter.html b/__tests__/html2/hooks/useDisabled.getter.html index 34e4e5ee8a..5f664345e1 100644 --- a/__tests__/html2/hooks/useDisabled.getter.html +++ b/__tests__/html2/hooks/useDisabled.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useDisabled.setter.html b/__tests__/html2/hooks/useDisabled.setter.html index 3197e1c975..42d981f715 100644 --- a/__tests__/html2/hooks/useDisabled.setter.html +++ b/__tests__/html2/hooks/useDisabled.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useDismissNotification.html b/__tests__/html2/hooks/useDismissNotification.html index a3954019d7..09ba8cae79 100644 --- a/__tests__/html2/hooks/useDismissNotification.html +++ b/__tests__/html2/hooks/useDismissNotification.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useFocus.sendBox.pure.html b/__tests__/html2/hooks/useFocus.sendBox.pure.html index 5fa87851c2..739080a9ea 100644 --- a/__tests__/html2/hooks/useFocus.sendBox.pure.html +++ b/__tests__/html2/hooks/useFocus.sendBox.pure.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGrammars.getter.default.html b/__tests__/html2/hooks/useGrammars.getter.default.html index 57a86cf911..e02779c6fc 100644 --- a/__tests__/html2/hooks/useGrammars.getter.default.html +++ b/__tests__/html2/hooks/useGrammars.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGrammars.getter.html b/__tests__/html2/hooks/useGrammars.getter.html index 12484f2f53..75a91eb8de 100644 --- a/__tests__/html2/hooks/useGrammars.getter.html +++ b/__tests__/html2/hooks/useGrammars.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGrammars.setter.html b/__tests__/html2/hooks/useGrammars.setter.html index ede84880ee..0b90e5febe 100644 --- a/__tests__/html2/hooks/useGrammars.setter.html +++ b/__tests__/html2/hooks/useGrammars.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGroupTimestamp.getter.default.html b/__tests__/html2/hooks/useGroupTimestamp.getter.default.html index 59f48eb640..c6dca91ca4 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.getter.default.html +++ b/__tests__/html2/hooks/useGroupTimestamp.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGroupTimestamp.getter.false.html b/__tests__/html2/hooks/useGroupTimestamp.getter.false.html index 9353b6d366..60fb43daba 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.getter.false.html +++ b/__tests__/html2/hooks/useGroupTimestamp.getter.false.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGroupTimestamp.getter.html b/__tests__/html2/hooks/useGroupTimestamp.getter.html index 218cc26836..10919aa87e 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.getter.html +++ b/__tests__/html2/hooks/useGroupTimestamp.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useGroupTimestamp.setter.html b/__tests__/html2/hooks/useGroupTimestamp.setter.html index 44ae287e15..d1aa2800f9 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.setter.html +++ b/__tests__/html2/hooks/useGroupTimestamp.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useInjectStylesElements/withNonce.html b/__tests__/html2/hooks/useInjectStylesElements/withNonce.html index c65a5f900e..95d6797a78 100644 --- a/__tests__/html2/hooks/useInjectStylesElements/withNonce.html +++ b/__tests__/html2/hooks/useInjectStylesElements/withNonce.html @@ -6,10 +6,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js", diff --git a/__tests__/html2/hooks/useLanguage.getter.default.html b/__tests__/html2/hooks/useLanguage.getter.default.html index 32cf680ef2..ef9b1adb82 100644 --- a/__tests__/html2/hooks/useLanguage.getter.default.html +++ b/__tests__/html2/hooks/useLanguage.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLanguage.getter.speech.html b/__tests__/html2/hooks/useLanguage.getter.speech.html index 95c719de9c..11f3350e80 100644 --- a/__tests__/html2/hooks/useLanguage.getter.speech.html +++ b/__tests__/html2/hooks/useLanguage.getter.speech.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLanguage.getter.xx-YY.html b/__tests__/html2/hooks/useLanguage.getter.xx-YY.html index 9cc3214b2f..1438718de6 100644 --- a/__tests__/html2/hooks/useLanguage.getter.xx-YY.html +++ b/__tests__/html2/hooks/useLanguage.getter.xx-YY.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLanguage.getter.yue.html b/__tests__/html2/hooks/useLanguage.getter.yue.html index 0e1713e9fc..faa9d38d51 100644 --- a/__tests__/html2/hooks/useLanguage.getter.yue.html +++ b/__tests__/html2/hooks/useLanguage.getter.yue.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html b/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html index 3fd9d1baa7..47ad62e30a 100644 --- a/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html +++ b/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLanguage.setter.html b/__tests__/html2/hooks/useLanguage.setter.html index 763d8fab13..7d094ad0b0 100644 --- a/__tests__/html2/hooks/useLanguage.setter.html +++ b/__tests__/html2/hooks/useLanguage.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.default.html b/__tests__/html2/hooks/useLocalizer.default.html index ad210c9a1a..70bc9111b3 100644 --- a/__tests__/html2/hooks/useLocalizer.default.html +++ b/__tests__/html2/hooks/useLocalizer.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.nonExistent.html b/__tests__/html2/hooks/useLocalizer.nonExistent.html index 6f39455cb7..350a21d597 100644 --- a/__tests__/html2/hooks/useLocalizer.nonExistent.html +++ b/__tests__/html2/hooks/useLocalizer.nonExistent.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.overrideStrings.html b/__tests__/html2/hooks/useLocalizer.overrideStrings.html index ea672a7956..38034f2adc 100644 --- a/__tests__/html2/hooks/useLocalizer.overrideStrings.html +++ b/__tests__/html2/hooks/useLocalizer.overrideStrings.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html b/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html index d8cf281e30..62a9d9049d 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html +++ b/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.one.html b/__tests__/html2/hooks/useLocalizer.plural.one.html index ee36813041..c147d524d5 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.one.html +++ b/__tests__/html2/hooks/useLocalizer.plural.one.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html b/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html index 5e8326019d..7db5465d9d 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html +++ b/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html index a5a3e992f2..c8d4ef816e 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html index 8933144232..32d7fb4e9e 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html index 43aeecc836..dd7ef8b6af 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html index 46c1ee7677..477c41b0fd 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.plural.two.html b/__tests__/html2/hooks/useLocalizer.plural.two.html index ae5b5aef92..ee53fdf2f5 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.two.html +++ b/__tests__/html2/hooks/useLocalizer.plural.two.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html b/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html index d7690e818a..a6b11d1332 100644 --- a/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html +++ b/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.yue.html b/__tests__/html2/hooks/useLocalizer.yue.html index c7b024f121..ac2b2e2113 100644 --- a/__tests__/html2/hooks/useLocalizer.yue.html +++ b/__tests__/html2/hooks/useLocalizer.yue.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useLocalizer.yue.plural.html b/__tests__/html2/hooks/useLocalizer.yue.plural.html index bfa3b8cf9b..03687d08b3 100644 --- a/__tests__/html2/hooks/useLocalizer.yue.plural.html +++ b/__tests__/html2/hooks/useLocalizer.yue.plural.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useMarkActivityAsSpoken.html b/__tests__/html2/hooks/useMarkActivityAsSpoken.html index 741ab7b7ea..ee3528f4dd 100644 --- a/__tests__/html2/hooks/useMarkActivityAsSpoken.html +++ b/__tests__/html2/hooks/useMarkActivityAsSpoken.html @@ -10,8 +10,7 @@ "imports": { "@testduet/wait-for": "https://esm.sh/@testduet/wait-for", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useMicrophoneButtonClick.html b/__tests__/html2/hooks/useMicrophoneButtonClick.html index 21209967a1..b17c55f021 100644 --- a/__tests__/html2/hooks/useMicrophoneButtonClick.html +++ b/__tests__/html2/hooks/useMicrophoneButtonClick.html @@ -10,8 +10,7 @@ "imports": { "@testduet/wait-for": "https://esm.sh/@testduet/wait-for", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/usePerformCardAction.html b/__tests__/html2/hooks/usePerformCardAction.html index bf31373b15..12cfb7831b 100644 --- a/__tests__/html2/hooks/usePerformCardAction.html +++ b/__tests__/html2/hooks/usePerformCardAction.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/usePostActivity.html b/__tests__/html2/hooks/usePostActivity.html index d29486d2d6..7f81b0c4aa 100644 --- a/__tests__/html2/hooks/usePostActivity.html +++ b/__tests__/html2/hooks/usePostActivity.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useRelativeTimeFormatter.html b/__tests__/html2/hooks/useRelativeTimeFormatter.html index 473a83b75d..7bb2b2392d 100644 --- a/__tests__/html2/hooks/useRelativeTimeFormatter.html +++ b/__tests__/html2/hooks/useRelativeTimeFormatter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html index dda1e3c3df..f989d56e6f 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html index a478d35498..5cb76815c7 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html index 66227b007e..f63e9da749 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html index 75599e408a..e19247f3a3 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html index 6568b166c8..bca9bb8975 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html index 481b573643..ca02f4b86d 100644 --- a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html +++ b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html index 5564408277..82759d5674 100644 --- a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html +++ b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html index b59b7d8baa..38ee19edea 100644 --- a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html +++ b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useSendBoxValue.getter.html b/__tests__/html2/hooks/useSendBoxValue.getter.html index 044dac0f73..41d06f126d 100644 --- a/__tests__/html2/hooks/useSendBoxValue.getter.html +++ b/__tests__/html2/hooks/useSendBoxValue.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSendBoxValue.setter.html b/__tests__/html2/hooks/useSendBoxValue.setter.html index 3217880c71..fbff5cdf0c 100644 --- a/__tests__/html2/hooks/useSendBoxValue.setter.html +++ b/__tests__/html2/hooks/useSendBoxValue.setter.html @@ -10,8 +10,7 @@ "imports": { "@testduet/wait-for": "https://esm.sh/@testduet/wait-for", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSendFiles.html b/__tests__/html2/hooks/useSendFiles.html index 41aa80bb1f..b182f48093 100644 --- a/__tests__/html2/hooks/useSendFiles.html +++ b/__tests__/html2/hooks/useSendFiles.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSendMessage.html b/__tests__/html2/hooks/useSendMessage.html index 6ce3fba85a..13b6926eaf 100644 --- a/__tests__/html2/hooks/useSendMessage.html +++ b/__tests__/html2/hooks/useSendMessage.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSendMessageBack.html b/__tests__/html2/hooks/useSendMessageBack.html index 587805596b..65a952ed57 100644 --- a/__tests__/html2/hooks/useSendMessageBack.html +++ b/__tests__/html2/hooks/useSendMessageBack.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSendPostBack.html b/__tests__/html2/hooks/useSendPostBack.html index c4746f0168..be3b1e5226 100644 --- a/__tests__/html2/hooks/useSendPostBack.html +++ b/__tests__/html2/hooks/useSendPostBack.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSetNotification.html b/__tests__/html2/hooks/useSetNotification.html index 373db1e772..cf4eb5aa44 100644 --- a/__tests__/html2/hooks/useSetNotification.html +++ b/__tests__/html2/hooks/useSetNotification.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html index 68837f28db..02a99c53ce 100644 --- a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html +++ b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html index 86bcac4fdc..a8bbec5429 100644 --- a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html +++ b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useStartDictate.html b/__tests__/html2/hooks/useStartDictate.html index e1febc70e4..23e8c89388 100644 --- a/__tests__/html2/hooks/useStartDictate.html +++ b/__tests__/html2/hooks/useStartDictate.html @@ -10,8 +10,7 @@ "imports": { "@testduet/wait-for": "https://esm.sh/@testduet/wait-for", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useStopDictate.html b/__tests__/html2/hooks/useStopDictate.html index 789dcf22a1..9625772ac6 100644 --- a/__tests__/html2/hooks/useStopDictate.html +++ b/__tests__/html2/hooks/useStopDictate.html @@ -10,8 +10,7 @@ "imports": { "@testduet/wait-for": "https://esm.sh/@testduet/wait-for", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useStyleOptions.getter.html b/__tests__/html2/hooks/useStyleOptions.getter.html index 5713a76db1..ef4bf21a5d 100644 --- a/__tests__/html2/hooks/useStyleOptions.getter.html +++ b/__tests__/html2/hooks/useStyleOptions.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useStyleOptions.setter.html b/__tests__/html2/hooks/useStyleOptions.setter.html index 715840fa1d..bb0db7d4bd 100644 --- a/__tests__/html2/hooks/useStyleOptions.setter.html +++ b/__tests__/html2/hooks/useStyleOptions.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useStyleSet.getter.html b/__tests__/html2/hooks/useStyleSet.getter.html index b537afeb60..72d0c50411 100644 --- a/__tests__/html2/hooks/useStyleSet.getter.html +++ b/__tests__/html2/hooks/useStyleSet.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useStyleSet.setter.html b/__tests__/html2/hooks/useStyleSet.setter.html index 68ba34f31e..8ff8f45b45 100644 --- a/__tests__/html2/hooks/useStyleSet.setter.html +++ b/__tests__/html2/hooks/useStyleSet.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSubmitSendBox.html b/__tests__/html2/hooks/useSubmitSendBox.html index b150b3f1d4..7f1b72996b 100644 --- a/__tests__/html2/hooks/useSubmitSendBox.html +++ b/__tests__/html2/hooks/useSubmitSendBox.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useSuggestedActions.html b/__tests__/html2/hooks/useSuggestedActions.html index afd3cdfa39..c5a4acd217 100644 --- a/__tests__/html2/hooks/useSuggestedActions.html +++ b/__tests__/html2/hooks/useSuggestedActions.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useTextBoxValue.html b/__tests__/html2/hooks/useTextBoxValue.html index b0a69b981d..5cd6c83154 100644 --- a/__tests__/html2/hooks/useTextBoxValue.html +++ b/__tests__/html2/hooks/useTextBoxValue.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useTimeoutForSend.default.html b/__tests__/html2/hooks/useTimeoutForSend.default.html index 270c3fffe0..800ce74181 100644 --- a/__tests__/html2/hooks/useTimeoutForSend.default.html +++ b/__tests__/html2/hooks/useTimeoutForSend.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useTimeoutForSend.getter.html b/__tests__/html2/hooks/useTimeoutForSend.getter.html index 4cb25241f1..8aa2ea7e47 100644 --- a/__tests__/html2/hooks/useTimeoutForSend.getter.html +++ b/__tests__/html2/hooks/useTimeoutForSend.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useTimeoutForSend.setter.html b/__tests__/html2/hooks/useTimeoutForSend.setter.html index b691a2d685..492b073d6d 100644 --- a/__tests__/html2/hooks/useTimeoutForSend.setter.html +++ b/__tests__/html2/hooks/useTimeoutForSend.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useTrackDimension.html b/__tests__/html2/hooks/useTrackDimension.html index 746b7380b0..ad43c89e9f 100644 --- a/__tests__/html2/hooks/useTrackDimension.html +++ b/__tests__/html2/hooks/useTrackDimension.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html b/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html index cc63966724..9c40a45f85 100644 --- a/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html +++ b/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html b/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html index 1f7b724159..545deff478 100644 --- a/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html +++ b/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.debug.html b/__tests__/html2/hooks/useTrackEvent.debug.html index 3b26a8c748..ccf60129fc 100644 --- a/__tests__/html2/hooks/useTrackEvent.debug.html +++ b/__tests__/html2/hooks/useTrackEvent.debug.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.error.complex.html b/__tests__/html2/hooks/useTrackEvent.error.complex.html index 8e0190e385..13ff82e28e 100644 --- a/__tests__/html2/hooks/useTrackEvent.error.complex.html +++ b/__tests__/html2/hooks/useTrackEvent.error.complex.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.html b/__tests__/html2/hooks/useTrackEvent.html index 16b7891ad3..d7825c3ded 100644 --- a/__tests__/html2/hooks/useTrackEvent.html +++ b/__tests__/html2/hooks/useTrackEvent.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.info.html b/__tests__/html2/hooks/useTrackEvent.info.html index cb07d704ec..4d9e395919 100644 --- a/__tests__/html2/hooks/useTrackEvent.info.html +++ b/__tests__/html2/hooks/useTrackEvent.info.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html b/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html index be9fa1ddc2..b8d57a2b14 100644 --- a/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html +++ b/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.invalid.complex.html b/__tests__/html2/hooks/useTrackEvent.invalid.complex.html index 9c2284906b..1146ce9e16 100644 --- a/__tests__/html2/hooks/useTrackEvent.invalid.complex.html +++ b/__tests__/html2/hooks/useTrackEvent.invalid.complex.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.invalid.name.html b/__tests__/html2/hooks/useTrackEvent.invalid.name.html index 4b1f8da645..f9426bb517 100644 --- a/__tests__/html2/hooks/useTrackEvent.invalid.name.html +++ b/__tests__/html2/hooks/useTrackEvent.invalid.name.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackEvent.warn.numeric.html b/__tests__/html2/hooks/useTrackEvent.warn.numeric.html index fb470eba71..00c16f54c8 100644 --- a/__tests__/html2/hooks/useTrackEvent.warn.numeric.html +++ b/__tests__/html2/hooks/useTrackEvent.warn.numeric.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackException.html b/__tests__/html2/hooks/useTrackException.html index 8822fcf821..89081c0af1 100644 --- a/__tests__/html2/hooks/useTrackException.html +++ b/__tests__/html2/hooks/useTrackException.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useTrackException.nonFatal.html b/__tests__/html2/hooks/useTrackException.nonFatal.html index d3ba3fa539..87765993b7 100644 --- a/__tests__/html2/hooks/useTrackException.nonFatal.html +++ b/__tests__/html2/hooks/useTrackException.nonFatal.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/hooks/useUserID.getter.default.html b/__tests__/html2/hooks/useUserID.getter.default.html index f25809a8c4..5a109320a0 100644 --- a/__tests__/html2/hooks/useUserID.getter.default.html +++ b/__tests__/html2/hooks/useUserID.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useUserID.getter.html b/__tests__/html2/hooks/useUserID.getter.html index d7c8d14e44..293f611d2b 100644 --- a/__tests__/html2/hooks/useUserID.getter.html +++ b/__tests__/html2/hooks/useUserID.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useUserID.setter.html b/__tests__/html2/hooks/useUserID.setter.html index c4b67a566b..8e38d056c9 100644 --- a/__tests__/html2/hooks/useUserID.setter.html +++ b/__tests__/html2/hooks/useUserID.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useUsername.getter.default.html b/__tests__/html2/hooks/useUsername.getter.default.html index 2e787e7bf0..d4d5b2cfb3 100644 --- a/__tests__/html2/hooks/useUsername.getter.default.html +++ b/__tests__/html2/hooks/useUsername.getter.default.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useUsername.getter.html b/__tests__/html2/hooks/useUsername.getter.html index 88f175d49d..06d8744131 100644 --- a/__tests__/html2/hooks/useUsername.getter.html +++ b/__tests__/html2/hooks/useUsername.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useUsername.setter.html b/__tests__/html2/hooks/useUsername.setter.html index 893cf70cb7..8775d71f1e 100644 --- a/__tests__/html2/hooks/useUsername.setter.html +++ b/__tests__/html2/hooks/useUsername.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useVoiceSelector.html b/__tests__/html2/hooks/useVoiceSelector.html index ca4481bf49..a276d65d46 100644 --- a/__tests__/html2/hooks/useVoiceSelector.html +++ b/__tests__/html2/hooks/useVoiceSelector.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html index 175b0de176..c15b128739 100644 --- a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html +++ b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html index 536730e6fe..08c9d35ae8 100644 --- a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html +++ b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html b/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html index 02addfc772..714cff1122 100644 --- a/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html +++ b/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "https://esm.sh/react@18", "react-dictate-button": "https://esm.sh/react-dictate-button", diff --git a/__tests__/html2/markdown/vnext/markdownStreaming.html b/__tests__/html2/markdown/vnext/markdownStreaming.html index a742fc4cfc..b7b05c05ed 100644 --- a/__tests__/html2/markdown/vnext/markdownStreaming.html +++ b/__tests__/html2/markdown/vnext/markdownStreaming.html @@ -19,10 +19,7 @@ "@fluentui/react-provider": "/__dist__/packages/test/test-assets/out/@fluentui/react-provider.js", "@fluentui/tokens": "/__dist__/packages/test/test-assets/out/@fluentui/tokens.js", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-core": "/__dist__/packages/bundle/static/botframework-webchat-core.js", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "eventsource-parser": "https://esm.sh/eventsource-parser", diff --git a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html index 3be1a0f7d4..ecdbbe9174 100644 --- a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html +++ b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://cdn.jsdelivr.net/npm/react@18.3.1/+esm", "react-dom": "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/+esm", "react-dom/client": "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/client/+esm" diff --git a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html index 17f4374d31..831e7116bd 100644 --- a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html +++ b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://cdn.jsdelivr.net/npm/react@18.3.1/+esm", "react-dom": "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/+esm", "react-dom/client": "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/client/+esm" diff --git a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html index 3da0804c59..b2540d09d9 100644 --- a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html +++ b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://cdn.jsdelivr.net/npm/react@18.3.1/+esm", "react-dom": "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/+esm", "react-dom/client": "https://cdn.jsdelivr.net/npm/react-dom@18.3.1/client/+esm" diff --git a/__tests__/html2/simple/fatModule/esm.sh/fluentTheme.html b/__tests__/html2/simple/fatModule/esm.sh/fluentTheme.html index 6552952d5f..2e5b897b13 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/fluentTheme.html +++ b/__tests__/html2/simple/fatModule/esm.sh/fluentTheme.html @@ -17,10 +17,7 @@ "imports": { "@fluentui/react-components": "https://esm.sh/@fluentui/react-components?deps=react@18,react-dom@18&exports=FluentProvider,webLightTheme", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/simple/fatModule/esm.sh/tsx/fluentTheme.html b/__tests__/html2/simple/fatModule/esm.sh/tsx/fluentTheme.html index c636082a02..76e8b17d07 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/tsx/fluentTheme.html +++ b/__tests__/html2/simple/fatModule/esm.sh/tsx/fluentTheme.html @@ -19,10 +19,7 @@ "#test-page-object": "/test-page-object.mjs", "@fluentui/react-components": "https://esm.sh/@fluentui/react-components?deps=react@18,react-dom@18&exports=FluentProvider,createDarkTheme,webLightTheme", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", diff --git a/__tests__/html2/simple/fatModule/esm.sh/tsx/simple.html b/__tests__/html2/simple/fatModule/esm.sh/tsx/simple.html index 09c6665160..b796180880 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/tsx/simple.html +++ b/__tests__/html2/simple/fatModule/esm.sh/tsx/simple.html @@ -11,8 +11,7 @@ "#test-harness": "/test-harness.mjs", "#test-page-object": "/test-page-object.mjs", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html b/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html index 55fc6be33c..be0315d053 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html +++ b/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -11,8 +11,7 @@ "#test-harness": "/test-harness.mjs", "#test-page-object": "/test-page-object.mjs", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/simple/fatModule/fluentTheme.html b/__tests__/html2/simple/fatModule/fluentTheme.html index 4288a2e29a..6238de1235 100644 --- a/__tests__/html2/simple/fatModule/fluentTheme.html +++ b/__tests__/html2/simple/fatModule/fluentTheme.html @@ -18,11 +18,7 @@ "imports": { "@fluentui/react-components": "https://esm.sh/@fluentui/react-components?deps=react@18.3.1,react-dom@18.3.1&exports=FluentProvider,createDarkTheme,webLightTheme", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", - "botframework-webchat/schema": "/__dist__/packages/bundle/static/botframework-webchat/schema.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js", diff --git a/__tests__/html2/simple/fatModule/simple.runHook.html b/__tests__/html2/simple/fatModule/simple.runHook.html index 5ef69db4bf..0a3466d5ad 100644 --- a/__tests__/html2/simple/fatModule/simple.runHook.html +++ b/__tests__/html2/simple/fatModule/simple.runHook.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html index 4572e40369..fa102a4f9f 100644 --- a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html +++ b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html index c6b8622e1e..84904c72b4 100644 --- a/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html +++ b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/themeProvider/override.html b/__tests__/html2/themeProvider/override.html index 1b83ac515c..a7b84ed453 100644 --- a/__tests__/html2/themeProvider/override.html +++ b/__tests__/html2/themeProvider/override.html @@ -18,10 +18,7 @@ "imports": { "@fluentui/react-components": "https://esm.sh/@fluentui/react-components?deps=react@18.3.1,react-dom@18.3.1&exports=FluentProvider,createDarkTheme,webLightTheme", "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/decorator": "/__dist__/packages/bundle/static/botframework-webchat/decorator.js", - "botframework-webchat/hook": "/__dist__/packages/bundle/static/botframework-webchat/hook.js", - "botframework-webchat/internal": "/__dist__/packages/bundle/static/botframework-webchat/internal.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "botframework-webchat-fluent-theme": "/__dist__/packages/fluent-theme/static/botframework-webchat-fluent-theme.js", "jest-mock": "https://esm.sh/jest-mock", "react": "/__dist__/packages/bundle/static/react.js", diff --git a/docs/CAPABILITIES.md b/docs/CAPABILITIES.md index af0b672d9f..9d656fc1f7 100644 --- a/docs/CAPABILITIES.md +++ b/docs/CAPABILITIES.md @@ -7,7 +7,7 @@ Web Chat supports dynamic capability discovery from adapters. Capabilities allow Use the `useCapabilities` hook with a selector to access specific capabilities: ```js -import { useCapabilities } from 'botframework-webchat/hook'; +import { useCapabilities } from 'botframework-webchat/hook.js'; // Get voice configuration const voiceConfig = useCapabilities(caps => caps.voiceConfiguration); diff --git a/docs/MIDDLEWARE.md b/docs/MIDDLEWARE.md index 906c047921..e0e9fc6a20 100644 --- a/docs/MIDDLEWARE.md +++ b/docs/MIDDLEWARE.md @@ -87,7 +87,7 @@ import { activityComponent, createActivityPolymiddleware, type ActivityPolymiddlewareProps -} from 'botframework-webchat/middleware'; +} from 'botframework-webchat/middleware.js'; import React, { memo } from 'react'; import { render } from 'react-dom'; @@ -138,7 +138,7 @@ import { createActivityPolymiddleware, type ActivityPolymiddlewareProps, type ActivityPolymiddlewareRenderer -} from 'botframework-webchat/middleware'; +} from 'botframework-webchat/middleware.js'; import React, { Fragment, memo, useMemo } from 'react'; import { render } from 'react-dom'; diff --git a/packages/api-graph/src/private/GraphProvider.tsx b/packages/api-graph/src/private/GraphProvider.tsx index 7f23dc060e..5cf5a8975b 100644 --- a/packages/api-graph/src/private/GraphProvider.tsx +++ b/packages/api-graph/src/private/GraphProvider.tsx @@ -1,7 +1,7 @@ import type { DirectLineActivityNode } from '@msinternal/botframework-webchat-core-graph'; import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { createStore, WebChatActivity } from 'botframework-webchat-core'; -import { createGraphFromStore, isOfType, type GraphSubscriber, type Identifier } from 'botframework-webchat-core/graph'; +import { createGraphFromStore, isOfType, type GraphSubscriber, type Identifier } from 'botframework-webchat-core/graph.js'; import React, { memo, useEffect, useMemo, useState } from 'react'; import { custom, function_, object, optional, parse, pipe, readonly, safeParse, type InferInput } from 'valibot'; diff --git a/packages/api/package.json b/packages/api/package.json index 1d024cdd3b..65da092ad3 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -16,6 +16,16 @@ } }, "./decorator": { + "import": { + "types": "./dist/botframework-webchat-api.deprecated.decorator.d.mts", + "default": "./dist/botframework-webchat-api.deprecated.decorator.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-api.deprecated.decorator.d.ts", + "default": "./dist/botframework-webchat-api.deprecated.decorator.js" + } + }, + "./decorator.js": { "import": { "types": "./dist/botframework-webchat-api.decorator.d.mts", "default": "./dist/botframework-webchat-api.decorator.mjs" @@ -26,6 +36,16 @@ } }, "./hook": { + "import": { + "types": "./dist/botframework-webchat-api.deprecated.hook.d.mts", + "default": "./dist/botframework-webchat-api.deprecated.hook.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-api.deprecated.hook.d.ts", + "default": "./dist/botframework-webchat-api.deprecated.hook.js" + } + }, + "./hook.js": { "import": { "types": "./dist/botframework-webchat-api.hook.d.mts", "default": "./dist/botframework-webchat-api.hook.mjs" @@ -36,6 +56,16 @@ } }, "./internal": { + "import": { + "types": "./dist/botframework-webchat-api.deprecated.internal.d.mts", + "default": "./dist/botframework-webchat-api.deprecated.internal.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-api.deprecated.internal.d.ts", + "default": "./dist/botframework-webchat-api.deprecated.internal.js" + } + }, + "./internal.js": { "import": { "types": "./dist/botframework-webchat-api.internal.d.mts", "default": "./dist/botframework-webchat-api.internal.mjs" @@ -46,6 +76,16 @@ } }, "./middleware": { + "import": { + "types": "./dist/botframework-webchat-api.deprecated.middleware.d.mts", + "default": "./dist/botframework-webchat-api.deprecated.middleware.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-api.deprecated.middleware.d.ts", + "default": "./dist/botframework-webchat-api.deprecated.middleware.js" + } + }, + "./middleware.js": { "import": { "types": "./dist/botframework-webchat-api.middleware.d.mts", "default": "./dist/botframework-webchat-api.middleware.mjs" diff --git a/packages/api/src/boot/deprecated/decorator.ts b/packages/api/src/boot/deprecated/decorator.ts new file mode 100644 index 0000000000..72b09ad1ed --- /dev/null +++ b/packages/api/src/boot/deprecated/decorator.ts @@ -0,0 +1,5 @@ +export * from '../decorator'; + +console.warn( + 'Import from "botframework-webchat-api/decorator" is being deprecated, please import from "botframework-webchat-api/decorator.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/api/src/boot/deprecated/graph.ts b/packages/api/src/boot/deprecated/graph.ts new file mode 100644 index 0000000000..643a02e1d6 --- /dev/null +++ b/packages/api/src/boot/deprecated/graph.ts @@ -0,0 +1,5 @@ +export * from '../graph'; + +console.warn( + 'Import from "botframework-webchat-api/graph" is deprecated, please import from "botframework-webchat-api/graph.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/api/src/boot/deprecated/hook.ts b/packages/api/src/boot/deprecated/hook.ts new file mode 100644 index 0000000000..f4d410bd5b --- /dev/null +++ b/packages/api/src/boot/deprecated/hook.ts @@ -0,0 +1,5 @@ +export * from '../hook'; + +console.warn( + 'Import from "botframework-webchat-api/hook" is deprecated, please import from "botframework-webchat-api/hook.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/api/src/boot/deprecated/internal.ts b/packages/api/src/boot/deprecated/internal.ts new file mode 100644 index 0000000000..f4bdafefd4 --- /dev/null +++ b/packages/api/src/boot/deprecated/internal.ts @@ -0,0 +1,5 @@ +export * from '../internal'; + +console.warn( + 'Import from "botframework-webchat-api/internal" is deprecated, please import from "botframework-webchat-api/internal.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/api/src/boot/deprecated/middleware.ts b/packages/api/src/boot/deprecated/middleware.ts new file mode 100644 index 0000000000..ad158792ee --- /dev/null +++ b/packages/api/src/boot/deprecated/middleware.ts @@ -0,0 +1,5 @@ +export * from '../middleware'; + +console.warn( + 'Import from "botframework-webchat-api/middleware" is deprecated, please import from "botframework-webchat-api/middleware.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/api/src/providers/ActivitySendStatus/ActivitySendStatusComposer.tsx b/packages/api/src/providers/ActivitySendStatus/ActivitySendStatusComposer.tsx index 8bcbad8148..aa8de37675 100644 --- a/packages/api/src/providers/ActivitySendStatus/ActivitySendStatusComposer.tsx +++ b/packages/api/src/providers/ActivitySendStatus/ActivitySendStatusComposer.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useMemo, useRef, type ReactNode } from 'react'; -import { querySendStatusFromOutgoingActivity } from 'botframework-webchat-core/activity'; +import { querySendStatusFromOutgoingActivity } from 'botframework-webchat-core/activity.js'; import { useActivities, usePonyfill } from '../../hooks/index'; import useForceRender from '../../hooks/internal/useForceRender'; diff --git a/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx b/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx index 6dda9f0e2d..eeb986414d 100644 --- a/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx +++ b/packages/api/src/providers/ActivityTyping/ActivityTypingComposer.tsx @@ -1,5 +1,5 @@ import { getActivityLivestreamingMetadata, type WebChatActivity } from 'botframework-webchat-core'; -import { queryReceivedAtFromActivity } from 'botframework-webchat-core/activity'; +import { queryReceivedAtFromActivity } from 'botframework-webchat-core/activity.js'; import { iteratorFind } from 'iter-fest'; import React, { memo, useCallback, useMemo, type ReactNode } from 'react'; diff --git a/packages/api/src/providers/ActivityTyping/private/useReduceActivities.spec.tsx b/packages/api/src/providers/ActivityTyping/private/useReduceActivities.spec.tsx index 977822826e..949e96260b 100644 --- a/packages/api/src/providers/ActivityTyping/private/useReduceActivities.spec.tsx +++ b/packages/api/src/providers/ActivityTyping/private/useReduceActivities.spec.tsx @@ -4,7 +4,7 @@ import { render, type RenderResult } from '@testing-library/react'; import type { WebChatActivity } from 'botframework-webchat-core'; -import type { LocalId } from 'botframework-webchat-core/activity'; +import type { LocalId } from 'botframework-webchat-core/activity.js'; import React, { type ComponentType } from 'react'; import { type useActivities as UseActivitiesType } from '../../../hooks'; import type UseReduceActivitiesType from './useReduceActivities'; diff --git a/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts b/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts index 9d1ad3de62..94bc841c70 100644 --- a/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts +++ b/packages/api/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts @@ -1,8 +1,8 @@ import { getOrgSchemaMessage, type GlobalScopePonyfill, type WebChatActivity } from 'botframework-webchat-core'; -import { IdentifierSchema } from 'botframework-webchat-core/graph'; +import { IdentifierSchema } from 'botframework-webchat-core/graph.js'; import { safeParse } from 'valibot'; -import { querySendStatusFromOutgoingActivity } from 'botframework-webchat-core/activity'; +import { querySendStatusFromOutgoingActivity } from 'botframework-webchat-core/activity.js'; import type GroupActivitiesMiddleware from '../../../types/GroupActivitiesMiddleware'; import { type SendStatus } from '../../../types/SendStatus'; diff --git a/packages/api/tsup.config.ts b/packages/api/tsup.config.ts index ef99ac1eed..9b34328dfe 100644 --- a/packages/api/tsup.config.ts +++ b/packages/api/tsup.config.ts @@ -10,7 +10,13 @@ const commonConfig = applyConfig(config => ({ 'botframework-webchat-api.graph': './src/boot/graph.ts', 'botframework-webchat-api.hook': './src/boot/hook.ts', 'botframework-webchat-api.internal': './src/boot/internal.ts', - 'botframework-webchat-api.middleware': './src/boot/middleware.ts' + 'botframework-webchat-api.middleware': './src/boot/middleware.ts', + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'botframework-webchat-api.deprecated.decorator': './src/boot/deprecated/decorator.ts', + 'botframework-webchat-api.deprecated.graph': './src/boot/deprecated/graph.ts', + 'botframework-webchat-api.deprecated.hook': './src/boot/deprecated/hook.ts', + 'botframework-webchat-api.deprecated.internal': './src/boot/deprecated/internal.ts', + 'botframework-webchat-api.deprecated.middleware': './src/boot/deprecated/middleware.ts' } })); diff --git a/packages/bundle/esbuild.static.mjs b/packages/bundle/esbuild.static.mjs index 22126b7360..c0d03bc646 100644 --- a/packages/bundle/esbuild.static.mjs +++ b/packages/bundle/esbuild.static.mjs @@ -148,7 +148,14 @@ const IGNORED_OWN_PACKAGES = [ } for (const key of getKeysRecursive(packageJson.exports)) { - key.startsWith('.') && allOwnExports.add(`${packageJson.name}${key.slice(1)}`); + if (key.startsWith('.')) { + if (key === '.') { + allOwnExports.add(`${packageJson.name}`); + } else if (key.endsWith('.js')) { + // ./filename.js -> /filename + allOwnExports.add(`${packageJson.name}${key.slice(1, -3)}`); + } + } } } diff --git a/packages/bundle/package.json b/packages/bundle/package.json index 726b81c89c..d3c4d104b8 100644 --- a/packages/bundle/package.json +++ b/packages/bundle/package.json @@ -16,6 +16,16 @@ } }, "./component": { + "import": { + "types": "./dist/botframework-webchat.deprecated.component.d.mts", + "default": "./dist/botframework-webchat.deprecated.component.mjs" + }, + "require": { + "types": "./dist/botframework-webchat.deprecated.component.d.ts", + "default": "./dist/botframework-webchat.deprecated.component.js" + } + }, + "./component.js": { "import": { "types": "./dist/botframework-webchat.component.d.mts", "default": "./dist/botframework-webchat.component.mjs" @@ -26,6 +36,16 @@ } }, "./decorator": { + "import": { + "types": "./dist/botframework-webchat.deprecated.decorator.d.mts", + "default": "./dist/botframework-webchat.deprecated.decorator.mjs" + }, + "require": { + "types": "./dist/botframework-webchat.deprecated.decorator.d.ts", + "default": "./dist/botframework-webchat.deprecated.decorator.js" + } + }, + "./decorator.js": { "import": { "types": "./dist/botframework-webchat.decorator.d.mts", "default": "./dist/botframework-webchat.decorator.mjs" @@ -36,6 +56,16 @@ } }, "./hook": { + "import": { + "types": "./dist/botframework-webchat.deprecated.hook.d.mts", + "default": "./dist/botframework-webchat.deprecated.hook.mjs" + }, + "require": { + "types": "./dist/botframework-webchat.deprecated.hook.d.ts", + "default": "./dist/botframework-webchat.deprecated.hook.js" + } + }, + "./hook.js": { "import": { "types": "./dist/botframework-webchat.hook.d.mts", "default": "./dist/botframework-webchat.hook.mjs" @@ -46,6 +76,16 @@ } }, "./internal": { + "import": { + "types": "./dist/botframework-webchat.deprecated.internal.d.mts", + "default": "./dist/botframework-webchat.deprecated.internal.mjs" + }, + "require": { + "types": "./dist/botframework-webchat.deprecated.internal.d.ts", + "default": "./dist/botframework-webchat.deprecated.internal.js" + } + }, + "./internal.js": { "import": { "types": "./dist/botframework-webchat.internal.d.mts", "default": "./dist/botframework-webchat.internal.mjs" @@ -56,6 +96,16 @@ } }, "./middleware": { + "import": { + "types": "./dist/botframework-webchat.deprecated.middleware.d.mts", + "default": "./dist/botframework-webchat.deprecated.middleware.mjs" + }, + "require": { + "types": "./dist/botframework-webchat.deprecated.middleware.d.ts", + "default": "./dist/botframework-webchat.deprecated.middleware.js" + } + }, + "./middleware.js": { "import": { "types": "./dist/botframework-webchat.middleware.d.mts", "default": "./dist/botframework-webchat.middleware.mjs" @@ -65,7 +115,7 @@ "default": "./dist/botframework-webchat.middleware.js" } }, - "./schema": { + "./schema.js": { "import": { "types": "./dist/botframework-webchat.schema.d.mts", "default": "./dist/botframework-webchat.schema.mjs" diff --git a/packages/bundle/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx b/packages/bundle/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx index 8cc7967c5c..866c954677 100644 --- a/packages/bundle/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx +++ b/packages/bundle/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx @@ -3,7 +3,7 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import { type Action as AdaptiveCardAction, type OpenUrlAction, type SubmitAction } from 'adaptivecards'; -import { ErrorBoxPolymiddlewareProxy } from 'botframework-webchat-api/middleware'; +import { ErrorBoxPolymiddlewareProxy } from 'botframework-webchat-api/middleware.js'; import { getTabIndex, hooks } from 'botframework-webchat-component'; import { type DirectLineCardAction } from 'botframework-webchat-core'; import React, { diff --git a/packages/bundle/src/boot/actual/component/minimal.ts b/packages/bundle/src/boot/actual/component/minimal.ts index 23abbd7585..ceadf00b3b 100644 --- a/packages/bundle/src/boot/actual/component/minimal.ts +++ b/packages/bundle/src/boot/actual/component/minimal.ts @@ -35,4 +35,4 @@ export { type BasicWebChatProps, type ComposerProps, type ReactWebChatProps -} from 'botframework-webchat-component/component'; +} from 'botframework-webchat-component/component.js'; diff --git a/packages/bundle/src/boot/actual/decorator.ts b/packages/bundle/src/boot/actual/decorator.ts index f5a3ea2854..7052e86704 100644 --- a/packages/bundle/src/boot/actual/decorator.ts +++ b/packages/bundle/src/boot/actual/decorator.ts @@ -9,5 +9,5 @@ export { type ActivityBorderDecoratorProps, type DecoratorMiddleware, type InferDecoratorRequest -} from 'botframework-webchat-api/decorator'; -export { BorderFlair, BorderLoader, WebChatDecorator } from 'botframework-webchat-component/decorator'; +} from 'botframework-webchat-api/decorator.js'; +export { BorderFlair, BorderLoader, WebChatDecorator } from 'botframework-webchat-component/decorator.js'; diff --git a/packages/bundle/src/boot/actual/hook/minimal.ts b/packages/bundle/src/boot/actual/hook/minimal.ts index 5b7e344151..7716ddba9b 100644 --- a/packages/bundle/src/boot/actual/hook/minimal.ts +++ b/packages/bundle/src/boot/actual/hook/minimal.ts @@ -101,4 +101,4 @@ export { useVoiceState, useWebSpeechPonyfill, type SendBoxFocusOptions -} from 'botframework-webchat-component/hook'; +} from 'botframework-webchat-component/hook.js'; diff --git a/packages/bundle/src/boot/actual/internal.ts b/packages/bundle/src/boot/actual/internal.ts index 5949642426..4f69ec34e2 100644 --- a/packages/bundle/src/boot/actual/internal.ts +++ b/packages/bundle/src/boot/actual/internal.ts @@ -4,7 +4,7 @@ export { type ActivityStatusMiddleware, type TypingIndicatorMiddleware } from 'botframework-webchat-api'; -export { usePostVoiceActivity, useShouldShowMicrophoneButton } from 'botframework-webchat-api/internal'; +export { usePostVoiceActivity, useShouldShowMicrophoneButton } from 'botframework-webchat-api/internal.js'; export { CodeHighlighterComposer, createIconComponent, @@ -17,7 +17,7 @@ export { useCodeHighlighter, useLiveRegion, type HighlightCodeFn -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; export { getOrgSchemaMessage, getVoiceActivityRole, diff --git a/packages/bundle/src/boot/actual/middleware.ts b/packages/bundle/src/boot/actual/middleware.ts index 39662aec03..c839139d1f 100644 --- a/packages/bundle/src/boot/actual/middleware.ts +++ b/packages/bundle/src/boot/actual/middleware.ts @@ -11,9 +11,9 @@ export { type ActivityPolymiddlewareRenderer, type ActivityPolymiddlewareRequest, type Polymiddleware -} from 'botframework-webchat-api/middleware'; +} from 'botframework-webchat-api/middleware.js'; -export { createActivityPolymiddlewareFromLegacy } from 'botframework-webchat-api/middleware'; +export { createActivityPolymiddlewareFromLegacy } from 'botframework-webchat-api/middleware.js'; export { createErrorBoxPolymiddleware, @@ -27,7 +27,7 @@ export { type ErrorBoxPolymiddlewareProxyProps, type ErrorBoxPolymiddlewareRenderer, type ErrorBoxPolymiddlewareRequest -} from 'botframework-webchat-api/middleware'; +} from 'botframework-webchat-api/middleware.js'; export { avatarComponent, @@ -41,6 +41,6 @@ export { type AvatarPolymiddlewareProxyProps, type AvatarPolymiddlewareRenderer, type AvatarPolymiddlewareRequest -} from 'botframework-webchat-api/middleware'; +} from 'botframework-webchat-api/middleware.js'; -export { createAvatarPolymiddlewareFromLegacy } from 'botframework-webchat-api/middleware'; +export { createAvatarPolymiddlewareFromLegacy } from 'botframework-webchat-api/middleware.js'; diff --git a/packages/bundle/src/boot/exports/deprecated/component.ts b/packages/bundle/src/boot/exports/deprecated/component.ts new file mode 100644 index 0000000000..27960fa7bb --- /dev/null +++ b/packages/bundle/src/boot/exports/deprecated/component.ts @@ -0,0 +1,5 @@ +export * from '../component'; + +console.warn( + 'Import from "botframework-webchat/component" is deprecated, please import from "botframework-webchat/component.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/bundle/src/boot/exports/deprecated/decorator.ts b/packages/bundle/src/boot/exports/deprecated/decorator.ts new file mode 100644 index 0000000000..dc98f55704 --- /dev/null +++ b/packages/bundle/src/boot/exports/deprecated/decorator.ts @@ -0,0 +1,5 @@ +export * from '../decorator'; + +console.warn( + 'Import from "botframework-webchat/decorator" is deprecated, please import from "botframework-webchat/decorator.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/bundle/src/boot/exports/deprecated/hook.ts b/packages/bundle/src/boot/exports/deprecated/hook.ts new file mode 100644 index 0000000000..fbef585f2f --- /dev/null +++ b/packages/bundle/src/boot/exports/deprecated/hook.ts @@ -0,0 +1,5 @@ +export * from '../hook'; + +console.warn( + 'Import from "botframework-webchat/hook" is deprecated, please import from "botframework-webchat/hook.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/bundle/src/boot/exports/deprecated/internal.ts b/packages/bundle/src/boot/exports/deprecated/internal.ts new file mode 100644 index 0000000000..346b5be04b --- /dev/null +++ b/packages/bundle/src/boot/exports/deprecated/internal.ts @@ -0,0 +1,5 @@ +export * from '../internal'; + +console.warn( + 'Import from "botframework-webchat/internal" is deprecated, please import from "botframework-webchat/internal.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/bundle/src/boot/exports/deprecated/middleware.ts b/packages/bundle/src/boot/exports/deprecated/middleware.ts new file mode 100644 index 0000000000..6fd569d069 --- /dev/null +++ b/packages/bundle/src/boot/exports/deprecated/middleware.ts @@ -0,0 +1,5 @@ +export * from '../middleware'; + +console.warn( + 'Import from "botframework-webchat/middleware" is deprecated, please import from "botframework-webchat/middleware.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/bundle/src/boot/exports/deprecated/minimal.ts b/packages/bundle/src/boot/exports/deprecated/minimal.ts new file mode 100644 index 0000000000..8b291a4a98 --- /dev/null +++ b/packages/bundle/src/boot/exports/deprecated/minimal.ts @@ -0,0 +1,5 @@ +export * from '../minimal'; + +console.warn( + 'Import from "botframework-webchat/minimal" is deprecated, please import from "botframework-webchat/minimal.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/bundle/src/codeHighlighter/ShikiComposer.tsx b/packages/bundle/src/codeHighlighter/ShikiComposer.tsx index 4ddad77b7f..ad0bb7fb86 100644 --- a/packages/bundle/src/codeHighlighter/ShikiComposer.tsx +++ b/packages/bundle/src/codeHighlighter/ShikiComposer.tsx @@ -1,4 +1,4 @@ -import { CodeHighlighterComposer, type HighlightCodeFn } from 'botframework-webchat-component/internal'; +import { CodeHighlighterComposer, type HighlightCodeFn } from 'botframework-webchat-component/internal.js'; import React, { memo, ReactNode, useEffect, useState } from 'react'; import { type HighlighterCore } from 'shiki'; diff --git a/packages/bundle/src/markdown/middleware/createSanitizeMiddleware.ts b/packages/bundle/src/markdown/middleware/createSanitizeMiddleware.ts index 2e7a5b6e7b..dcfe7a7b46 100644 --- a/packages/bundle/src/markdown/middleware/createSanitizeMiddleware.ts +++ b/packages/bundle/src/markdown/middleware/createSanitizeMiddleware.ts @@ -2,7 +2,7 @@ import { type HTMLContentTransformMiddleware } from 'botframework-webchat-compon import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import sanitizeHTML from 'sanitize-html'; const BASE_SANITIZE_HTML_OPTIONS = Object.freeze({ diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.ariaLabel.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.ariaLabel.spec.ts index 9b5c328ecf..efcc44f596 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.ariaLabel.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.ariaLabel.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.asButton.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.asButton.spec.ts index 41d13c0ad3..4e467dddd3 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.asButton.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.asButton.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.className.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.className.spec.ts index 4ff3762d4c..0d5893e61f 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.className.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.className.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.iconClassName.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.iconClassName.spec.ts index f0da4da2cc..38d1d3bd3a 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.iconClassName.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.iconClassName.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.rel.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.rel.spec.ts index e29e3a878d..aa6c9cc230 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.rel.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.rel.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.selector.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.selector.spec.ts index 356c76f0fd..121ee6f62e 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.selector.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.selector.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.target.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.target.spec.ts index 980a124f53..ed1eec252f 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.target.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.target.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.title.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.title.spec.ts index 602791cf11..eeeff6ce0c 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.title.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.title.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/private/betterLinkDocumentMod.wrapZeroWidthSpace.spec.ts b/packages/bundle/src/markdown/private/betterLinkDocumentMod.wrapZeroWidthSpace.spec.ts index 9e224faee7..08d4c6b6a1 100644 --- a/packages/bundle/src/markdown/private/betterLinkDocumentMod.wrapZeroWidthSpace.spec.ts +++ b/packages/bundle/src/markdown/private/betterLinkDocumentMod.wrapZeroWidthSpace.spec.ts @@ -4,7 +4,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import { micromark } from 'micromark'; import betterLinkDocumentMod, { type BetterLinkDocumentModDecoration } from './betterLinkDocumentMod'; diff --git a/packages/bundle/src/markdown/renderMarkdown.ts b/packages/bundle/src/markdown/renderMarkdown.ts index b23a3bba46..e6586c9b12 100644 --- a/packages/bundle/src/markdown/renderMarkdown.ts +++ b/packages/bundle/src/markdown/renderMarkdown.ts @@ -2,7 +2,7 @@ import { parseDocumentFragmentFromString, serializeDocumentFragmentIntoString, type HighlightCodeFn -} from 'botframework-webchat-component/internal'; +} from 'botframework-webchat-component/internal.js'; import katex from 'katex'; import { micromark } from 'micromark'; import { gfm, gfmHtml } from 'micromark-extension-gfm'; diff --git a/packages/bundle/src/stylesheet/BundleStylesheet.tsx b/packages/bundle/src/stylesheet/BundleStylesheet.tsx index 86693c5bd2..5f82e8ab52 100644 --- a/packages/bundle/src/stylesheet/BundleStylesheet.tsx +++ b/packages/bundle/src/stylesheet/BundleStylesheet.tsx @@ -1,7 +1,7 @@ // TODO: [P2] This component can be replaced by `bindProps`. import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; -import { InjectStyleElements, injectStyleElementsPropsSchema } from 'botframework-webchat-component/internal'; -import { useStyleOptions } from 'botframework-webchat-component/hook'; +import { InjectStyleElements, injectStyleElementsPropsSchema } from 'botframework-webchat-component/internal.js'; +import { useStyleOptions } from 'botframework-webchat-component/hook.js'; import React, { memo, type FunctionComponent } from 'react'; import { never, object, optional, pipe, readonly, string, undefinedable, type InferInput } from 'valibot'; diff --git a/packages/bundle/tsup.config.ts b/packages/bundle/tsup.config.ts index 307d6ed5e7..e74cd1df4b 100644 --- a/packages/bundle/tsup.config.ts +++ b/packages/bundle/tsup.config.ts @@ -27,7 +27,13 @@ const commonConfig = applyConfig(config => ({ 'botframework-webchat.hook': './src/boot/exports/hook.ts', 'botframework-webchat.internal': './src/boot/exports/internal.ts', 'botframework-webchat.middleware': './src/boot/exports/middleware.ts', - 'botframework-webchat.schema': './src/boot/exports/schema.ts' + 'botframework-webchat.schema': './src/boot/exports/schema.ts', + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'botframework-webchat.deprecated.component': './src/boot/exports/deprecated/component.ts', + 'botframework-webchat.deprecated.decorator': './src/boot/exports/deprecated/decorator.ts', + 'botframework-webchat.deprecated.hook': './src/boot/exports/deprecated/hook.ts', + 'botframework-webchat.deprecated.internal': './src/boot/exports/deprecated/internal.ts', + 'botframework-webchat.deprecated.middleware': './src/boot/exports/deprecated/middleware.ts' }, env: { ...config.env, @@ -53,7 +59,11 @@ const commonConfig = applyConfig(config => ({ esbuildPlugins: [ ...(config.esbuildPlugins ?? []), injectCSSPlugin({ - ignoreCSSEntries: ['dist/botframework-webchat.component.css'], + ignoreCSSEntries: [ + 'dist/botframework-webchat.component.css', + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'dist/botframework-webchat.deprecated.component.css' + ], stylesPlaceholder: bundleStyleContentPlaceholder }) ] diff --git a/packages/component/package.json b/packages/component/package.json index 67f5ad0fa1..2b44b96fc8 100644 --- a/packages/component/package.json +++ b/packages/component/package.json @@ -16,6 +16,16 @@ } }, "./component": { + "import": { + "types": "./dist/botframework-webchat-component.deprecated.component.d.mts", + "default": "./dist/botframework-webchat-component.deprecated.component.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-component.deprecated.component.d.ts", + "default": "./dist/botframework-webchat-component.deprecated.component.js" + } + }, + "./component.js": { "import": { "types": "./dist/botframework-webchat-component.component.d.mts", "default": "./dist/botframework-webchat-component.component.mjs" @@ -26,6 +36,16 @@ } }, "./decorator": { + "import": { + "types": "./dist/botframework-webchat-component.deprecated.decorator.d.mts", + "default": "./dist/botframework-webchat-component.deprecated.decorator.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-component.deprecated.decorator.d.ts", + "default": "./dist/botframework-webchat-component.deprecated.decorator.js" + } + }, + "./decorator.js": { "import": { "types": "./dist/botframework-webchat-component.decorator.d.mts", "default": "./dist/botframework-webchat-component.decorator.mjs" @@ -36,6 +56,16 @@ } }, "./hook": { + "import": { + "types": "./dist/botframework-webchat-component.deprecated.hook.d.mts", + "default": "./dist/botframework-webchat-component.deprecated.hook.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-component.deprecated.hook.d.ts", + "default": "./dist/botframework-webchat-component.deprecated.hook.js" + } + }, + "./hook.js": { "import": { "types": "./dist/botframework-webchat-component.hook.d.mts", "default": "./dist/botframework-webchat-component.hook.mjs" @@ -46,6 +76,16 @@ } }, "./internal": { + "import": { + "types": "./dist/botframework-webchat-component.deprecated.internal.d.mts", + "default": "./dist/botframework-webchat-component.deprecated.internal.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-component.deprecated.internal.d.ts", + "default": "./dist/botframework-webchat-component.deprecated.internal.js" + } + }, + "./internal.js": { "import": { "types": "./dist/botframework-webchat-component.internal.d.mts", "default": "./dist/botframework-webchat-component.internal.mjs" diff --git a/packages/component/src/Activity/StackedLayout.tsx b/packages/component/src/Activity/StackedLayout.tsx index edb5865e4d..e5219be34d 100644 --- a/packages/component/src/Activity/StackedLayout.tsx +++ b/packages/component/src/Activity/StackedLayout.tsx @@ -3,7 +3,7 @@ import { useStyles } from '@msinternal/botframework-webchat-styles/react'; import type { RenderAttachment } from 'botframework-webchat-api'; import { hooks } from 'botframework-webchat-api'; -import { ActivityBorderDecorator } from 'botframework-webchat-api/decorator'; +import { ActivityBorderDecorator } from 'botframework-webchat-api/decorator.js'; import { getActivityLivestreamingMetadata, getOrgSchemaMessage, diff --git a/packages/component/src/ActivityDebug/RestrictedActivityDebugAPI.ts b/packages/component/src/ActivityDebug/RestrictedActivityDebugAPI.ts index cf86dda36a..bcea7f5614 100644 --- a/packages/component/src/ActivityDebug/RestrictedActivityDebugAPI.ts +++ b/packages/component/src/ActivityDebug/RestrictedActivityDebugAPI.ts @@ -1,4 +1,4 @@ -import { RestrictedDebugAPI } from 'botframework-webchat-core/internal'; +import { RestrictedDebugAPI } from 'botframework-webchat-core/internal.js'; import type { ArrayElement } from 'type-fest'; const BREAKPOINT_NAMES = ['render'] as const; diff --git a/packages/component/src/BuiltInDecorator.tsx b/packages/component/src/BuiltInDecorator.tsx index cc9c230317..a9ca2402ab 100644 --- a/packages/component/src/BuiltInDecorator.tsx +++ b/packages/component/src/BuiltInDecorator.tsx @@ -1,4 +1,4 @@ -import { LowPriorityDecoratorComposer } from 'botframework-webchat-api/internal'; +import { LowPriorityDecoratorComposer } from 'botframework-webchat-api/internal.js'; import React, { memo, type ReactNode } from 'react'; import createDefaultActivityGroupingDecoratorMiddleware from './Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware'; diff --git a/packages/component/src/Composer.tsx b/packages/component/src/Composer.tsx index 3495d8af33..23a3bd7f21 100644 --- a/packages/component/src/Composer.tsx +++ b/packages/component/src/Composer.tsx @@ -20,9 +20,9 @@ import { type ToastMiddleware, type TypingIndicatorMiddleware } from 'botframework-webchat-api'; -import { DecoratorComposer, type DecoratorMiddleware } from 'botframework-webchat-api/decorator'; -import { type LegacyActivityMiddleware, type Polymiddleware } from 'botframework-webchat-api/middleware'; -import { StoreDebugAPIRegistry, type StoreDebugAPI } from 'botframework-webchat-core/internal'; +import { DecoratorComposer, type DecoratorMiddleware } from 'botframework-webchat-api/decorator.js'; +import { type LegacyActivityMiddleware, type Polymiddleware } from 'botframework-webchat-api/middleware.js'; +import { StoreDebugAPIRegistry, type StoreDebugAPI } from 'botframework-webchat-core/internal.js'; import classNames from 'classnames'; import MarkdownIt from 'markdown-it'; import PropTypes from 'prop-types'; diff --git a/packages/component/src/Dictation.js b/packages/component/src/Dictation.js index 48a1efecd4..3c203e3a4c 100644 --- a/packages/component/src/Dictation.js +++ b/packages/component/src/Dictation.js @@ -1,6 +1,6 @@ import { hooks } from 'botframework-webchat-api'; // TODO: [P1] #3350 No import from internal, we need to move setDictateState from bf-wc-core (Redux) to React Context. -import { useSetDictateState } from 'botframework-webchat-api/internal'; +import { useSetDictateState } from 'botframework-webchat-api/internal.js'; import { Constants } from 'botframework-webchat-core'; import PropTypes from 'prop-types'; import React, { useCallback, useEffect } from 'react'; diff --git a/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx b/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx index 543e20ebf6..4524ef816b 100644 --- a/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx +++ b/packages/component/src/Middleware/Activity/defaultActivityPolymiddleware.tsx @@ -1,6 +1,6 @@ /* eslint complexity: ["error", 21] */ import { ActivityMiddleware } from 'botframework-webchat-api'; -import { createActivityPolymiddlewareFromLegacy, type Polymiddleware } from 'botframework-webchat-api/middleware'; +import { createActivityPolymiddlewareFromLegacy, type Polymiddleware } from 'botframework-webchat-api/middleware.js'; import { getActivityLivestreamingMetadata, getOrgSchemaMessage, diff --git a/packages/component/src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx b/packages/component/src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx index 7940ccc6e4..96231a0e8b 100644 --- a/packages/component/src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx @@ -1,4 +1,4 @@ -import { createActivityGroupingMiddleware, type DecoratorMiddleware } from 'botframework-webchat-api/decorator'; +import { createActivityGroupingMiddleware, type DecoratorMiddleware } from 'botframework-webchat-api/decorator.js'; import PartGrouping from './ui/PartGrouping/PartGrouping'; import RenderActivityGrouping from './ui/RenderActivityGrouping'; import SenderGrouping from './ui/SenderGrouping/SenderGrouping'; diff --git a/packages/component/src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx b/packages/component/src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx index 63a444ed5e..f004412995 100644 --- a/packages/component/src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx @@ -1,6 +1,6 @@ import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { hooks } from 'botframework-webchat-api'; -import { LegacyActivityContextProvider, type LegacyActivityContextType } from 'botframework-webchat-api/internal'; +import { LegacyActivityContextProvider, type LegacyActivityContextType } from 'botframework-webchat-api/internal.js'; import { type WebChatActivity } from 'botframework-webchat-core'; import React, { memo, useMemo } from 'react'; import { custom, object, optional, pipe, readonly, safeParse, type InferInput } from 'valibot'; diff --git a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx index 696ee2b7f4..fcc1343594 100644 --- a/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx +++ b/packages/component/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx @@ -1,6 +1,6 @@ import { reactNode } from '@msinternal/botframework-webchat-react-valibot'; import { getActivityLivestreamingMetadata, getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat-core'; -import { IdentifierSchema } from 'botframework-webchat-core/graph'; +import { IdentifierSchema } from 'botframework-webchat-core/graph.js'; import React, { Fragment, memo, useMemo } from 'react'; import { array, diff --git a/packages/component/src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx b/packages/component/src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx index 5f182aee98..b4d4b21bf6 100644 --- a/packages/component/src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx +++ b/packages/component/src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx @@ -4,7 +4,7 @@ import { createAvatarPolymiddleware, // Required but unused, for type portability. type __INTERNAL_DO_NOT_USE__avatarPolymiddlewareRequestStyleOptionsSymbol -} from 'botframework-webchat-api/middleware'; +} from 'botframework-webchat-api/middleware.js'; import DefaultAvatar from './DefaultAvatar'; function createDefaultAvatarMiddleware(styleOptions: StyleOptions | undefined) { diff --git a/packages/component/src/SendBox/TextBox.tsx b/packages/component/src/SendBox/TextBox.tsx index 0198cbfe01..a64a48f0e2 100644 --- a/packages/component/src/SendBox/TextBox.tsx +++ b/packages/component/src/SendBox/TextBox.tsx @@ -1,5 +1,5 @@ import { hooks } from 'botframework-webchat-api'; -import { usePonyfill } from 'botframework-webchat-api/hook'; +import { usePonyfill } from 'botframework-webchat-api/hook.js'; import classNames from 'classnames'; import React, { useCallback, useMemo, useRef } from 'react'; diff --git a/packages/component/src/Styles/CSSCustomPropertiesContainer.tsx b/packages/component/src/Styles/CSSCustomPropertiesContainer.tsx index 7998a2adac..78a4413720 100644 --- a/packages/component/src/Styles/CSSCustomPropertiesContainer.tsx +++ b/packages/component/src/Styles/CSSCustomPropertiesContainer.tsx @@ -1,7 +1,7 @@ import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { makeCreateStyles } from '@msinternal/botframework-webchat-styles'; import { InjectStyleElements } from '@msinternal/botframework-webchat-styles/react'; -import { useStyleOptions } from 'botframework-webchat-api/hook'; +import { useStyleOptions } from 'botframework-webchat-api/hook.js'; import classNames from 'classnames'; import random from 'math-random'; import React, { forwardRef, memo, useMemo, type Ref } from 'react'; diff --git a/packages/component/src/Transcript/ActivityTree.tsx b/packages/component/src/Transcript/ActivityTree.tsx index d6b50504a3..a2ef44b9fd 100644 --- a/packages/component/src/Transcript/ActivityTree.tsx +++ b/packages/component/src/Transcript/ActivityTree.tsx @@ -1,4 +1,4 @@ -import { ActivityGroupingDecorator } from 'botframework-webchat-api/decorator'; +import { ActivityGroupingDecorator } from 'botframework-webchat-api/decorator.js'; import React, { Fragment, memo } from 'react'; import { type GroupedRenderingActivities } from '../providers/GroupedRenderingActivities/GroupedRenderingActivities'; diff --git a/packages/component/src/Transcript/hooks/useRenderActivityProps.ts b/packages/component/src/Transcript/hooks/useRenderActivityProps.ts index 4785f6cba0..cd1a6baa02 100644 --- a/packages/component/src/Transcript/hooks/useRenderActivityProps.ts +++ b/packages/component/src/Transcript/hooks/useRenderActivityProps.ts @@ -1,5 +1,5 @@ import { hooks } from 'botframework-webchat-api'; -import { useBuildRenderAvatarCallback } from 'botframework-webchat-api/middleware'; +import { useBuildRenderAvatarCallback } from 'botframework-webchat-api/middleware.js'; import { type WebChatActivity } from 'botframework-webchat-core'; import { useMemo, type ReactNode } from 'react'; diff --git a/packages/component/src/boot/deprecated/component.ts b/packages/component/src/boot/deprecated/component.ts new file mode 100644 index 0000000000..33ae183e0c --- /dev/null +++ b/packages/component/src/boot/deprecated/component.ts @@ -0,0 +1,5 @@ +export * from '../component'; + +console.warn( + 'Import from "botframework-webchat-component/component" is deprecated, please import from "botframework-webchat-component/component.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/component/src/boot/deprecated/decorator.ts b/packages/component/src/boot/deprecated/decorator.ts new file mode 100644 index 0000000000..4915f0028a --- /dev/null +++ b/packages/component/src/boot/deprecated/decorator.ts @@ -0,0 +1,5 @@ +export * from '../decorator'; + +console.warn( + 'Import from "botframework-webchat-component/decorator" is deprecated, please import from "botframework-webchat-component/decorator.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/component/src/boot/deprecated/hook.ts b/packages/component/src/boot/deprecated/hook.ts new file mode 100644 index 0000000000..4abac54c5a --- /dev/null +++ b/packages/component/src/boot/deprecated/hook.ts @@ -0,0 +1,5 @@ +export * from '../hook'; + +console.warn( + 'Import from "botframework-webchat-component/hook" is deprecated, please import from "botframework-webchat-component/hook.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/component/src/boot/deprecated/internal.ts b/packages/component/src/boot/deprecated/internal.ts new file mode 100644 index 0000000000..a9aa52e2e9 --- /dev/null +++ b/packages/component/src/boot/deprecated/internal.ts @@ -0,0 +1,5 @@ +export * from '../internal'; + +console.warn( + 'Import from "botframework-webchat-component/internal" is deprecated, please import from "botframework-webchat-component/internal.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/component/src/boot/hook.ts b/packages/component/src/boot/hook.ts index 38f37d1659..3cb3531284 100644 --- a/packages/component/src/boot/hook.ts +++ b/packages/component/src/boot/hook.ts @@ -77,7 +77,7 @@ export { useVoiceRecordingMuted, useVoiceSelector, useVoiceState -} from 'botframework-webchat-api/hook'; +} from 'botframework-webchat-api/hook.js'; // #region Overrides export { diff --git a/packages/component/src/boot/internal.ts b/packages/component/src/boot/internal.ts index 1dc92dd9f6..7e2ea3d536 100644 --- a/packages/component/src/boot/internal.ts +++ b/packages/component/src/boot/internal.ts @@ -12,4 +12,4 @@ export { default as parseDocumentFragmentFromString } from '../Utils/parseDocume export { default as serializeDocumentFragmentIntoString } from '../Utils/serializeDocumentFragmentIntoString'; // For type portability -export { type __INTERNAL_DO_NOT_USE__avatarPolymiddlewareRequestStyleOptionsSymbol } from 'botframework-webchat-api/internal'; +export { type __INTERNAL_DO_NOT_USE__avatarPolymiddlewareRequestStyleOptionsSymbol } from 'botframework-webchat-api/internal.js'; diff --git a/packages/component/src/decorator/private/WebChatDecorator.tsx b/packages/component/src/decorator/private/WebChatDecorator.tsx index edce239b69..3cac590ca1 100644 --- a/packages/component/src/decorator/private/WebChatDecorator.tsx +++ b/packages/component/src/decorator/private/WebChatDecorator.tsx @@ -4,7 +4,7 @@ import { createActivityBorderMiddleware, DecoratorComposer, type DecoratorMiddleware -} from 'botframework-webchat-api/decorator'; +} from 'botframework-webchat-api/decorator.js'; import React, { Fragment, memo } from 'react'; import { object, optional, pipe, readonly, string, type InferInput } from 'valibot'; diff --git a/packages/component/src/decorator/stylesheet/DecoratorStylesheet.tsx b/packages/component/src/decorator/stylesheet/DecoratorStylesheet.tsx index f4db0fb070..a0482961e7 100644 --- a/packages/component/src/decorator/stylesheet/DecoratorStylesheet.tsx +++ b/packages/component/src/decorator/stylesheet/DecoratorStylesheet.tsx @@ -1,7 +1,7 @@ // TODO: [P2] This component can be replaced by `bindProps`. import { InjectStyleElements } from '@msinternal/botframework-webchat-styles/react'; import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; -import { useStyleOptions } from 'botframework-webchat-api/hook'; +import { useStyleOptions } from 'botframework-webchat-api/hook.js'; import React, { memo, type FunctionComponent } from 'react'; import { never, object, optional, pipe, readonly, string, undefinedable, type InferInput } from 'valibot'; diff --git a/packages/component/src/providers/RenderingActivities/RenderingActivitiesComposer.tsx b/packages/component/src/providers/RenderingActivities/RenderingActivitiesComposer.tsx index 6724b30557..21dc300f29 100644 --- a/packages/component/src/providers/RenderingActivities/RenderingActivitiesComposer.tsx +++ b/packages/component/src/providers/RenderingActivities/RenderingActivitiesComposer.tsx @@ -1,7 +1,7 @@ import { useBuildRenderActivityCallback, type ActivityPolymiddlewareRenderer -} from 'botframework-webchat-api/middleware'; +} from 'botframework-webchat-api/middleware.js'; import { hooks } from 'botframework-webchat-api'; import { type WebChatActivity } from 'botframework-webchat-core'; import React, { memo, useCallback, useMemo, type ReactNode } from 'react'; diff --git a/packages/component/src/providers/RenderingActivities/private/RenderingActivitiesContext.ts b/packages/component/src/providers/RenderingActivities/private/RenderingActivitiesContext.ts index 21afa9e512..8afa81f670 100644 --- a/packages/component/src/providers/RenderingActivities/private/RenderingActivitiesContext.ts +++ b/packages/component/src/providers/RenderingActivities/private/RenderingActivitiesContext.ts @@ -1,4 +1,4 @@ -import { type ActivityPolymiddlewareRenderer } from 'botframework-webchat-api/middleware'; +import { type ActivityPolymiddlewareRenderer } from 'botframework-webchat-api/middleware.js'; import { type WebChatActivity } from 'botframework-webchat-core'; import createContextAndHook from '../../createContextAndHook'; diff --git a/packages/component/src/providers/RenderingActivities/useActivityRendererMap.ts b/packages/component/src/providers/RenderingActivities/useActivityRendererMap.ts index a8c089fbcd..d85e93f843 100644 --- a/packages/component/src/providers/RenderingActivities/useActivityRendererMap.ts +++ b/packages/component/src/providers/RenderingActivities/useActivityRendererMap.ts @@ -1,4 +1,4 @@ -import { type ActivityPolymiddlewareRenderer } from 'botframework-webchat-api/middleware'; +import { type ActivityPolymiddlewareRenderer } from 'botframework-webchat-api/middleware.js'; import { type WebChatActivity } from 'botframework-webchat-core'; import { useRenderingActivitiesContext } from './private/RenderingActivitiesContext'; diff --git a/packages/component/src/providers/Theme/ThemeProvider.tsx b/packages/component/src/providers/Theme/ThemeProvider.tsx index b9f97e71cb..7b3bd06ef6 100644 --- a/packages/component/src/providers/Theme/ThemeProvider.tsx +++ b/packages/component/src/providers/Theme/ThemeProvider.tsx @@ -17,8 +17,8 @@ import { type ToastMiddleware, type TypingIndicatorMiddleware } from 'botframework-webchat-api'; -import { StyleOptionsComposer } from 'botframework-webchat-api/internal'; -import { type Polymiddleware } from 'botframework-webchat-api/middleware'; +import { StyleOptionsComposer } from 'botframework-webchat-api/internal.js'; +import { type Polymiddleware } from 'botframework-webchat-api/middleware.js'; import React, { memo, useContext, useMemo, type ReactNode } from 'react'; import { array, custom, function_, object, optional, pipe, readonly, safeParse } from 'valibot'; diff --git a/packages/component/src/providers/Theme/private/Context.ts b/packages/component/src/providers/Theme/private/Context.ts index 8884b6ac65..e2bb01542d 100644 --- a/packages/component/src/providers/Theme/private/Context.ts +++ b/packages/component/src/providers/Theme/private/Context.ts @@ -12,7 +12,7 @@ import type { ToastMiddleware, TypingIndicatorMiddleware } from 'botframework-webchat-api'; -import { type Polymiddleware } from 'botframework-webchat-api/middleware'; +import { type Polymiddleware } from 'botframework-webchat-api/middleware.js'; import { createContext } from 'react'; const EMPTY_ARRAY = Object.freeze([] as const); diff --git a/packages/component/src/stylesheet/ComponentStylesheet.tsx b/packages/component/src/stylesheet/ComponentStylesheet.tsx index 1669487f97..c7d15e74b3 100644 --- a/packages/component/src/stylesheet/ComponentStylesheet.tsx +++ b/packages/component/src/stylesheet/ComponentStylesheet.tsx @@ -1,7 +1,7 @@ // TODO: [P2] This component can be replaced by `bindProps`. import { InjectStyleElements } from '@msinternal/botframework-webchat-styles/react'; import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; -import { useStyleOptions } from 'botframework-webchat-api/hook'; +import { useStyleOptions } from 'botframework-webchat-api/hook.js'; import React, { memo, type FunctionComponent } from 'react'; import { never, object, optional, pipe, readonly, string, undefinedable, type InferInput } from 'valibot'; diff --git a/packages/component/tsup.config.ts b/packages/component/tsup.config.ts index 23963b16b0..0b32480db1 100644 --- a/packages/component/tsup.config.ts +++ b/packages/component/tsup.config.ts @@ -12,17 +12,32 @@ const commonConfig = applyConfig(config => ({ 'botframework-webchat-component.component': './src/boot/component.ts', 'botframework-webchat-component.decorator': './src/boot/decorator.ts', 'botframework-webchat-component.hook': './src/boot/hook.ts', - 'botframework-webchat-component.internal': './src/boot/internal.ts' + 'botframework-webchat-component.internal': './src/boot/internal.ts', + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'botframework-webchat-component.deprecated.component': './src/boot/deprecated/component.ts', + 'botframework-webchat-component.deprecated.decorator': './src/boot/deprecated/decorator.ts', + 'botframework-webchat-component.deprecated.hook': './src/boot/deprecated/hook.ts', + 'botframework-webchat-component.deprecated.internal': './src/boot/deprecated/internal.ts' }, esbuildPlugins: [ ...(config.esbuildPlugins ?? []), injectCSSPlugin({ // esbuild does not fully support CSS code splitting, every entry point has its own CSS file. // Related to https://github.com/evanw/esbuild/issues/608. - ignoreCSSEntries: ['dist/botframework-webchat-component.component.css'], + ignoreCSSEntries: [ + 'dist/botframework-webchat-component.component.css', + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'dist/botframework-webchat-component.deprecated.component.css' + ], stylesPlaceholder: componentStyleContentPlaceholder }), - injectCSSPlugin({ stylesPlaceholder: decoratorStyleContentPlaceholder }) + injectCSSPlugin({ + ignoreCSSEntries: [ + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'dist/botframework-webchat-component.deprecated.decorator.css' + ], + stylesPlaceholder: decoratorStyleContentPlaceholder + }) ] })); diff --git a/packages/core/package.json b/packages/core/package.json index 78777f4cee..8c31a7c6a7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,6 +16,16 @@ } }, "./activity": { + "import": { + "types": "./dist/botframework-webchat-core.deprecated.activity.d.mts", + "default": "./dist/botframework-webchat-core.deprecated.activity.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-core.deprecated.activity.d.ts", + "default": "./dist/botframework-webchat-core.deprecated.activity.js" + } + }, + "./activity.js": { "import": { "types": "./dist/botframework-webchat-core.activity.d.mts", "default": "./dist/botframework-webchat-core.activity.mjs" @@ -26,6 +36,16 @@ } }, "./graph": { + "import": { + "types": "./dist/botframework-webchat-core.deprecated.graph.d.mts", + "default": "./dist/botframework-webchat-core.deprecated.graph.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-core.deprecated.graph.d.ts", + "default": "./dist/botframework-webchat-core.deprecated.graph.js" + } + }, + "./graph.js": { "import": { "types": "./dist/botframework-webchat-core.graph.d.mts", "default": "./dist/botframework-webchat-core.graph.mjs" @@ -36,6 +56,16 @@ } }, "./internal": { + "import": { + "types": "./dist/botframework-webchat-core.deprecated.internal.d.mts", + "default": "./dist/botframework-webchat-core.deprecated.internal.mjs" + }, + "require": { + "types": "./dist/botframework-webchat-core.deprecated.internal.d.ts", + "default": "./dist/botframework-webchat-core.deprecated.internal.js" + } + }, + "./internal.js": { "import": { "types": "./dist/botframework-webchat-core.internal.d.mts", "default": "./dist/botframework-webchat-core.internal.mjs" diff --git a/packages/core/src/activity/index.ts b/packages/core/src/boot/activity.ts similarity index 100% rename from packages/core/src/activity/index.ts rename to packages/core/src/boot/activity.ts diff --git a/packages/core/src/boot/deprecated/activity.ts b/packages/core/src/boot/deprecated/activity.ts new file mode 100644 index 0000000000..e5e01864d7 --- /dev/null +++ b/packages/core/src/boot/deprecated/activity.ts @@ -0,0 +1,5 @@ +export * from '../activity'; + +console.warn( + 'Import from "botframework-webchat-core/activity" is deprecated, please import from "botframework-webchat-core/activity.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/core/src/boot/deprecated/graph.ts b/packages/core/src/boot/deprecated/graph.ts new file mode 100644 index 0000000000..d2520aa4c1 --- /dev/null +++ b/packages/core/src/boot/deprecated/graph.ts @@ -0,0 +1,5 @@ +export * from '../graph'; + +console.warn( + 'Import from "botframework-webchat-core/graph" is deprecated, please import from "botframework-webchat-core/graph.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/core/src/boot/deprecated/internal.ts b/packages/core/src/boot/deprecated/internal.ts new file mode 100644 index 0000000000..253a0301d3 --- /dev/null +++ b/packages/core/src/boot/deprecated/internal.ts @@ -0,0 +1,5 @@ +export * from '../internal'; + +console.warn( + 'Import from "botframework-webchat-core/internal" is deprecated, please import from "botframework-webchat-core/internal.js" instead. This entrypoint will be removed on or after 2028-04-24.' +); diff --git a/packages/core/src/graph/index.ts b/packages/core/src/boot/graph.ts similarity index 81% rename from packages/core/src/graph/index.ts rename to packages/core/src/boot/graph.ts index f7b59f50d8..0b992d1253 100644 --- a/packages/core/src/graph/index.ts +++ b/packages/core/src/boot/graph.ts @@ -15,4 +15,4 @@ export { type SlantNode, type WritableGraph } from '@msinternal/botframework-webchat-core-graph'; -export { default as createGraphFromStore } from './createGraphFromStore'; +export { default as createGraphFromStore } from '../graph/createGraphFromStore'; diff --git a/packages/core/src/internal/index.ts b/packages/core/src/boot/internal.ts similarity index 67% rename from packages/core/src/internal/index.ts rename to packages/core/src/boot/internal.ts index 75c39b5f43..1e814e4c8f 100644 --- a/packages/core/src/internal/index.ts +++ b/packages/core/src/boot/internal.ts @@ -3,9 +3,9 @@ export { default as setRawState, setRawStateActionSchema, type SetRawStateAction -} from './actions/setRawState'; +} from '../internal/actions/setRawState'; -export { default as StoreDebugAPIRegistry } from './StoreDebugAPIRegistry'; +export { default as StoreDebugAPIRegistry } from '../internal/StoreDebugAPIRegistry'; export { type StoreDebugAPI } from '../types/StoreDebugAPI'; export { RestrictedDebugAPI, type InferPublic } from '@msinternal/botframework-webchat-core-debug-api'; diff --git a/packages/core/src/createStore.ts b/packages/core/src/createStore.ts index fd523b8e43..324c0b3931 100644 --- a/packages/core/src/createStore.ts +++ b/packages/core/src/createStore.ts @@ -8,7 +8,7 @@ import createSagas from './createSagas'; import { RestrictedStoreDebugAPI } from './types/StoreDebugAPI'; import type { GlobalScopePonyfill } from './types/GlobalScopePonyfill'; -import { StoreDebugAPIRegistry } from './internal'; +import StoreDebugAPIRegistry from './internal/StoreDebugAPIRegistry'; type CreateStoreOptions = { /** diff --git a/packages/core/src/graph/createGraphFromStore.ts b/packages/core/src/graph/createGraphFromStore.ts index fa86efd3e2..8436473028 100644 --- a/packages/core/src/graph/createGraphFromStore.ts +++ b/packages/core/src/graph/createGraphFromStore.ts @@ -1,8 +1,9 @@ import { SlantGraph, SlantNodeSchema } from '@msinternal/botframework-webchat-core-graph'; import { parse } from 'valibot'; import type createStore from '../createStore'; +import { getLocalIdFromActivity } from '../reducers/activities/sort/property/LocalId'; +import { getPositionFromActivity } from '../reducers/activities/sort/property/Position'; import type { Activity } from '../reducers/activities/sort/types'; -import { getLocalIdFromActivity, getPositionFromActivity } from '../activity'; function createGraphFromStore(store: ReturnType): SlantGraph { const graph = new SlantGraph(); diff --git a/packages/core/src/types/WebChatActivity.ts b/packages/core/src/types/WebChatActivity.ts index ec9efa2984..903de2bf47 100644 --- a/packages/core/src/types/WebChatActivity.ts +++ b/packages/core/src/types/WebChatActivity.ts @@ -7,7 +7,7 @@ // - However, we do not expect the server to return "localTimestamp" as they may not have capability to store this information // - "conversationUpdate" activity is never sent to Web Chat, thus, it is not defined -import type { LocalId } from '../activity/index'; +import type { LocalId } from '../reducers/activities/sort/property/LocalId'; import type { AnyAnd } from './AnyAnd'; // import type { AsEntity, Thing } from './external/OrgSchema/Thing'; import type { DirectLineAttachment } from './external/DirectLineAttachment'; diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index bde073ebde..70176fc933 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -6,9 +6,13 @@ const commonConfig = applyConfig(config => ({ ...config, entry: { 'botframework-webchat-core': './src/index.ts', - 'botframework-webchat-core.activity': './src/activity/index.ts', - 'botframework-webchat-core.graph': './src/graph/index.ts', - 'botframework-webchat-core.internal': './src/internal/index.ts' + 'botframework-webchat-core.activity': './src/boot/activity.ts', + 'botframework-webchat-core.graph': './src/boot/graph.ts', + 'botframework-webchat-core.internal': './src/boot/internal.ts', + // Deprecated entrypoint without .js, to be removed on or after 2028-04-24. + 'botframework-webchat-core.deprecated.activity': './src/boot/deprecated/activity.ts', + 'botframework-webchat-core.deprecated.graph': './src/boot/deprecated/graph.ts', + 'botframework-webchat-core.deprecated.internal': './src/boot/deprecated/internal.ts' } })); diff --git a/packages/debug-theme/src/DebugProvider.tsx b/packages/debug-theme/src/DebugProvider.tsx index a5d85cd9b3..e78254d36e 100644 --- a/packages/debug-theme/src/DebugProvider.tsx +++ b/packages/debug-theme/src/DebugProvider.tsx @@ -1,5 +1,5 @@ import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; -import { createErrorBoxPolymiddleware, errorBoxComponent } from 'botframework-webchat-api/middleware'; +import { createErrorBoxPolymiddleware, errorBoxComponent } from 'botframework-webchat-api/middleware.js'; import { Components } from 'botframework-webchat-component'; import React, { memo, useMemo } from 'react'; import { object, optional, pipe, type InferInput } from 'valibot'; diff --git a/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx b/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx index d73e5e78d6..9e20844fa5 100644 --- a/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx +++ b/packages/fluent-theme/src/components/activity/CopilotMessageHeader.tsx @@ -1,6 +1,6 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { hooks } from 'botframework-webchat'; -import { type WebChatActivity } from 'botframework-webchat/internal'; +import { type WebChatActivity } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo, useMemo, type CSSProperties } from 'react'; import { custom, object, optional, pipe, readonly, safeParse, string, type InferInput } from 'valibot'; diff --git a/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx b/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx index 98cbc9509e..46aaee2ca3 100644 --- a/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx +++ b/packages/fluent-theme/src/components/activity/PartGroupingDecorator.tsx @@ -4,7 +4,7 @@ import { getVoiceActivityRole, PartGrouping, type WebChatActivity -} from 'botframework-webchat/internal'; +} from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo, useMemo, type ReactNode } from 'react'; import { array, custom, object, optional, pipe, readonly, safeParse } from 'valibot'; diff --git a/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts b/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts index 60688d986a..82c6564de3 100644 --- a/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts +++ b/packages/fluent-theme/src/components/activity/private/isAIGeneratedActivity.ts @@ -1,4 +1,4 @@ -import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal'; +import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal.js'; export default function isAIGeneratedActivity(activity: undefined | WebChatActivity) { return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords.includes('AIGeneratedContent')); diff --git a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts index c1af6cfd59..44a3e54552 100644 --- a/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts +++ b/packages/fluent-theme/src/components/activity/private/useActivityAuthor.ts @@ -1,5 +1,5 @@ -import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal'; -import { orgSchemaPersonSchema, type OrgSchemaPerson } from 'botframework-webchat/schema'; +import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal.js'; +import { orgSchemaPersonSchema, type OrgSchemaPerson } from 'botframework-webchat/schema.js'; import { useMemo } from 'react'; import { parse } from 'valibot'; diff --git a/packages/fluent-theme/src/components/activity/private/useActivityStyleOptions.ts b/packages/fluent-theme/src/components/activity/private/useActivityStyleOptions.ts index 4dce5f70ec..adb3ffd4c7 100644 --- a/packages/fluent-theme/src/components/activity/private/useActivityStyleOptions.ts +++ b/packages/fluent-theme/src/components/activity/private/useActivityStyleOptions.ts @@ -1,5 +1,5 @@ import { type StrictStyleOptions, hooks } from 'botframework-webchat'; -import { type WebChatActivity } from 'botframework-webchat/internal'; +import { type WebChatActivity } from 'botframework-webchat/internal.js'; import { useMemo } from 'react'; const { useStyleOptions } = hooks; diff --git a/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx b/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx index 28f9202f0b..bac530872d 100644 --- a/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx +++ b/packages/fluent-theme/src/components/activityStatus/VoiceTranscriptActivityStatus.tsx @@ -1,6 +1,6 @@ import { hooks } from 'botframework-webchat'; -import { Timestamp } from 'botframework-webchat/component'; -import { getVoiceActivityRole, getVoiceActivityText, type WebChatActivity } from 'botframework-webchat/internal'; +import { Timestamp } from 'botframework-webchat/component.js'; +import { getVoiceActivityRole, getVoiceActivityText, type WebChatActivity } from 'botframework-webchat/internal.js'; import React, { Fragment, memo } from 'react'; import { useStyles } from '../../styles'; diff --git a/packages/fluent-theme/src/components/icon/FluentIcon.tsx b/packages/fluent-theme/src/components/icon/FluentIcon.tsx index d0e46ccf67..416796237a 100644 --- a/packages/fluent-theme/src/components/icon/FluentIcon.tsx +++ b/packages/fluent-theme/src/components/icon/FluentIcon.tsx @@ -1,6 +1,6 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { useStyles } from '@msinternal/botframework-webchat-styles/react'; -import { createIconComponent } from 'botframework-webchat/internal'; +import { createIconComponent } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo, useMemo, type CSSProperties } from 'react'; import { object, optional, pipe, readonly, string, union, type InferInput } from 'valibot'; diff --git a/packages/fluent-theme/src/components/linerActivity/private/LinerActivity.tsx b/packages/fluent-theme/src/components/linerActivity/private/LinerActivity.tsx index e708423966..b78e89cf9d 100644 --- a/packages/fluent-theme/src/components/linerActivity/private/LinerActivity.tsx +++ b/packages/fluent-theme/src/components/linerActivity/private/LinerActivity.tsx @@ -1,4 +1,4 @@ -import { type WebChatActivity } from 'botframework-webchat/internal'; +import { type WebChatActivity } from 'botframework-webchat/internal.js'; import React, { memo } from 'react'; import { useStyles } from '../../../styles/index.js'; diff --git a/packages/fluent-theme/src/components/linerActivity/private/isLinerMessageActivity.ts b/packages/fluent-theme/src/components/linerActivity/private/isLinerMessageActivity.ts index eaf135461b..00317323f1 100644 --- a/packages/fluent-theme/src/components/linerActivity/private/isLinerMessageActivity.ts +++ b/packages/fluent-theme/src/components/linerActivity/private/isLinerMessageActivity.ts @@ -1,4 +1,4 @@ -import { type WebChatActivity } from 'botframework-webchat/internal'; +import { type WebChatActivity } from 'botframework-webchat/internal.js'; export default function isLinerMessageActivity( activity: undefined | WebChatActivity diff --git a/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx b/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx index 6955f95b7d..21a78cc36a 100644 --- a/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx +++ b/packages/fluent-theme/src/components/preChatActivity/PreChatMessageActivity.tsx @@ -1,5 +1,5 @@ import { hooks } from 'botframework-webchat'; -import { type WebChatActivity } from 'botframework-webchat/internal'; +import { type WebChatActivity } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo, useMemo } from 'react'; diff --git a/packages/fluent-theme/src/components/preChatActivity/StarterPromptsCardAction.tsx b/packages/fluent-theme/src/components/preChatActivity/StarterPromptsCardAction.tsx index b0b4955056..f4e66c94ff 100644 --- a/packages/fluent-theme/src/components/preChatActivity/StarterPromptsCardAction.tsx +++ b/packages/fluent-theme/src/components/preChatActivity/StarterPromptsCardAction.tsx @@ -1,5 +1,5 @@ import { hooks } from 'botframework-webchat'; -import { type DirectLineCardAction } from 'botframework-webchat/internal'; +import { type DirectLineCardAction } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo, useCallback, useMemo } from 'react'; import { useRefFrom } from 'use-ref-from'; diff --git a/packages/fluent-theme/src/components/preChatActivity/StarterPromptsToolbar.tsx b/packages/fluent-theme/src/components/preChatActivity/StarterPromptsToolbar.tsx index 2d2dd4f356..0b4b433f85 100644 --- a/packages/fluent-theme/src/components/preChatActivity/StarterPromptsToolbar.tsx +++ b/packages/fluent-theme/src/components/preChatActivity/StarterPromptsToolbar.tsx @@ -1,5 +1,5 @@ import { hooks } from 'botframework-webchat'; -import { type DirectLineCardAction } from 'botframework-webchat/internal'; +import { type DirectLineCardAction } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo } from 'react'; diff --git a/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts b/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts index be5e3c1077..3579143880 100644 --- a/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts +++ b/packages/fluent-theme/src/components/preChatActivity/isPreChatMessageActivity.ts @@ -1,4 +1,4 @@ -import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal'; +import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat/internal.js'; export default function isPreChatMessageActivity( activity: undefined | WebChatActivity diff --git a/packages/fluent-theme/src/components/sendBox/ErrorMessage.tsx b/packages/fluent-theme/src/components/sendBox/ErrorMessage.tsx index 1e61f7d6f4..c46cf6be03 100644 --- a/packages/fluent-theme/src/components/sendBox/ErrorMessage.tsx +++ b/packages/fluent-theme/src/components/sendBox/ErrorMessage.tsx @@ -1,4 +1,4 @@ -import { useLiveRegion } from 'botframework-webchat/internal'; +import { useLiveRegion } from 'botframework-webchat/internal.js'; import React, { memo } from 'react'; import { useStyles } from '../../styles'; diff --git a/packages/fluent-theme/src/components/sendBox/SendBox.tsx b/packages/fluent-theme/src/components/sendBox/SendBox.tsx index 05fb2bf184..7d0cfc3379 100644 --- a/packages/fluent-theme/src/components/sendBox/SendBox.tsx +++ b/packages/fluent-theme/src/components/sendBox/SendBox.tsx @@ -1,5 +1,5 @@ import { Components, hooks } from 'botframework-webchat'; -import { usePostVoiceActivity, useShouldShowMicrophoneButton } from 'botframework-webchat/internal'; +import { usePostVoiceActivity, useShouldShowMicrophoneButton } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { memo, diff --git a/packages/fluent-theme/src/components/suggestedActions/SuggestedAction.tsx b/packages/fluent-theme/src/components/suggestedActions/SuggestedAction.tsx index 0210b98e76..038ed5506d 100644 --- a/packages/fluent-theme/src/components/suggestedActions/SuggestedAction.tsx +++ b/packages/fluent-theme/src/components/suggestedActions/SuggestedAction.tsx @@ -1,5 +1,5 @@ import { hooks } from 'botframework-webchat'; -import { type DirectLineCardAction } from 'botframework-webchat/internal'; +import { type DirectLineCardAction } from 'botframework-webchat/internal.js'; import cx from 'classnames'; import React, { MouseEventHandler, memo, useCallback } from 'react'; diff --git a/packages/fluent-theme/src/components/suggestedActions/private/computeSuggestedActionText.ts b/packages/fluent-theme/src/components/suggestedActions/private/computeSuggestedActionText.ts index 3936ea40d7..dcd530eb29 100644 --- a/packages/fluent-theme/src/components/suggestedActions/private/computeSuggestedActionText.ts +++ b/packages/fluent-theme/src/components/suggestedActions/private/computeSuggestedActionText.ts @@ -1,4 +1,4 @@ -import { type DirectLineCardAction } from 'botframework-webchat/internal'; +import { type DirectLineCardAction } from 'botframework-webchat/internal.js'; // Please refer to this article to find out how to compute the "button text" for suggested action. // https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#card-action diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-api/decorator.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-api/decorator.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-api/decorator.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-api/decorator.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-api/hook.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-api/hook.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-api/hook.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-api/hook.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-api/internal.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-api/internal.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-api/internal.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-api/internal.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-api/middleware.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-api/middleware.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-api/middleware.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-api/middleware.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-component/component.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-component/component.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-component/component.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-component/component.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-component/decorator.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-component/decorator.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-component/decorator.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-component/decorator.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-component/hook.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-component/hook.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-component/hook.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-component/hook.js.ts diff --git a/packages/fluent-theme/src/external.umd/botframework-webchat-component/internal.ts b/packages/fluent-theme/src/external.umd/botframework-webchat-component/internal.js.ts similarity index 100% rename from packages/fluent-theme/src/external.umd/botframework-webchat-component/internal.ts rename to packages/fluent-theme/src/external.umd/botframework-webchat-component/internal.js.ts diff --git a/packages/fluent-theme/src/private/FluentThemeProvider.tsx b/packages/fluent-theme/src/private/FluentThemeProvider.tsx index 1166fcdea1..2e30b70ab9 100644 --- a/packages/fluent-theme/src/private/FluentThemeProvider.tsx +++ b/packages/fluent-theme/src/private/FluentThemeProvider.tsx @@ -1,19 +1,19 @@ /* eslint-disable prefer-arrow-callback */ import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; -import { ThemeProvider } from 'botframework-webchat/component'; +import { ThemeProvider } from 'botframework-webchat/component.js'; import { createActivityBorderMiddleware, createActivityGroupingMiddleware, DecoratorComposer, WebChatDecorator, type DecoratorMiddleware -} from 'botframework-webchat/decorator'; +} from 'botframework-webchat/decorator.js'; import { isVoiceTranscriptActivity, type ActivityMiddleware, type ActivityStatusMiddleware, type TypingIndicatorMiddleware -} from 'botframework-webchat/internal'; +} from 'botframework-webchat/internal.js'; import React, { memo, useMemo } from 'react'; import { custom, object, optional, pipe, readonly, string, type InferInput } from 'valibot'; diff --git a/packages/fluent-theme/src/stylesheet/FluentThemeStylesheet.tsx b/packages/fluent-theme/src/stylesheet/FluentThemeStylesheet.tsx index 16ac838eed..a0de45a524 100644 --- a/packages/fluent-theme/src/stylesheet/FluentThemeStylesheet.tsx +++ b/packages/fluent-theme/src/stylesheet/FluentThemeStylesheet.tsx @@ -1,7 +1,7 @@ // TODO: [P2] This component can be replaced by `bindProps`. import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; -import { useStyleOptions } from 'botframework-webchat/hook'; -import { InjectStyleElements } from 'botframework-webchat/internal'; +import { useStyleOptions } from 'botframework-webchat/hook.js'; +import { InjectStyleElements } from 'botframework-webchat/internal.js'; import React, { memo, type FunctionComponent } from 'react'; import { never, object, optional, pipe, readonly, string, undefinedable, type InferInput } from 'valibot'; diff --git a/packages/redux-store/src/suggestedActions/SuggestedActionsComposer.tsx b/packages/redux-store/src/suggestedActions/SuggestedActionsComposer.tsx index 205c82b0c0..515634b93b 100644 --- a/packages/redux-store/src/suggestedActions/SuggestedActionsComposer.tsx +++ b/packages/redux-store/src/suggestedActions/SuggestedActionsComposer.tsx @@ -5,7 +5,7 @@ import { WebChatActivity, type DirectLineCardAction } from 'botframework-webchat-core'; -import { setRawState } from 'botframework-webchat-core/internal'; +import { setRawState } from 'botframework-webchat-core/internal.js'; import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; import { type Action } from 'redux'; From 85703d525b81c98f5f5cfff57d9a28dae55e5b0c Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 23:12:01 +0000 Subject: [PATCH 51/59] Clean up --- .../src/types/external/OrgSchema/private/orgSchemaProperties.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts index e07cebf537..f6169ee19c 100644 --- a/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts +++ b/packages/core/src/types/external/OrgSchema/private/orgSchemaProperties.ts @@ -2,7 +2,6 @@ import { any, array, fallback, - is, optional, pipe, safeParse, From a50b269d2423696a2c002a21f6872847433889b2 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 23:17:09 +0000 Subject: [PATCH 52/59] Fix tests --- .../sort/private/getPartGroupingMetadataMap.spec.ts | 6 +++--- packages/core/src/utils/getOrgSchemaMessage.spec.ts | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.spec.ts b/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.spec.ts index d8202cc344..55a43505ad 100644 --- a/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.spec.ts +++ b/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.spec.ts @@ -1,5 +1,6 @@ /* eslint-disable no-restricted-globals */ +import { expect } from '@jest/globals'; import { scenario } from '@testduet/given-when-then'; import type { WebChatActivity } from '../../../../types/WebChatActivity'; import type { LocalId } from '../property/LocalId'; @@ -83,9 +84,8 @@ scenario('getPartGroupingMetadataMap with multiple part grouping', bdd => { .then('should return part grouping metadata', (_, actual) => { expect(actual).toEqual( new Map([ - ['Conversation', { groupingId: '_:conv:00001', position: 1 }] - // TODO: [P0] Currently, it only return the first part grouping. - // ['HowTo', { groupingId: '_:how-to:00001', position: 1 }] + ['Conversation', { groupingId: '_:conv:00001', position: 1 }], + ['HowTo', { groupingId: '_:how-to:00001', position: 1 }] ]) satisfies ReturnType ); }); diff --git a/packages/core/src/utils/getOrgSchemaMessage.spec.ts b/packages/core/src/utils/getOrgSchemaMessage.spec.ts index b60f1202e8..18bebbfeb2 100644 --- a/packages/core/src/utils/getOrgSchemaMessage.spec.ts +++ b/packages/core/src/utils/getOrgSchemaMessage.spec.ts @@ -1,4 +1,6 @@ import { expect, test } from '@jest/globals'; +import { parse } from 'valibot'; +import { creativeWorkSchema } from '../types/external/OrgSchema/CreativeWork'; import getOrgSchemaMessage from './getOrgSchemaMessage'; test('should get message', () => { @@ -9,7 +11,7 @@ test('should get message', () => { type: 'https://schema.org/Message' }; - expect(getOrgSchemaMessage([expected])).toEqual(expected); + expect(getOrgSchemaMessage([expected])).toEqual(parse(creativeWorkSchema, expected)); }); test('should not get message without @id of empty string', () => { From 2ee65e91395ccee30c06bea6caf285ba3f5b8cd6 Mon Sep 17 00:00:00 2001 From: William Wong Date: Fri, 24 Apr 2026 23:31:20 +0000 Subject: [PATCH 53/59] Suffix import path with .js --- CHANGELOG.md | 2 +- __tests__/assets/esm/createRenderHook.js | 2 +- __tests__/html2/boot/deprecation/components.html | 2 +- __tests__/html2/boot/deprecation/components.new.html | 2 +- __tests__/html2/boot/deprecation/hooks.html | 2 +- __tests__/html2/boot/deprecation/hooks.new.html | 2 +- __tests__/html2/hooks/useActivities.getter.html | 2 +- __tests__/html2/hooks/useActivities.setter.html | 2 +- .../html2/hooks/useAdaptiveCardsHostConfig.getter.default.html | 2 +- __tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html | 2 +- __tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html | 2 +- .../html2/hooks/useAdaptiveCardsPackage.getter.default.html | 2 +- __tests__/html2/hooks/useAdaptiveCardsPackage.getter.html | 2 +- __tests__/html2/hooks/useAdaptiveCardsPackage.setter.html | 2 +- __tests__/html2/hooks/useAvatarForBot.getter.html | 2 +- __tests__/html2/hooks/useAvatarForBot.setter.html | 2 +- __tests__/html2/hooks/useAvatarForUser.getter.html | 2 +- __tests__/html2/hooks/useAvatarForUser.setter.html | 2 +- __tests__/html2/hooks/useByteFormatter.html | 2 +- __tests__/html2/hooks/useCapabilities.html | 2 +- __tests__/html2/hooks/useConnectivityStatus.getter.html | 2 +- __tests__/html2/hooks/useConnectivityStatus.setter.html | 2 +- __tests__/html2/hooks/useDateFormatter.en.html | 2 +- __tests__/html2/hooks/useDateFormatter.yue.html | 2 +- __tests__/html2/hooks/useDictateInterims.getter.html | 2 +- __tests__/html2/hooks/useDictateInterims.setter.html | 2 +- __tests__/html2/hooks/useDisabled.getter.default.html | 2 +- __tests__/html2/hooks/useDisabled.getter.html | 2 +- __tests__/html2/hooks/useDisabled.setter.html | 2 +- __tests__/html2/hooks/useDismissNotification.html | 2 +- __tests__/html2/hooks/useFocus.sendBox.pure.html | 2 +- __tests__/html2/hooks/useGrammars.getter.default.html | 2 +- __tests__/html2/hooks/useGrammars.getter.html | 2 +- __tests__/html2/hooks/useGrammars.setter.html | 2 +- __tests__/html2/hooks/useGroupTimestamp.getter.default.html | 2 +- __tests__/html2/hooks/useGroupTimestamp.getter.false.html | 2 +- __tests__/html2/hooks/useGroupTimestamp.getter.html | 2 +- __tests__/html2/hooks/useGroupTimestamp.setter.html | 2 +- __tests__/html2/hooks/useLanguage.getter.default.html | 2 +- __tests__/html2/hooks/useLanguage.getter.speech.html | 2 +- __tests__/html2/hooks/useLanguage.getter.xx-YY.html | 2 +- __tests__/html2/hooks/useLanguage.getter.yue.html | 2 +- __tests__/html2/hooks/useLanguage.getter.zh-YUE.html | 2 +- __tests__/html2/hooks/useLanguage.setter.html | 2 +- __tests__/html2/hooks/useLocalizer.default.html | 2 +- __tests__/html2/hooks/useLocalizer.nonExistent.html | 2 +- __tests__/html2/hooks/useLocalizer.overrideStrings.html | 2 +- .../html2/hooks/useLocalizer.plural.firstArgumentIsString.html | 2 +- __tests__/html2/hooks/useLocalizer.plural.one.html | 2 +- __tests__/html2/hooks/useLocalizer.plural.otherFallback.html | 2 +- __tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html | 2 +- .../html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html | 2 +- .../hooks/useLocalizer.plural.throw.idOtherNotUndefined.html | 2 +- __tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html | 2 +- __tests__/html2/hooks/useLocalizer.plural.two.html | 2 +- __tests__/html2/hooks/useLocalizer.throwOnInvalidId.html | 2 +- __tests__/html2/hooks/useLocalizer.yue.html | 2 +- __tests__/html2/hooks/useLocalizer.yue.plural.html | 2 +- __tests__/html2/hooks/useMarkActivityAsSpoken.html | 2 +- __tests__/html2/hooks/useMicrophoneButtonClick.html | 2 +- __tests__/html2/hooks/usePerformCardAction.html | 2 +- __tests__/html2/hooks/usePostActivity.html | 2 +- __tests__/html2/hooks/useRelativeTimeFormatter.html | 2 +- __tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html | 2 +- __tests__/html2/hooks/useRenderMarkdownAsHTML.default.html | 2 +- __tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html | 2 +- .../html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html | 2 +- __tests__/html2/hooks/useRenderMarkdownAsHTML.null.html | 2 +- .../useSendBoxSpeechInterimsVisible.getter.recognition.html | 2 +- .../hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html | 2 +- .../html2/hooks/useSendBoxSpeechInterimsVisible.setter.html | 2 +- __tests__/html2/hooks/useSendBoxValue.getter.html | 2 +- __tests__/html2/hooks/useSendBoxValue.setter.html | 2 +- __tests__/html2/hooks/useSendFiles.html | 2 +- __tests__/html2/hooks/useSendMessage.html | 2 +- __tests__/html2/hooks/useSendMessageBack.html | 2 +- __tests__/html2/hooks/useSendPostBack.html | 2 +- __tests__/html2/hooks/useSetNotification.html | 2 +- __tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html | 2 +- __tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html | 2 +- __tests__/html2/hooks/useStartDictate.html | 2 +- __tests__/html2/hooks/useStopDictate.html | 2 +- __tests__/html2/hooks/useStyleOptions.getter.html | 2 +- __tests__/html2/hooks/useStyleOptions.setter.html | 2 +- __tests__/html2/hooks/useStyleSet.getter.html | 2 +- __tests__/html2/hooks/useStyleSet.setter.html | 2 +- __tests__/html2/hooks/useSubmitSendBox.html | 2 +- __tests__/html2/hooks/useSuggestedActions.html | 2 +- __tests__/html2/hooks/useTextBoxValue.html | 2 +- __tests__/html2/hooks/useTimeoutForSend.default.html | 2 +- __tests__/html2/hooks/useTimeoutForSend.getter.html | 2 +- __tests__/html2/hooks/useTimeoutForSend.setter.html | 2 +- __tests__/html2/hooks/useTrackDimension.html | 2 +- .../html2/hooks/useTrackDimension.invalidDimensionName.html | 2 +- .../html2/hooks/useTrackDimension.invalidDimensionValue.html | 2 +- __tests__/html2/hooks/useTrackEvent.debug.html | 2 +- __tests__/html2/hooks/useTrackEvent.error.complex.html | 2 +- __tests__/html2/hooks/useTrackEvent.html | 2 +- __tests__/html2/hooks/useTrackEvent.info.html | 2 +- __tests__/html2/hooks/useTrackEvent.invalid.booleanData.html | 2 +- 100 files changed, 100 insertions(+), 100 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c3739911f..0095496f43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,7 +145,7 @@ Breaking changes in this release: - Added support for `botframework-webchat-fluent-theme` package, by [@compulim](https://github.com/compulim) in PR [#5593](https://github.com/microsoft/BotFramework-WebChat/pull/5593) - Bundling vendor chunks, by [@compulim](https://github.com/compulim) in PR [#5595](https://github.com/microsoft/BotFramework-WebChat/pull/5595) - Added deprecation notes for legacy imports, by [@compulim](https://github.com/compulim) in PR [#5600](https://github.com/microsoft/BotFramework-WebChat/pull/5600) - - `import { hooks } from 'botframework-webchat'` should be replaced by `import * as hooks from 'botframework-webchat/hook'` + - `import { hooks } from 'botframework-webchat'` should be replaced by `import * as hooks from 'botframework-webchat/hook.js'` - Added target to Chrome 100 and re-enable Lightning CSS for ESM builds, by [@compulim](https://github.com/compulim) in PR [#5602](https://github.com/microsoft/BotFramework-WebChat/pull/5602) - Relaxed `role` prop to allow any string instead of ARIA landmark roles, in PR [#5561](https://github.com/microsoft/BotFramework-WebChat/pull/5561), by [@compulim](https://github.com/compulim) - Cleaned up `` and various CSS related code, in PR [#5611](https://github.com/microsoft/BotFramework-WebChat/pull/5611), by [@compulim](https://github.com/compulim) diff --git a/__tests__/assets/esm/createRenderHook.js b/__tests__/assets/esm/createRenderHook.js index 98944bba1a..7428b9976d 100644 --- a/__tests__/assets/esm/createRenderHook.js +++ b/__tests__/assets/esm/createRenderHook.js @@ -1,4 +1,4 @@ -import { BasicWebChat, Composer } from 'botframework-webchat/component'; +import { BasicWebChat, Composer } from 'botframework-webchat/component.js'; import { createElement } from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/__tests__/html2/boot/deprecation/components.html b/__tests__/html2/boot/deprecation/components.html index f81c39b750..961ac8cd84 100644 --- a/__tests__/html2/boot/deprecation/components.html +++ b/__tests__/html2/boot/deprecation/components.html @@ -36,7 +36,7 @@ // THEN: Should show deprecation note. expect(console.warn).toHaveBeenCalledTimes(1); expect(console.warn).toHaveBeenLastCalledWith( - "botframework-webchat: `import { Components } from 'botframework-webchat'` has been deprecated, use `import { %s } from 'botframework-webchat/component'` instead.", + "botframework-webchat: `import { Components } from 'botframework-webchat'` has been deprecated, use `import { %s } from 'botframework-webchat/component.js'` instead.", 'BasicWebChat' ); diff --git a/__tests__/html2/boot/deprecation/components.new.html b/__tests__/html2/boot/deprecation/components.new.html index 4d2183bbe6..9cb6e0edcd 100644 --- a/__tests__/html2/boot/deprecation/components.new.html +++ b/__tests__/html2/boot/deprecation/components.new.html @@ -26,7 +26,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, renderWebChat } from 'botframework-webchat'; - import * as Components from 'botframework-webchat/component'; + import * as Components from 'botframework-webchat/component.js'; import { version } from 'react'; run(async function () { diff --git a/__tests__/html2/boot/deprecation/hooks.html b/__tests__/html2/boot/deprecation/hooks.html index f2e0c3ef8b..860dd53131 100644 --- a/__tests__/html2/boot/deprecation/hooks.html +++ b/__tests__/html2/boot/deprecation/hooks.html @@ -36,7 +36,7 @@ // THEN: Should show deprecation note. expect(console.warn).toHaveBeenCalledTimes(1); expect(console.warn).toHaveBeenLastCalledWith( - "botframework-webchat: `import { hooks } from 'botframework-webchat'` has been deprecated, use `import { %s } from 'botframework-webchat/hook'` instead.", + "botframework-webchat: `import { hooks } from 'botframework-webchat'` has been deprecated, use `import { %s } from 'botframework-webchat/hook.js'` instead.", 'useStyleOptions' ); diff --git a/__tests__/html2/boot/deprecation/hooks.new.html b/__tests__/html2/boot/deprecation/hooks.new.html index 078cff777d..f8130e1e2f 100644 --- a/__tests__/html2/boot/deprecation/hooks.new.html +++ b/__tests__/html2/boot/deprecation/hooks.new.html @@ -26,7 +26,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, renderWebChat } from 'botframework-webchat'; - import * as hooks from 'botframework-webchat/hook'; + import * as hooks from 'botframework-webchat/hook.js'; import { version } from 'react'; run(async function () { diff --git a/__tests__/html2/hooks/useActivities.getter.html b/__tests__/html2/hooks/useActivities.getter.html index 39cce35285..de2d7c76eb 100644 --- a/__tests__/html2/hooks/useActivities.getter.html +++ b/__tests__/html2/hooks/useActivities.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useActivities } from 'botframework-webchat/hook'; + import { useActivities } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useActivities.setter.html b/__tests__/html2/hooks/useActivities.setter.html index 6520ff35e2..8f3c4dddc0 100644 --- a/__tests__/html2/hooks/useActivities.setter.html +++ b/__tests__/html2/hooks/useActivities.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useActivities } from 'botframework-webchat/hook'; + import { useActivities } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html index 740d7f44f9..c6744ef5bf 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html +++ b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAdaptiveCardsHostConfig } from 'botframework-webchat/hook'; + import { useAdaptiveCardsHostConfig } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html index 58003d92fa..7079a8b828 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAdaptiveCardsHostConfig } from 'botframework-webchat/hook'; + import { useAdaptiveCardsHostConfig } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html index 05b25859da..178b015ec0 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsHostConfig.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAdaptiveCardsHostConfig } from 'botframework-webchat/hook'; + import { useAdaptiveCardsHostConfig } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html index 9108316cd4..2bdf30d677 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html +++ b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAdaptiveCardsPackage } from 'botframework-webchat/hook'; + import { useAdaptiveCardsPackage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html index 9379780600..57835d0d28 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsPackage.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAdaptiveCardsPackage } from 'botframework-webchat/hook'; + import { useAdaptiveCardsPackage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html b/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html index 71d405f9f2..dc0cc595a8 100644 --- a/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html +++ b/__tests__/html2/hooks/useAdaptiveCardsPackage.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAdaptiveCardsPackage } from 'botframework-webchat/hook'; + import { useAdaptiveCardsPackage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAvatarForBot.getter.html b/__tests__/html2/hooks/useAvatarForBot.getter.html index 5590d58005..f904590dbb 100644 --- a/__tests__/html2/hooks/useAvatarForBot.getter.html +++ b/__tests__/html2/hooks/useAvatarForBot.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAvatarForBot } from 'botframework-webchat/hook'; + import { useAvatarForBot } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAvatarForBot.setter.html b/__tests__/html2/hooks/useAvatarForBot.setter.html index c71c7dd623..774cd4031a 100644 --- a/__tests__/html2/hooks/useAvatarForBot.setter.html +++ b/__tests__/html2/hooks/useAvatarForBot.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAvatarForBot } from 'botframework-webchat/hook'; + import { useAvatarForBot } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAvatarForUser.getter.html b/__tests__/html2/hooks/useAvatarForUser.getter.html index c7bea2d55c..4712fbbe86 100644 --- a/__tests__/html2/hooks/useAvatarForUser.getter.html +++ b/__tests__/html2/hooks/useAvatarForUser.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAvatarForUser } from 'botframework-webchat/hook'; + import { useAvatarForUser } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useAvatarForUser.setter.html b/__tests__/html2/hooks/useAvatarForUser.setter.html index b4749efc0c..06a0196ba9 100644 --- a/__tests__/html2/hooks/useAvatarForUser.setter.html +++ b/__tests__/html2/hooks/useAvatarForUser.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useAvatarForUser } from 'botframework-webchat/hook'; + import { useAvatarForUser } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useByteFormatter.html b/__tests__/html2/hooks/useByteFormatter.html index 6d322f002b..b8006c5c24 100644 --- a/__tests__/html2/hooks/useByteFormatter.html +++ b/__tests__/html2/hooks/useByteFormatter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useByteFormatter } from 'botframework-webchat/hook'; + import { useByteFormatter } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useCapabilities.html b/__tests__/html2/hooks/useCapabilities.html index 7cf43cfb89..3371572b28 100644 --- a/__tests__/html2/hooks/useCapabilities.html +++ b/__tests__/html2/hooks/useCapabilities.html @@ -23,7 +23,7 @@ import { waitFor } from '@testduet/wait-for'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useCapabilities } from 'botframework-webchat/hook'; + import { useCapabilities } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useConnectivityStatus.getter.html b/__tests__/html2/hooks/useConnectivityStatus.getter.html index 89eb2a003d..be3172c153 100644 --- a/__tests__/html2/hooks/useConnectivityStatus.getter.html +++ b/__tests__/html2/hooks/useConnectivityStatus.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useConnectivityStatus } from 'botframework-webchat/hook'; + import { useConnectivityStatus } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useConnectivityStatus.setter.html b/__tests__/html2/hooks/useConnectivityStatus.setter.html index abb931a0c7..d55e0c5620 100644 --- a/__tests__/html2/hooks/useConnectivityStatus.setter.html +++ b/__tests__/html2/hooks/useConnectivityStatus.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useConnectivityStatus } from 'botframework-webchat/hook'; + import { useConnectivityStatus } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useDateFormatter.en.html b/__tests__/html2/hooks/useDateFormatter.en.html index 5616f76d71..8b6daeecfd 100644 --- a/__tests__/html2/hooks/useDateFormatter.en.html +++ b/__tests__/html2/hooks/useDateFormatter.en.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDateFormatter } from 'botframework-webchat/hook'; + import { useDateFormatter } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useDateFormatter.yue.html b/__tests__/html2/hooks/useDateFormatter.yue.html index 0bcf3d40fe..b250466756 100644 --- a/__tests__/html2/hooks/useDateFormatter.yue.html +++ b/__tests__/html2/hooks/useDateFormatter.yue.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDateFormatter } from 'botframework-webchat/hook'; + import { useDateFormatter } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useDictateInterims.getter.html b/__tests__/html2/hooks/useDictateInterims.getter.html index 2b554fe8e2..7f358cdb1a 100644 --- a/__tests__/html2/hooks/useDictateInterims.getter.html +++ b/__tests__/html2/hooks/useDictateInterims.getter.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDictateInterims } from 'botframework-webchat/hook'; + import { useDictateInterims } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useDictateInterims.setter.html b/__tests__/html2/hooks/useDictateInterims.setter.html index 92c444a1c4..fc4884c2ce 100644 --- a/__tests__/html2/hooks/useDictateInterims.setter.html +++ b/__tests__/html2/hooks/useDictateInterims.setter.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDictateInterims } from 'botframework-webchat/hook'; + import { useDictateInterims } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useDisabled.getter.default.html b/__tests__/html2/hooks/useDisabled.getter.default.html index e07f0579db..68d9eb8bdc 100644 --- a/__tests__/html2/hooks/useDisabled.getter.default.html +++ b/__tests__/html2/hooks/useDisabled.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDisabled } from 'botframework-webchat/hook'; + import { useDisabled } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useDisabled.getter.html b/__tests__/html2/hooks/useDisabled.getter.html index 5f664345e1..8bd836d0d2 100644 --- a/__tests__/html2/hooks/useDisabled.getter.html +++ b/__tests__/html2/hooks/useDisabled.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDisabled } from 'botframework-webchat/hook'; + import { useDisabled } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useDisabled.setter.html b/__tests__/html2/hooks/useDisabled.setter.html index 42d981f715..884596865e 100644 --- a/__tests__/html2/hooks/useDisabled.setter.html +++ b/__tests__/html2/hooks/useDisabled.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDisabled } from 'botframework-webchat/hook'; + import { useDisabled } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useDismissNotification.html b/__tests__/html2/hooks/useDismissNotification.html index 09ba8cae79..2a2a06d35e 100644 --- a/__tests__/html2/hooks/useDismissNotification.html +++ b/__tests__/html2/hooks/useDismissNotification.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useDismissNotification } from 'botframework-webchat/hook'; + import { useDismissNotification } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useFocus.sendBox.pure.html b/__tests__/html2/hooks/useFocus.sendBox.pure.html index 739080a9ea..91c80a225e 100644 --- a/__tests__/html2/hooks/useFocus.sendBox.pure.html +++ b/__tests__/html2/hooks/useFocus.sendBox.pure.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useFocus } from 'botframework-webchat/hook'; + import { useFocus } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGrammars.getter.default.html b/__tests__/html2/hooks/useGrammars.getter.default.html index e02779c6fc..003faf1cdb 100644 --- a/__tests__/html2/hooks/useGrammars.getter.default.html +++ b/__tests__/html2/hooks/useGrammars.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGrammars } from 'botframework-webchat/hook'; + import { useGrammars } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGrammars.getter.html b/__tests__/html2/hooks/useGrammars.getter.html index 75a91eb8de..82f383ca75 100644 --- a/__tests__/html2/hooks/useGrammars.getter.html +++ b/__tests__/html2/hooks/useGrammars.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGrammars } from 'botframework-webchat/hook'; + import { useGrammars } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGrammars.setter.html b/__tests__/html2/hooks/useGrammars.setter.html index 0b90e5febe..1a009da2b6 100644 --- a/__tests__/html2/hooks/useGrammars.setter.html +++ b/__tests__/html2/hooks/useGrammars.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGrammars } from 'botframework-webchat/hook'; + import { useGrammars } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGroupTimestamp.getter.default.html b/__tests__/html2/hooks/useGroupTimestamp.getter.default.html index c6dca91ca4..cc24414248 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.getter.default.html +++ b/__tests__/html2/hooks/useGroupTimestamp.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGroupTimestamp } from 'botframework-webchat/hook'; + import { useGroupTimestamp } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGroupTimestamp.getter.false.html b/__tests__/html2/hooks/useGroupTimestamp.getter.false.html index 60fb43daba..f6bda6754f 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.getter.false.html +++ b/__tests__/html2/hooks/useGroupTimestamp.getter.false.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGroupTimestamp } from 'botframework-webchat/hook'; + import { useGroupTimestamp } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGroupTimestamp.getter.html b/__tests__/html2/hooks/useGroupTimestamp.getter.html index 10919aa87e..c7111349ae 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.getter.html +++ b/__tests__/html2/hooks/useGroupTimestamp.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGroupTimestamp } from 'botframework-webchat/hook'; + import { useGroupTimestamp } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useGroupTimestamp.setter.html b/__tests__/html2/hooks/useGroupTimestamp.setter.html index d1aa2800f9..5f7ce2db04 100644 --- a/__tests__/html2/hooks/useGroupTimestamp.setter.html +++ b/__tests__/html2/hooks/useGroupTimestamp.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useGroupTimestamp } from 'botframework-webchat/hook'; + import { useGroupTimestamp } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLanguage.getter.default.html b/__tests__/html2/hooks/useLanguage.getter.default.html index ef9b1adb82..ac750e69d5 100644 --- a/__tests__/html2/hooks/useLanguage.getter.default.html +++ b/__tests__/html2/hooks/useLanguage.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLanguage.getter.speech.html b/__tests__/html2/hooks/useLanguage.getter.speech.html index 11f3350e80..aab0511385 100644 --- a/__tests__/html2/hooks/useLanguage.getter.speech.html +++ b/__tests__/html2/hooks/useLanguage.getter.speech.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLanguage.getter.xx-YY.html b/__tests__/html2/hooks/useLanguage.getter.xx-YY.html index 1438718de6..becf5d6dd1 100644 --- a/__tests__/html2/hooks/useLanguage.getter.xx-YY.html +++ b/__tests__/html2/hooks/useLanguage.getter.xx-YY.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLanguage.getter.yue.html b/__tests__/html2/hooks/useLanguage.getter.yue.html index faa9d38d51..6d7ee844f8 100644 --- a/__tests__/html2/hooks/useLanguage.getter.yue.html +++ b/__tests__/html2/hooks/useLanguage.getter.yue.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html b/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html index 47ad62e30a..ff5aef5830 100644 --- a/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html +++ b/__tests__/html2/hooks/useLanguage.getter.zh-YUE.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLanguage.setter.html b/__tests__/html2/hooks/useLanguage.setter.html index 7d094ad0b0..689eedca7b 100644 --- a/__tests__/html2/hooks/useLanguage.setter.html +++ b/__tests__/html2/hooks/useLanguage.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.default.html b/__tests__/html2/hooks/useLocalizer.default.html index 70bc9111b3..d48e110411 100644 --- a/__tests__/html2/hooks/useLocalizer.default.html +++ b/__tests__/html2/hooks/useLocalizer.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.nonExistent.html b/__tests__/html2/hooks/useLocalizer.nonExistent.html index 350a21d597..a225e394cd 100644 --- a/__tests__/html2/hooks/useLocalizer.nonExistent.html +++ b/__tests__/html2/hooks/useLocalizer.nonExistent.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.overrideStrings.html b/__tests__/html2/hooks/useLocalizer.overrideStrings.html index 38034f2adc..0d8e76d176 100644 --- a/__tests__/html2/hooks/useLocalizer.overrideStrings.html +++ b/__tests__/html2/hooks/useLocalizer.overrideStrings.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html b/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html index 62a9d9049d..c69cacb9fb 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html +++ b/__tests__/html2/hooks/useLocalizer.plural.firstArgumentIsString.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.one.html b/__tests__/html2/hooks/useLocalizer.plural.one.html index c147d524d5..895d862c4e 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.one.html +++ b/__tests__/html2/hooks/useLocalizer.plural.one.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html b/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html index 7db5465d9d..d25b7f353f 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html +++ b/__tests__/html2/hooks/useLocalizer.plural.otherFallback.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html index c8d4ef816e..176365ffa3 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idOfString.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html index 32d7fb4e9e..8a84dd07d5 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idOneOfNumber.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html index dd7ef8b6af..d16fa3163f 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idOtherNotUndefined.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html b/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html index 477c41b0fd..c20764ba19 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html +++ b/__tests__/html2/hooks/useLocalizer.plural.throw.idUnknown.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.plural.two.html b/__tests__/html2/hooks/useLocalizer.plural.two.html index ee53fdf2f5..26d6e59020 100644 --- a/__tests__/html2/hooks/useLocalizer.plural.two.html +++ b/__tests__/html2/hooks/useLocalizer.plural.two.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html b/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html index a6b11d1332..ea4fedfc9b 100644 --- a/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html +++ b/__tests__/html2/hooks/useLocalizer.throwOnInvalidId.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.yue.html b/__tests__/html2/hooks/useLocalizer.yue.html index ac2b2e2113..81afeeb83c 100644 --- a/__tests__/html2/hooks/useLocalizer.yue.html +++ b/__tests__/html2/hooks/useLocalizer.yue.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useLocalizer.yue.plural.html b/__tests__/html2/hooks/useLocalizer.yue.plural.html index 03687d08b3..8908d2da73 100644 --- a/__tests__/html2/hooks/useLocalizer.yue.plural.html +++ b/__tests__/html2/hooks/useLocalizer.yue.plural.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLocalizer } from 'botframework-webchat/hook'; + import { useLocalizer } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useMarkActivityAsSpoken.html b/__tests__/html2/hooks/useMarkActivityAsSpoken.html index ee3528f4dd..80532f74b5 100644 --- a/__tests__/html2/hooks/useMarkActivityAsSpoken.html +++ b/__tests__/html2/hooks/useMarkActivityAsSpoken.html @@ -26,7 +26,7 @@ import { waitFor } from '@testduet/wait-for'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useActivities, useMarkActivityAsSpoken } from 'botframework-webchat/hook'; + import { useActivities, useMarkActivityAsSpoken } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actSpeak, diff --git a/__tests__/html2/hooks/useMicrophoneButtonClick.html b/__tests__/html2/hooks/useMicrophoneButtonClick.html index b17c55f021..32172d5d3a 100644 --- a/__tests__/html2/hooks/useMicrophoneButtonClick.html +++ b/__tests__/html2/hooks/useMicrophoneButtonClick.html @@ -26,7 +26,7 @@ import { waitFor } from '@testduet/wait-for'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useMicrophoneButtonClick, useMicrophoneButtonDisabled } from 'botframework-webchat/hook'; + import { useMicrophoneButtonClick, useMicrophoneButtonDisabled } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/usePerformCardAction.html b/__tests__/html2/hooks/usePerformCardAction.html index 12cfb7831b..f8c2023399 100644 --- a/__tests__/html2/hooks/usePerformCardAction.html +++ b/__tests__/html2/hooks/usePerformCardAction.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { usePerformCardAction } from 'botframework-webchat/hook'; + import { usePerformCardAction } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/usePostActivity.html b/__tests__/html2/hooks/usePostActivity.html index 7f81b0c4aa..1f7979ab42 100644 --- a/__tests__/html2/hooks/usePostActivity.html +++ b/__tests__/html2/hooks/usePostActivity.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { usePostActivity } from 'botframework-webchat/hook'; + import { usePostActivity } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useRelativeTimeFormatter.html b/__tests__/html2/hooks/useRelativeTimeFormatter.html index 7bb2b2392d..3e50c79849 100644 --- a/__tests__/html2/hooks/useRelativeTimeFormatter.html +++ b/__tests__/html2/hooks/useRelativeTimeFormatter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useRelativeTimeFormatter } from 'botframework-webchat/hook'; + import { useRelativeTimeFormatter } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html index f989d56e6f..4f89020420 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.custom.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook'; + import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html index 5cb76815c7..7f791f4810 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook'; + import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html index f63e9da749..888dc37d42 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook'; + import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html index e19247f3a3..d480cf7e23 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.externalLink.yue.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook'; + import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html b/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html index bca9bb8975..1a28a797ac 100644 --- a/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html +++ b/__tests__/html2/hooks/useRenderMarkdownAsHTML.null.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook'; + import { useRenderMarkdownAsHTML } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html index ca02f4b86d..3bd9e7a42c 100644 --- a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html +++ b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.recognition.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendBoxSpeechInterimsVisible } from 'botframework-webchat/hook'; + import { useSendBoxSpeechInterimsVisible } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html index 82759d5674..0ffa2efdde 100644 --- a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html +++ b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.getter.synthesis.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendBoxSpeechInterimsVisible } from 'botframework-webchat/hook'; + import { useSendBoxSpeechInterimsVisible } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actSpeak, diff --git a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html index 38ee19edea..cfc335b474 100644 --- a/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html +++ b/__tests__/html2/hooks/useSendBoxSpeechInterimsVisible.setter.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendBoxSpeechInterimsVisible } from 'botframework-webchat/hook'; + import { useSendBoxSpeechInterimsVisible } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useSendBoxValue.getter.html b/__tests__/html2/hooks/useSendBoxValue.getter.html index 41d06f126d..64c97d39d1 100644 --- a/__tests__/html2/hooks/useSendBoxValue.getter.html +++ b/__tests__/html2/hooks/useSendBoxValue.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendBoxValue } from 'botframework-webchat/hook'; + import { useSendBoxValue } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useSendBoxValue.setter.html b/__tests__/html2/hooks/useSendBoxValue.setter.html index fbff5cdf0c..371578b4ba 100644 --- a/__tests__/html2/hooks/useSendBoxValue.setter.html +++ b/__tests__/html2/hooks/useSendBoxValue.setter.html @@ -23,7 +23,7 @@ import { waitFor } from '@testduet/wait-for'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendBoxValue } from 'botframework-webchat/hook'; + import { useSendBoxValue } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useSendFiles.html b/__tests__/html2/hooks/useSendFiles.html index b182f48093..74b21e72ff 100644 --- a/__tests__/html2/hooks/useSendFiles.html +++ b/__tests__/html2/hooks/useSendFiles.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendFiles } from 'botframework-webchat/hook'; + import { useSendFiles } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { diff --git a/__tests__/html2/hooks/useSendMessage.html b/__tests__/html2/hooks/useSendMessage.html index 13b6926eaf..3ae3231701 100644 --- a/__tests__/html2/hooks/useSendMessage.html +++ b/__tests__/html2/hooks/useSendMessage.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendMessage } from 'botframework-webchat/hook'; + import { useSendMessage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { diff --git a/__tests__/html2/hooks/useSendMessageBack.html b/__tests__/html2/hooks/useSendMessageBack.html index 65a952ed57..f7b01931b2 100644 --- a/__tests__/html2/hooks/useSendMessageBack.html +++ b/__tests__/html2/hooks/useSendMessageBack.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendMessageBack } from 'botframework-webchat/hook'; + import { useSendMessageBack } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { diff --git a/__tests__/html2/hooks/useSendPostBack.html b/__tests__/html2/hooks/useSendPostBack.html index be3b1e5226..5a09b4e2c9 100644 --- a/__tests__/html2/hooks/useSendPostBack.html +++ b/__tests__/html2/hooks/useSendPostBack.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSendPostBack } from 'botframework-webchat/hook'; + import { useSendPostBack } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { diff --git a/__tests__/html2/hooks/useSetNotification.html b/__tests__/html2/hooks/useSetNotification.html index cf4eb5aa44..9d283f8ef1 100644 --- a/__tests__/html2/hooks/useSetNotification.html +++ b/__tests__/html2/hooks/useSetNotification.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSetNotification } from 'botframework-webchat/hook'; + import { useSetNotification } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html index 02a99c53ce..7b8d40da02 100644 --- a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html +++ b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.false.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useShouldSpeakIncomingActivity } from 'botframework-webchat/hook'; + import { useShouldSpeakIncomingActivity } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html index a8bbec5429..c4e94dca1a 100644 --- a/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html +++ b/__tests__/html2/hooks/useShouldSpeakIncomingActivity.true.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useShouldSpeakIncomingActivity } from 'botframework-webchat/hook'; + import { useShouldSpeakIncomingActivity } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { createWebSpeechPonyfill, sendMessageViaMicrophone } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useStartDictate.html b/__tests__/html2/hooks/useStartDictate.html index 23e8c89388..404855a509 100644 --- a/__tests__/html2/hooks/useStartDictate.html +++ b/__tests__/html2/hooks/useStartDictate.html @@ -26,7 +26,7 @@ import { waitFor } from '@testduet/wait-for'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useStartDictate } from 'botframework-webchat/hook'; + import { useStartDictate } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useStopDictate.html b/__tests__/html2/hooks/useStopDictate.html index 9625772ac6..ee8ac16151 100644 --- a/__tests__/html2/hooks/useStopDictate.html +++ b/__tests__/html2/hooks/useStopDictate.html @@ -26,7 +26,7 @@ import { waitFor } from '@testduet/wait-for'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useStopDictate } from 'botframework-webchat/hook'; + import { useStopDictate } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useStyleOptions.getter.html b/__tests__/html2/hooks/useStyleOptions.getter.html index ef4bf21a5d..c131d98738 100644 --- a/__tests__/html2/hooks/useStyleOptions.getter.html +++ b/__tests__/html2/hooks/useStyleOptions.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useStyleOptions.setter.html b/__tests__/html2/hooks/useStyleOptions.setter.html index bb0db7d4bd..7d1ff78d61 100644 --- a/__tests__/html2/hooks/useStyleOptions.setter.html +++ b/__tests__/html2/hooks/useStyleOptions.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useStyleSet.getter.html b/__tests__/html2/hooks/useStyleSet.getter.html index 72d0c50411..c45ea2ee44 100644 --- a/__tests__/html2/hooks/useStyleSet.getter.html +++ b/__tests__/html2/hooks/useStyleSet.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useStyleSet } from 'botframework-webchat/hook'; + import { useStyleSet } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useStyleSet.setter.html b/__tests__/html2/hooks/useStyleSet.setter.html index 8ff8f45b45..03a13405a6 100644 --- a/__tests__/html2/hooks/useStyleSet.setter.html +++ b/__tests__/html2/hooks/useStyleSet.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useStyleSet } from 'botframework-webchat/hook'; + import { useStyleSet } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useSubmitSendBox.html b/__tests__/html2/hooks/useSubmitSendBox.html index 7f1b72996b..a2661c5fdc 100644 --- a/__tests__/html2/hooks/useSubmitSendBox.html +++ b/__tests__/html2/hooks/useSubmitSendBox.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSubmitSendBox } from 'botframework-webchat/hook'; + import { useSubmitSendBox } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { diff --git a/__tests__/html2/hooks/useSuggestedActions.html b/__tests__/html2/hooks/useSuggestedActions.html index c5a4acd217..e46bba6ed6 100644 --- a/__tests__/html2/hooks/useSuggestedActions.html +++ b/__tests__/html2/hooks/useSuggestedActions.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useSuggestedActions } from 'botframework-webchat/hook'; + import { useSuggestedActions } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { diff --git a/__tests__/html2/hooks/useTextBoxValue.html b/__tests__/html2/hooks/useTextBoxValue.html index 5cd6c83154..1588c53179 100644 --- a/__tests__/html2/hooks/useTextBoxValue.html +++ b/__tests__/html2/hooks/useTextBoxValue.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTextBoxValue } from 'botframework-webchat/hook'; + import { useTextBoxValue } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useTimeoutForSend.default.html b/__tests__/html2/hooks/useTimeoutForSend.default.html index 800ce74181..5d8a5b828a 100644 --- a/__tests__/html2/hooks/useTimeoutForSend.default.html +++ b/__tests__/html2/hooks/useTimeoutForSend.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTimeoutForSend } from 'botframework-webchat/hook'; + import { useTimeoutForSend } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useTimeoutForSend.getter.html b/__tests__/html2/hooks/useTimeoutForSend.getter.html index 8aa2ea7e47..b096317aa9 100644 --- a/__tests__/html2/hooks/useTimeoutForSend.getter.html +++ b/__tests__/html2/hooks/useTimeoutForSend.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTimeoutForSend } from 'botframework-webchat/hook'; + import { useTimeoutForSend } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useTimeoutForSend.setter.html b/__tests__/html2/hooks/useTimeoutForSend.setter.html index 492b073d6d..dcd399f33c 100644 --- a/__tests__/html2/hooks/useTimeoutForSend.setter.html +++ b/__tests__/html2/hooks/useTimeoutForSend.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTimeoutForSend } from 'botframework-webchat/hook'; + import { useTimeoutForSend } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useTrackDimension.html b/__tests__/html2/hooks/useTrackDimension.html index ad43c89e9f..8ca0328884 100644 --- a/__tests__/html2/hooks/useTrackDimension.html +++ b/__tests__/html2/hooks/useTrackDimension.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html b/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html index 9c40a45f85..659fb5f0d9 100644 --- a/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html +++ b/__tests__/html2/hooks/useTrackDimension.invalidDimensionName.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html b/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html index 545deff478..7c3b9980d7 100644 --- a/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html +++ b/__tests__/html2/hooks/useTrackDimension.invalidDimensionValue.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.debug.html b/__tests__/html2/hooks/useTrackEvent.debug.html index ccf60129fc..59d78d642f 100644 --- a/__tests__/html2/hooks/useTrackEvent.debug.html +++ b/__tests__/html2/hooks/useTrackEvent.debug.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.error.complex.html b/__tests__/html2/hooks/useTrackEvent.error.complex.html index 13ff82e28e..f835ee3215 100644 --- a/__tests__/html2/hooks/useTrackEvent.error.complex.html +++ b/__tests__/html2/hooks/useTrackEvent.error.complex.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.html b/__tests__/html2/hooks/useTrackEvent.html index d7825c3ded..5aa3162630 100644 --- a/__tests__/html2/hooks/useTrackEvent.html +++ b/__tests__/html2/hooks/useTrackEvent.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.info.html b/__tests__/html2/hooks/useTrackEvent.info.html index 4d9e395919..12595b9ffb 100644 --- a/__tests__/html2/hooks/useTrackEvent.info.html +++ b/__tests__/html2/hooks/useTrackEvent.info.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html b/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html index b8d57a2b14..928192278f 100644 --- a/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html +++ b/__tests__/html2/hooks/useTrackEvent.invalid.booleanData.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; From 8396036e8a82065acf7162ecf54a2655a6a28d01 Mon Sep 17 00:00:00 2001 From: William Wong Date: Sat, 25 Apr 2026 02:28:44 +0000 Subject: [PATCH 54/59] Fix tests --- __tests__/html2/hooks/useUsername.getter.default.html | 2 +- __tests__/html2/hooks/useUsername.getter.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/__tests__/html2/hooks/useUsername.getter.default.html b/__tests__/html2/hooks/useUsername.getter.default.html index d4d5b2cfb3..77182b1116 100644 --- a/__tests__/html2/hooks/useUsername.getter.default.html +++ b/__tests__/html2/hooks/useUsername.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useUsername } from 'botframework-webchat/hook'; + import { useUsername } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useUsername.getter.html b/__tests__/html2/hooks/useUsername.getter.html index 06d8744131..6c3ba952ac 100644 --- a/__tests__/html2/hooks/useUsername.getter.html +++ b/__tests__/html2/hooks/useUsername.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useUsername } from 'botframework-webchat/hook'; + import { useUsername } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; From 02995d91bff3c9b07682ab15ce743c16b7020eeb Mon Sep 17 00:00:00 2001 From: William Wong Date: Sat, 25 Apr 2026 02:32:28 +0000 Subject: [PATCH 55/59] Fix tests --- __tests__/html2/hooks/useInjectStylesElements/withNonce.html | 2 +- __tests__/html2/middleware/avatar/backwardCompatibility.html | 2 +- .../avatar/legacyAvatarMiddleware/addOrReplace.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/changing.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/decorate.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/delete.html | 2 +- .../avatar/legacyAvatarMiddleware/styleOptions.html | 2 +- .../html2/middleware/avatar/polymiddleware/addOrReplace.html | 2 +- .../html2/middleware/avatar/polymiddleware/changing.html | 2 +- .../html2/middleware/avatar/polymiddleware/decorate.html | 2 +- .../avatar/polymiddleware/defaultAvatar.styleOptions.html | 2 +- __tests__/html2/middleware/avatar/polymiddleware/delete.html | 2 +- __tests__/html2/middleware/avatar/renderProxy.html | 4 ++-- .../html2/middleware/avatar/useBuildRenderAvatarCallback.html | 4 ++-- __tests__/html2/samples/boot/exports.tsx | 2 +- __tests__/html2/samples/middleware/channelMessage.tsx | 2 +- __tests__/html2/samples/middleware/decorateMessage.tsx | 2 +- .../esm.run/supportPolymiddleware.reactDOMRender.html | 4 ++-- .../supportPolymiddleware.reactDOMRender.withCreateRoot.html | 4 ++-- .../esm.run/supportPolymiddleware.renderWebChat.html | 4 ++-- .../esm.sh/supportPolymiddleware.reactDOMRender.html | 2 +- .../supportPolymiddleware.reactDOMRender.withCreateRoot.html | 2 +- .../fatModule/esm.sh/supportPolymiddleware.renderWebChat.html | 2 +- .../supportPolymiddleware.reactDOMRender.withCreateRoot.html | 4 ++-- .../fatModule/supportPolymiddleware.reactDOMRender.html | 4 ++-- .../simple/fatModule/supportPolymiddleware.renderWebChat.html | 4 ++-- __tests__/html2/themeProvider/override.html | 4 ++-- 27 files changed, 36 insertions(+), 36 deletions(-) diff --git a/__tests__/html2/hooks/useInjectStylesElements/withNonce.html b/__tests__/html2/hooks/useInjectStylesElements/withNonce.html index 95d6797a78..8ecdd5bedd 100644 --- a/__tests__/html2/hooks/useInjectStylesElements/withNonce.html +++ b/__tests__/html2/hooks/useInjectStylesElements/withNonce.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { InjectStyleElements } from 'botframework-webchat/internal'; + import { InjectStyleElements } from 'botframework-webchat/internal.js'; import { spyOn } from 'jest-mock'; import { createElement } from 'react'; import { flushSync } from 'react-dom'; diff --git a/__tests__/html2/middleware/avatar/backwardCompatibility.html b/__tests__/html2/middleware/avatar/backwardCompatibility.html index dc68db8921..91b4797977 100644 --- a/__tests__/html2/middleware/avatar/backwardCompatibility.html +++ b/__tests__/html2/middleware/avatar/backwardCompatibility.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html index d59fbb4909..c3a8c42695 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html index cd931bb706..6144a2e965 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html index d59fbb4909..c3a8c42695 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html index b69192cbbc..d1d13426ab 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html index 8bc9afd476..2330f35238 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html b/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html index 1f9619e39e..a0a04cb3c4 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/polymiddleware/changing.html b/__tests__/html2/middleware/avatar/polymiddleware/changing.html index 783390da4e..9899626e59 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/changing.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/changing.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/polymiddleware/decorate.html b/__tests__/html2/middleware/avatar/polymiddleware/decorate.html index 4fe1d7b380..787d5dd4ab 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/decorate.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/decorate.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html b/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html index ccc94f8126..b22d95fbd5 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/polymiddleware/delete.html b/__tests__/html2/middleware/avatar/polymiddleware/delete.html index d78f89e630..b4b243e406 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/delete.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/delete.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware'; + import { avatarComponent, createAvatarPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/middleware/avatar/renderProxy.html b/__tests__/html2/middleware/avatar/renderProxy.html index 3a65c0257e..655c6ffd20 100644 --- a/__tests__/html2/middleware/avatar/renderProxy.html +++ b/__tests__/html2/middleware/avatar/renderProxy.html @@ -22,12 +22,12 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { Composer } from 'botframework-webchat/component'; + import { Composer } from 'botframework-webchat/component.js'; import { AvatarPolymiddlewareProxy, avatarComponent, createAvatarPolymiddleware - } from 'botframework-webchat/middleware'; + } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html b/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html index 6ea4ce540d..56c41a3a3a 100644 --- a/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html +++ b/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html @@ -22,12 +22,12 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, renderWebChat, testIds } from 'botframework-webchat'; - import { Composer } from 'botframework-webchat/component'; + import { Composer } from 'botframework-webchat/component.js'; import { avatarComponent, createAvatarPolymiddleware, useBuildRenderAvatarCallback - } from 'botframework-webchat/middleware'; + } from 'botframework-webchat/middleware.js'; import { createElement, memo } from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/__tests__/html2/samples/boot/exports.tsx b/__tests__/html2/samples/boot/exports.tsx index 0ff01adb74..554e893368 100644 --- a/__tests__/html2/samples/boot/exports.tsx +++ b/__tests__/html2/samples/boot/exports.tsx @@ -14,7 +14,7 @@ import ReactWebChat, { createBrowserWebSpeechPonyfillFactory, decorator } from 'botframework-webchat'; -import { activityComponent } from 'botframework-webchat/middleware'; +import { activityComponent } from 'botframework-webchat/middleware.js'; run(() => { // THEN: It should have "ReactWebChat". diff --git a/__tests__/html2/samples/middleware/channelMessage.tsx b/__tests__/html2/samples/middleware/channelMessage.tsx index 8fe2754dba..9b78a2e1c2 100644 --- a/__tests__/html2/samples/middleware/channelMessage.tsx +++ b/__tests__/html2/samples/middleware/channelMessage.tsx @@ -12,7 +12,7 @@ import { activityComponent, createActivityPolymiddleware, type ActivityPolymiddlewareProps -} from 'botframework-webchat/middleware'; +} from 'botframework-webchat/middleware.js'; import React, { memo } from 'react'; import { render } from 'react-dom'; // #endregion Sample code diff --git a/__tests__/html2/samples/middleware/decorateMessage.tsx b/__tests__/html2/samples/middleware/decorateMessage.tsx index db7f4ec5c9..c80c61762a 100644 --- a/__tests__/html2/samples/middleware/decorateMessage.tsx +++ b/__tests__/html2/samples/middleware/decorateMessage.tsx @@ -12,7 +12,7 @@ import { createActivityPolymiddleware, type ActivityPolymiddlewareProps, type ActivityPolymiddlewareRenderer -} from 'botframework-webchat/middleware'; +} from 'botframework-webchat/middleware.js'; import React, { Fragment, memo, useMemo } from 'react'; import { render } from 'react-dom'; diff --git a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html index ecdbbe9174..ee9d2b61f8 100644 --- a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html +++ b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.html @@ -21,8 +21,8 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { render } from 'react-dom'; diff --git a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html index 831e7116bd..333d432483 100644 --- a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html +++ b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -21,8 +21,8 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html index b2540d09d9..5db8af2ce9 100644 --- a/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html +++ b/__tests__/html2/simple/fatModule/esm.run/supportPolymiddleware.renderWebChat.html @@ -21,8 +21,8 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, renderWebChat } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html index 4b92f4ea35..e4b4d13f88 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { render } from 'react-dom'; diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html index 837652e5a9..0babbb5416 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html index a71cf8415f..31f0273e96 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html @@ -20,7 +20,7 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, renderWebChat } from 'botframework-webchat'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { useStyleOptions } = hooks; diff --git a/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html b/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html index be0315d053..15853a8cb1 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html +++ b/__tests__/html2/simple/fatModule/esm.sh/tsx/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -24,8 +24,8 @@ import '#test-page-object'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { createRoot } from 'react-dom/client'; diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html index fa102a4f9f..a5293ab4f0 100644 --- a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html +++ b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html @@ -20,8 +20,8 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; import { render } from 'react-dom'; diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html index 84904c72b4..1d7acf2091 100644 --- a/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html +++ b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html @@ -20,8 +20,8 @@ import '/test-page-object.mjs'; import { createDirectLine, createStoreWithOptions, hooks, renderWebChat } from 'botframework-webchat'; - import { useStyleOptions } from 'botframework-webchat/hook'; - import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware'; + import { useStyleOptions } from 'botframework-webchat/hook.js'; + import { activityComponent, createActivityPolymiddleware } from 'botframework-webchat/middleware.js'; import { createElement } from 'react'; const { diff --git a/__tests__/html2/themeProvider/override.html b/__tests__/html2/themeProvider/override.html index a7b84ed453..ca18774bb9 100644 --- a/__tests__/html2/themeProvider/override.html +++ b/__tests__/html2/themeProvider/override.html @@ -36,8 +36,8 @@ import { FluentProvider, webLightTheme } from '@fluentui/react-components'; import { createDirectLine, createStoreWithOptions, hooks, ReactWebChat } from 'botframework-webchat'; - import { ThemeProvider } from 'botframework-webchat/component'; - import { InjectStyleElements } from 'botframework-webchat/internal'; + import { ThemeProvider } from 'botframework-webchat/component.js'; + import { InjectStyleElements } from 'botframework-webchat/internal.js'; import { FluentThemeProvider } from 'botframework-webchat-fluent-theme'; import { spyOn } from 'jest-mock'; import { createElement, Fragment } from 'react'; From 34feb1b4f6f8e34929d7e792af1d44873ad16b88 Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 27 Apr 2026 18:19:59 +0000 Subject: [PATCH 56/59] Fix position logic --- .../activities/sort/private/getPartGroupingMetadataMap.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts b/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts index 7cf6ed0dc5..1d37f7b22d 100644 --- a/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts +++ b/packages/core/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts @@ -13,12 +13,14 @@ function getPartGroupingMetadataMap(activity: WebChatActivity): ReadonlyMap Date: Mon, 27 Apr 2026 18:56:36 +0000 Subject: [PATCH 57/59] Suffix with .js --- __tests__/html2/hooks/useTrackEvent.invalid.complex.html | 2 +- __tests__/html2/hooks/useTrackEvent.invalid.name.html | 2 +- __tests__/html2/hooks/useTrackEvent.warn.numeric.html | 2 +- __tests__/html2/hooks/useTrackException.html | 2 +- __tests__/html2/hooks/useTrackException.nonFatal.html | 2 +- __tests__/html2/hooks/useUserID.getter.default.html | 2 +- __tests__/html2/hooks/useUserID.getter.html | 2 +- __tests__/html2/hooks/useUserID.setter.html | 2 +- __tests__/html2/hooks/useUsername.setter.html | 2 +- __tests__/html2/hooks/useVoiceSelector.html | 2 +- __tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html | 2 +- __tests__/html2/hooks/useWebSpeechPonyfill.getter.html | 2 +- __tests__/html2/hooks/useWebSpeechPonyfill.setter.html | 2 +- __tests__/html2/simple/fatModule/simple.runHook.html | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/__tests__/html2/hooks/useTrackEvent.invalid.complex.html b/__tests__/html2/hooks/useTrackEvent.invalid.complex.html index 1146ce9e16..16b97a32c3 100644 --- a/__tests__/html2/hooks/useTrackEvent.invalid.complex.html +++ b/__tests__/html2/hooks/useTrackEvent.invalid.complex.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.invalid.name.html b/__tests__/html2/hooks/useTrackEvent.invalid.name.html index f9426bb517..ac77fb8da9 100644 --- a/__tests__/html2/hooks/useTrackEvent.invalid.name.html +++ b/__tests__/html2/hooks/useTrackEvent.invalid.name.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackEvent.warn.numeric.html b/__tests__/html2/hooks/useTrackEvent.warn.numeric.html index 00c16f54c8..f321ce0f60 100644 --- a/__tests__/html2/hooks/useTrackEvent.warn.numeric.html +++ b/__tests__/html2/hooks/useTrackEvent.warn.numeric.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackEvent } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackException.html b/__tests__/html2/hooks/useTrackException.html index 89081c0af1..12d8a6e527 100644 --- a/__tests__/html2/hooks/useTrackException.html +++ b/__tests__/html2/hooks/useTrackException.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackException } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackException } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useTrackException.nonFatal.html b/__tests__/html2/hooks/useTrackException.nonFatal.html index 87765993b7..0672d16086 100644 --- a/__tests__/html2/hooks/useTrackException.nonFatal.html +++ b/__tests__/html2/hooks/useTrackException.nonFatal.html @@ -22,7 +22,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useTrackDimension, useTrackException } from 'botframework-webchat/hook'; + import { useTrackDimension, useTrackException } from 'botframework-webchat/hook.js'; import { fn } from 'jest-mock'; import createRenderHook from '/assets/esm/createRenderHook.js'; diff --git a/__tests__/html2/hooks/useUserID.getter.default.html b/__tests__/html2/hooks/useUserID.getter.default.html index 5a109320a0..f54413ebb2 100644 --- a/__tests__/html2/hooks/useUserID.getter.default.html +++ b/__tests__/html2/hooks/useUserID.getter.default.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useUserID } from 'botframework-webchat/hook'; + import { useUserID } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useUserID.getter.html b/__tests__/html2/hooks/useUserID.getter.html index 293f611d2b..6b7f569142 100644 --- a/__tests__/html2/hooks/useUserID.getter.html +++ b/__tests__/html2/hooks/useUserID.getter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useUserID } from 'botframework-webchat/hook'; + import { useUserID } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useUserID.setter.html b/__tests__/html2/hooks/useUserID.setter.html index 8e38d056c9..9c50305cc7 100644 --- a/__tests__/html2/hooks/useUserID.setter.html +++ b/__tests__/html2/hooks/useUserID.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useUserID } from 'botframework-webchat/hook'; + import { useUserID } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useUsername.setter.html b/__tests__/html2/hooks/useUsername.setter.html index 8775d71f1e..7a108e9d40 100644 --- a/__tests__/html2/hooks/useUsername.setter.html +++ b/__tests__/html2/hooks/useUsername.setter.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useUsername } from 'botframework-webchat/hook'; + import { useUsername } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useVoiceSelector.html b/__tests__/html2/hooks/useVoiceSelector.html index a276d65d46..f8597d5036 100644 --- a/__tests__/html2/hooks/useVoiceSelector.html +++ b/__tests__/html2/hooks/useVoiceSelector.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useVoiceSelector } from 'botframework-webchat/hook'; + import { useVoiceSelector } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html index c15b128739..acec4a60b7 100644 --- a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html +++ b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.bypass.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useWebSpeechPonyfill } from 'botframework-webchat/hook'; + import { useWebSpeechPonyfill } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; diff --git a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html index 08c9d35ae8..d49b45925c 100644 --- a/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html +++ b/__tests__/html2/hooks/useWebSpeechPonyfill.getter.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useWebSpeechPonyfill } from 'botframework-webchat/hook'; + import { useWebSpeechPonyfill } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html b/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html index 714cff1122..76aa627235 100644 --- a/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html +++ b/__tests__/html2/hooks/useWebSpeechPonyfill.setter.html @@ -24,7 +24,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useWebSpeechPonyfill } from 'botframework-webchat/hook'; + import { useWebSpeechPonyfill } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; import { actRecognizeOnce, createWebSpeechPonyfill } from '/assets/esm/speech/speechPageObjects.js'; diff --git a/__tests__/html2/simple/fatModule/simple.runHook.html b/__tests__/html2/simple/fatModule/simple.runHook.html index 0a3466d5ad..35b9ad5d67 100644 --- a/__tests__/html2/simple/fatModule/simple.runHook.html +++ b/__tests__/html2/simple/fatModule/simple.runHook.html @@ -21,7 +21,7 @@ import '/test-page-object.mjs'; import { createStoreWithOptions, testIds } from 'botframework-webchat'; - import { useLanguage } from 'botframework-webchat/hook'; + import { useLanguage } from 'botframework-webchat/hook.js'; import createRenderHook from '/assets/esm/createRenderHook.js'; const { createDirectLineEmulator } = window.testHelpers; From 5a7b0b6b5c37bf1b1f419380e3aa108c4d581be9 Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 27 Apr 2026 19:57:03 +0000 Subject: [PATCH 58/59] Fix ESLint --- packages/api-graph/src/private/GraphProvider.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/api-graph/src/private/GraphProvider.tsx b/packages/api-graph/src/private/GraphProvider.tsx index 5cf5a8975b..6a963943d9 100644 --- a/packages/api-graph/src/private/GraphProvider.tsx +++ b/packages/api-graph/src/private/GraphProvider.tsx @@ -1,7 +1,12 @@ import type { DirectLineActivityNode } from '@msinternal/botframework-webchat-core-graph'; import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot'; import { createStore, WebChatActivity } from 'botframework-webchat-core'; -import { createGraphFromStore, isOfType, type GraphSubscriber, type Identifier } from 'botframework-webchat-core/graph.js'; +import { + createGraphFromStore, + isOfType, + type GraphSubscriber, + type Identifier +} from 'botframework-webchat-core/graph.js'; import React, { memo, useEffect, useMemo, useState } from 'react'; import { custom, function_, object, optional, parse, pipe, readonly, safeParse, type InferInput } from 'valibot'; From 76261d45a2b140ccec15465a4ea526ea03685920 Mon Sep 17 00:00:00 2001 From: William Wong Date: Mon, 27 Apr 2026 20:26:04 +0000 Subject: [PATCH 59/59] Fix import map --- __tests__/html2/boot/deprecation/components.new.html | 2 +- __tests__/html2/middleware/avatar/backwardCompatibility.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/addOrReplace.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/changing.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/decorate.html | 2 +- .../html2/middleware/avatar/legacyAvatarMiddleware/delete.html | 2 +- .../middleware/avatar/legacyAvatarMiddleware/styleOptions.html | 2 +- .../html2/middleware/avatar/polymiddleware/addOrReplace.html | 2 +- __tests__/html2/middleware/avatar/polymiddleware/changing.html | 2 +- __tests__/html2/middleware/avatar/polymiddleware/decorate.html | 2 +- .../avatar/polymiddleware/defaultAvatar.styleOptions.html | 2 +- __tests__/html2/middleware/avatar/polymiddleware/delete.html | 2 +- __tests__/html2/middleware/avatar/renderProxy.html | 3 +-- .../html2/middleware/avatar/useBuildRenderAvatarCallback.html | 3 +-- .../fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html | 2 +- .../supportPolymiddleware.reactDOMRender.withCreateRoot.html | 2 +- .../fatModule/esm.sh/supportPolymiddleware.renderWebChat.html | 2 +- 17 files changed, 17 insertions(+), 19 deletions(-) diff --git a/__tests__/html2/boot/deprecation/components.new.html b/__tests__/html2/boot/deprecation/components.new.html index 9cb6e0edcd..8030c6a8f9 100644 --- a/__tests__/html2/boot/deprecation/components.new.html +++ b/__tests__/html2/boot/deprecation/components.new.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "jest-mock": "https://esm.sh/jest-mock", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" diff --git a/__tests__/html2/middleware/avatar/backwardCompatibility.html b/__tests__/html2/middleware/avatar/backwardCompatibility.html index 91b4797977..c1df5f8971 100644 --- a/__tests__/html2/middleware/avatar/backwardCompatibility.html +++ b/__tests__/html2/middleware/avatar/backwardCompatibility.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html index c3a8c42695..2da4bad78d 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/addOrReplace.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html index 6144a2e965..a194772910 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/changing.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html index c3a8c42695..2da4bad78d 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/decorate.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html index d1d13426ab..7454bd609e 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/delete.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html index 2330f35238..17d075a48d 100644 --- a/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html +++ b/__tests__/html2/middleware/avatar/legacyAvatarMiddleware/styleOptions.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html b/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html index a0a04cb3c4..82de8c9a07 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/addOrReplace.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/polymiddleware/changing.html b/__tests__/html2/middleware/avatar/polymiddleware/changing.html index 9899626e59..20f6db9964 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/changing.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/changing.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/polymiddleware/decorate.html b/__tests__/html2/middleware/avatar/polymiddleware/decorate.html index 787d5dd4ab..743e3adb5d 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/decorate.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/decorate.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html b/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html index b22d95fbd5..1c56c51b8c 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/defaultAvatar.styleOptions.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/polymiddleware/delete.html b/__tests__/html2/middleware/avatar/polymiddleware/delete.html index b4b243e406..b6f57fdbee 100644 --- a/__tests__/html2/middleware/avatar/polymiddleware/delete.html +++ b/__tests__/html2/middleware/avatar/polymiddleware/delete.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js" } diff --git a/__tests__/html2/middleware/avatar/renderProxy.html b/__tests__/html2/middleware/avatar/renderProxy.html index 655c6ffd20..8e258df1cf 100644 --- a/__tests__/html2/middleware/avatar/renderProxy.html +++ b/__tests__/html2/middleware/avatar/renderProxy.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js", "react-dom/client": "/__dist__/packages/bundle/static/react-dom/client.js" diff --git a/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html b/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html index 56c41a3a3a..60199cc9b4 100644 --- a/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html +++ b/__tests__/html2/middleware/avatar/useBuildRenderAvatarCallback.html @@ -9,8 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/component": "/__dist__/packages/bundle/static/botframework-webchat/component.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "/__dist__/packages/bundle/static/react.js", "react-dom": "/__dist__/packages/bundle/static/react-dom.js", "react-dom/client": "/__dist__/packages/bundle/static/react-dom/client.js" diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html index e4b4d13f88..dc97c9d137 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18" } diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html index 0babbb5416..5fdb87c966 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18", "react-dom/": "https://esm.sh/react-dom@18/" diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html index 31f0273e96..3bf2102636 100644 --- a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.renderWebChat.html @@ -9,7 +9,7 @@ { "imports": { "botframework-webchat": "/__dist__/packages/bundle/static/botframework-webchat.js", - "botframework-webchat/middleware": "/__dist__/packages/bundle/static/botframework-webchat/middleware.js", + "botframework-webchat/": "/__dist__/packages/bundle/static/botframework-webchat/", "react": "https://esm.sh/react@18", "react-dom": "https://esm.sh/react-dom@18" }