diff --git a/.dockerignore b/.dockerignore index 761db7d9df..20553e5278 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,6 +2,7 @@ !/__tests__ /__tests__/__image_snapshots__ !/packages/bundle/dist +!/packages/bundle/static !/packages/debug-theme/dist !/packages/fluent-theme/dist !/packages/playground/build diff --git a/.github/workflows/daily-release.yaml b/.github/workflows/daily-release.yaml index 4f6bd3d192..a06dbad31b 100644 --- a/.github/workflows/daily-release.yaml +++ b/.github/workflows/daily-release.yaml @@ -78,7 +78,9 @@ jobs: uses: actions/upload-artifact@v4 with: name: bundles - path: packages/bundle/dist/**/* + path: | + packages/bundle/dist/**/* + packages/bundle/stable/**/* - name: Upload tarballs uses: actions/upload-artifact@v4 diff --git a/.github/workflows/preview-branch.yml b/.github/workflows/preview-branch.yml index b164ee84be..dba30ee791 100644 --- a/.github/workflows/preview-branch.yml +++ b/.github/workflows/preview-branch.yml @@ -61,7 +61,9 @@ jobs: uses: actions/upload-artifact@v2 with: name: bundle - path: 'packages/bundle/dist/**/*' + path: | + packages/bundle/dist/**/* + packages/bundle/stable/**/* - name: Upload npm-tarball uses: actions/upload-artifact@v2 diff --git a/.github/workflows/pull-request-validation.yml b/.github/workflows/pull-request-validation.yml index 5fcc046900..887eb6f756 100644 --- a/.github/workflows/pull-request-validation.yml +++ b/.github/workflows/pull-request-validation.yml @@ -57,6 +57,7 @@ jobs: ./package.json ./__tests__/ ./packages/bundle/dist/ + ./packages/bundle/static/ ./packages/debug-theme/dist/ ./packages/fluent-theme/dist/ ./packages/test/harness/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e6e5b06db..e5e6b87097 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -137,6 +137,7 @@ Notes: web developers are advised to use [`~` (tilde range)](https://github.com/ - `api`: `botframework-webchat-api/hook` - `bundle`: `botframework-webchat/component`, `botframework-webchat/decorator` (internal-use), `botframework-webchat/hook` - `component`: `botframework-webchat-component/component`, `botframework-webchat-component/hook` +- (Experimental) Added support for importing via ` + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/adaptiveCards.html.snap-1.png b/__tests__/html2/simple/fatModule/adaptiveCards.html.snap-1.png new file mode 100644 index 0000000000..f167936647 Binary files /dev/null and b/__tests__/html2/simple/fatModule/adaptiveCards.html.snap-1.png differ diff --git a/__tests__/html2/simple/fatModule/esm.sh/adaptiveCards.html b/__tests__/html2/simple/fatModule/esm.sh/adaptiveCards.html new file mode 100644 index 0000000000..42163e348c --- /dev/null +++ b/__tests__/html2/simple/fatModule/esm.sh/adaptiveCards.html @@ -0,0 +1,82 @@ + + + + + + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/esm.sh/adaptiveCards.html.snap-1.png b/__tests__/html2/simple/fatModule/esm.sh/adaptiveCards.html.snap-1.png new file mode 100644 index 0000000000..f167936647 Binary files /dev/null and b/__tests__/html2/simple/fatModule/esm.sh/adaptiveCards.html.snap-1.png differ diff --git a/__tests__/html2/simple/fatModule/simple.skip.html b/__tests__/html2/simple/fatModule/esm.sh/simple.html similarity index 76% rename from __tests__/html2/simple/fatModule/simple.skip.html rename to __tests__/html2/simple/fatModule/esm.sh/simple.html index c49876ffd4..3fd1242db6 100644 --- a/__tests__/html2/simple/fatModule/simple.skip.html +++ b/__tests__/html2/simple/fatModule/esm.sh/simple.html @@ -10,7 +10,9 @@ @@ -27,13 +29,7 @@ const { directLine, store } = createDirectLineEmulator(); - renderWebChat( - { - directLine, - store - }, - document.getElementById('webchat') - ); + renderWebChat({ directLine, store }, document.getElementById('webchat')); await pageConditions.uiConnected(); @@ -42,6 +38,8 @@ await pageConditions.numActivitiesShown(1); await host.snapshot('local'); + + expect(typeof globalThis.React).toBe('undefined'); }); diff --git a/__tests__/html2/simple/fatModule/esm.sh/simple.html.snap-1.png b/__tests__/html2/simple/fatModule/esm.sh/simple.html.snap-1.png new file mode 100644 index 0000000000..49d0068b80 Binary files /dev/null and b/__tests__/html2/simple/fatModule/esm.sh/simple.html.snap-1.png differ diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html new file mode 100644 index 0000000000..c8a4a15264 --- /dev/null +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html @@ -0,0 +1,71 @@ + + + + + + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html.snap-1.png b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html.snap-1.png new file mode 100644 index 0000000000..927c13385e Binary files /dev/null and b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.html.snap-1.png differ diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.skip.html b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html similarity index 82% rename from __tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.skip.html rename to __tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html index 0751f822ed..999bc03322 100644 --- a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.skip.html +++ b/__tests__/html2/simple/fatModule/esm.sh/supportPolymiddleware.reactDOMRender.withCreateRoot.html @@ -10,22 +10,14 @@ - - - + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/simple.html.snap-1.png b/__tests__/html2/simple/fatModule/simple.html.snap-1.png new file mode 100644 index 0000000000..49d0068b80 Binary files /dev/null and b/__tests__/html2/simple/fatModule/simple.html.snap-1.png differ diff --git a/__tests__/html2/simple/fatModule/speech.skip.html b/__tests__/html2/simple/fatModule/speech.skip.html new file mode 100644 index 0000000000..80d3be670c --- /dev/null +++ b/__tests__/html2/simple/fatModule/speech.skip.html @@ -0,0 +1,63 @@ + + + + + + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html new file mode 100644 index 0000000000..5f33134e4b --- /dev/null +++ b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html @@ -0,0 +1,71 @@ + + + + + + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html.snap-1.png b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html.snap-1.png new file mode 100644 index 0000000000..927c13385e Binary files /dev/null and b/__tests__/html2/simple/fatModule/supportPolymiddleware.reactDOMRender.html.snap-1.png differ diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html new file mode 100644 index 0000000000..7576927a84 --- /dev/null +++ b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html @@ -0,0 +1,70 @@ + + + + + + + + +
+ + + + diff --git a/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html.snap-1.png b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html.snap-1.png new file mode 100644 index 0000000000..927c13385e Binary files /dev/null and b/__tests__/html2/simple/fatModule/supportPolymiddleware.renderWebChat.html.snap-1.png differ diff --git a/__tests__/html2/simple/speech.skip.html b/__tests__/html2/simple/speech.skip.html new file mode 100644 index 0000000000..8ad5610ad7 --- /dev/null +++ b/__tests__/html2/simple/speech.skip.html @@ -0,0 +1,54 @@ + + + + + + + + + +
+ + + diff --git a/docker-compose-wsl2.yml b/docker-compose-wsl2.yml index 73f3e6e74e..30a65cb50d 100644 --- a/docker-compose-wsl2.yml +++ b/docker-compose-wsl2.yml @@ -44,6 +44,7 @@ services: - ./__tests__/html/:/var/web/__tests__/html/ - ./__tests__/html2/:/var/web/__tests__/html2/ - ./packages/bundle/dist/:/var/web/packages/bundle/dist/ + - ./packages/bundle/static/:/var/web/packages/bundle/static/ - ./packages/debug-theme/dist/:/var/web/packages/debug-theme/dist/ - ./packages/fluent-theme/dist/:/var/web/packages/fluent-theme/dist/ - ./packages/test/harness/dist/:/var/web/packages/test/harness/dist/ diff --git a/lint-staged.config.js b/lint-staged.config.js index 1ced786cde..287c4fb143 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -25,6 +25,19 @@ module.exports = { 'packages/react-hooks/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:react-hooks'], 'packages/react-valibot/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:react-valibot'], 'packages/redux-store/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:redux-store'], + 'packages/repack-adaptivecards/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-adaptivecards'], + 'packages/repack-base64-js/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-base64-js'], + 'packages/repack-botframework-directlinejs/src/**/*.{mjs,js,ts,tsx}': [ + 'npm run precommit:eslint:repack-botframework-directlinejs' + ], + 'packages/repack-html-react-parser/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-html-react-parser'], + 'packages/repack-microsoft-cognitiveservices-speech-sdk/src/**/*.{mjs,js,ts,tsx}': [ + 'npm run precommit:eslint:repack-microsoft-cognitiveservices-speech-sdk' + ], + 'packages/repack-object-assign/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-object-assign'], + 'packages/repack-react/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-react'], + 'packages/repack-react-dom/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-react-dom'], + 'packages/repack-react-is/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:repack-react-is'], 'packages/styles/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:styles'], 'packages/support/cldr-data/src/**/*.{mjs,js,ts,tsx}': ['npm run precommit:eslint:support-cldr-data'], 'packages/support/cldr-data-downloader/src/**/*.{mjs,js,ts,tsx}': [ diff --git a/package-lock.json b/package-lock.json index 7827e11002..b10983d6b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,15 @@ "./packages/isomorphic-react", "./packages/isomorphic-react-dom", "./packages/component", + "./packages/repack/adaptivecards", + "./packages/repack/base64-js", + "./packages/repack/botframework-directlinejs", + "./packages/repack/html-react-parser", + "./packages/repack/microsoft-cognitiveservices-speech-sdk", + "./packages/repack/object-assign", + "./packages/repack/react", + "./packages/repack/react-dom", + "./packages/repack/react-is", "./packages/directlinespeech", "./packages/bundle", "./packages/test/page-object", @@ -1974,7 +1983,7 @@ "license": "MIT" }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.8", + "version": "0.25.10", "cpu": [ "x64" ], @@ -2781,6 +2790,18 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@msinternal/adaptivecards": { + "resolved": "packages/repack/adaptivecards", + "link": true + }, + "node_modules/@msinternal/base64-js": { + "resolved": "packages/repack/base64-js", + "link": true + }, + "node_modules/@msinternal/botframework-directlinejs": { + "resolved": "packages/repack/botframework-directlinejs", + "link": true + }, "node_modules/@msinternal/botframework-webchat-api-middleware": { "resolved": "packages/api-middleware", "link": true @@ -2825,6 +2846,10 @@ "resolved": "packages/test/dev-server", "link": true }, + "node_modules/@msinternal/html-react-parser": { + "resolved": "packages/repack/html-react-parser", + "link": true + }, "node_modules/@msinternal/isomorphic-react": { "resolved": "packages/isomorphic-react", "link": true @@ -2833,6 +2858,26 @@ "resolved": "packages/isomorphic-react-dom", "link": true }, + "node_modules/@msinternal/microsoft-cognitiveservices-speech-sdk": { + "resolved": "packages/repack/microsoft-cognitiveservices-speech-sdk", + "link": true + }, + "node_modules/@msinternal/object-assign": { + "resolved": "packages/repack/object-assign", + "link": true + }, + "node_modules/@msinternal/react": { + "resolved": "packages/repack/react", + "link": true + }, + "node_modules/@msinternal/react-dom": { + "resolved": "packages/repack/react-dom", + "link": true + }, + "node_modules/@msinternal/react-is": { + "resolved": "packages/repack/react-is", + "link": true + }, "node_modules/@msinternal/test-harness": { "resolved": "packages/test/harness", "link": true @@ -3533,11 +3578,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/webrtc": { - "version": "0.0.37", - "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.37.tgz", - "integrity": "sha512-JGAJC/ZZDhcrrmepU4sPLQLIOIAgs5oIK+Ieq90K8fdaNMhfdfqmYatJdgif1NDQtvrSlTOGJDUYHIDunuufOg==" - }, "node_modules/@types/whatwg-mimetype": { "version": "3.0.2", "dev": true, @@ -4406,8 +4446,7 @@ }, "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==", + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -4417,8 +4456,7 @@ }, "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==", + "license": "MIT", "dependencies": { "asn1.js-rfc5280": "^3.0.0" }, @@ -4428,16 +4466,14 @@ }, "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==", + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "debug": "^4.1.1", "heimdalljs": "^0.2.3", @@ -4453,8 +4489,7 @@ }, "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==", + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -4751,8 +4786,7 @@ }, "node_modules/binaryextensions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", - "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", + "license": "MIT", "engines": { "node": ">=0.8" }, @@ -4762,8 +4796,7 @@ }, "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==" + "license": "MIT" }, "node_modules/body-parser": { "version": "2.2.0", @@ -6364,8 +6397,7 @@ }, "node_modules/editions": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", - "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", + "license": "MIT", "dependencies": { "errlop": "^2.0.0", "semver": "^6.3.0" @@ -6461,8 +6493,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=0.8" }, @@ -6680,7 +6711,7 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.8", + "version": "0.25.10", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6691,32 +6722,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.8", - "@esbuild/android-arm": "0.25.8", - "@esbuild/android-arm64": "0.25.8", - "@esbuild/android-x64": "0.25.8", - "@esbuild/darwin-arm64": "0.25.8", - "@esbuild/darwin-x64": "0.25.8", - "@esbuild/freebsd-arm64": "0.25.8", - "@esbuild/freebsd-x64": "0.25.8", - "@esbuild/linux-arm": "0.25.8", - "@esbuild/linux-arm64": "0.25.8", - "@esbuild/linux-ia32": "0.25.8", - "@esbuild/linux-loong64": "0.25.8", - "@esbuild/linux-mips64el": "0.25.8", - "@esbuild/linux-ppc64": "0.25.8", - "@esbuild/linux-riscv64": "0.25.8", - "@esbuild/linux-s390x": "0.25.8", - "@esbuild/linux-x64": "0.25.8", - "@esbuild/netbsd-arm64": "0.25.8", - "@esbuild/netbsd-x64": "0.25.8", - "@esbuild/openbsd-arm64": "0.25.8", - "@esbuild/openbsd-x64": "0.25.8", - "@esbuild/openharmony-arm64": "0.25.8", - "@esbuild/sunos-x64": "0.25.8", - "@esbuild/win32-arm64": "0.25.8", - "@esbuild/win32-ia32": "0.25.8", - "@esbuild/win32-x64": "0.25.8" + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" } }, "node_modules/escalade": { @@ -8458,16 +8489,14 @@ }, "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==", + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", @@ -8536,7 +8565,8 @@ }, "node_modules/html-react-parser": { "version": "5.2.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.2.6.tgz", + "integrity": "sha512-qcpPWLaSvqXi+TndiHbCa+z8qt0tVzjMwFGFBAa41ggC+ZA5BHaMIeMJla9g3VSp4SmiZb9qyQbmbpHYpIfPOg==", "dependencies": { "domhandler": "5.0.3", "html-dom-parser": "5.1.1", @@ -8807,6 +8837,15 @@ "node": ">=8" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "dev": true, @@ -9505,8 +9544,7 @@ }, "node_modules/istextorbinary": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", - "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", + "license": "MIT", "dependencies": { "binaryextensions": "^2.1.2", "editions": "^2.2.0", @@ -11902,50 +11940,90 @@ } }, "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.17.0", + "license": "MIT", "dependencies": { - "@types/webrtc": "^0.0.37", "agent-base": "^6.0.1", - "bent": "^7.3.12", + "asn1.js-rfc2560": "^5.0.1", + "asn1.js-rfc5280": "^3.0.0", + "async-disk-cache": "^2.1.0", "https-proxy-agent": "^4.0.0", - "uuid": "^9.0.0", - "ws": "^8.18.2" + "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/microsoft-cognitiveservices-speech-sdk/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/@angular/common": { + "version": "20.3.1", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@angular/core": "20.3.1", + "rxjs": "^6.5.3 || ^7.4.0" } }, - "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==", + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/@angular/core": { + "version": "20.3.1", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=10.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "@angular/compiler": "20.3.1", + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.15.0" }, "peerDependenciesMeta": { - "bufferutil": { + "@angular/compiler": { "optional": true }, - "utf-8-validate": { + "zone.js": { "optional": true } } }, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/rxjs": { + "version": "7.8.2", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/uuid": { + "version": "3.4.0", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/xmlhttprequest-ts": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.2" + }, + "peerDependencies": { + "@angular/common": ">= 5.0.0", + "@angular/core": ">= 5.0.0" + } + }, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/xmlhttprequest-ts/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, "node_modules/mime": { "version": "1.6.0", "dev": true, @@ -12006,8 +12084,7 @@ }, "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==" + "license": "ISC" }, "node_modules/minimatch": { "version": "9.0.5", @@ -13140,8 +13217,7 @@ }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -13432,6 +13508,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-pkg-up": { + "version": "11.0.0", + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "4.41.0", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/read-pkg/node_modules/parse-json": { "version": "8.1.0", "license": "MIT", @@ -13907,8 +14008,7 @@ }, "node_modules/rsvp": { "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "license": "MIT", "engines": { "node": "6.* || >= 7.*" } @@ -14611,9 +14711,7 @@ "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==" + "version": "0.0.2" }, "node_modules/simple-update-in": { "version": "2.2.0", @@ -15415,8 +15513,7 @@ }, "node_modules/textextensions": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", + "license": "MIT", "engines": { "node": ">=0.8" }, @@ -16315,8 +16412,7 @@ }, "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==", + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -16374,8 +16470,7 @@ }, "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==" + "license": "MIT" }, "node_modules/util-deprecate": { "version": "1.0.2", @@ -17491,7 +17586,7 @@ "micromark": "4.0.2", "micromark-extension-gfm": "3.0.0", "micromark-util-character": "2.1.1", - "microsoft-cognitiveservices-speech-sdk": "1.45.0", + "microsoft-cognitiveservices-speech-sdk": "1.17.0", "prop-types": "15.8.1", "punycode": "2.3.1", "sanitize-html": "2.17.0", @@ -17510,11 +17605,19 @@ "@babel/preset-env": "^7.28.0", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.27.1", + "@msinternal/adaptivecards": "0.0.0-0", + "@msinternal/base64-js": "0.0.0-0", + "@msinternal/botframework-directlinejs": "0.0.0-0", "@msinternal/botframework-webchat-base": "0.0.0-0", "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", - "@msinternal/botframework-webchat-tsconfig": "^0.0.0-0", - "@msinternal/isomorphic-react": "^0.0.0-0", - "@msinternal/isomorphic-react-dom": "^0.0.0-0", + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@msinternal/isomorphic-react": "0.0.0-0", + "@msinternal/isomorphic-react-dom": "0.0.0-0", + "@msinternal/microsoft-cognitiveservices-speech-sdk": "0.0.0-0", + "@msinternal/object-assign": "0.0.0-0", + "@msinternal/react": "0.0.0-0", + "@msinternal/react-dom": "0.0.0-0", + "@msinternal/react-is": "0.0.0-0", "@types/dom-speech-recognition": "^0.0.6", "@types/mdast": "^4.0.4", "@types/node": "^24.1.0", @@ -17524,7 +17627,9 @@ "babel-plugin-transform-inline-environment-variables": "^0.4.4", "cross-env": "^10.0.0", "esbuild": "^0.25.8", + "import-meta-resolve": "^4.2.0", "micromark-util-types": "^2.0.2", + "read-pkg-up": "^11.0.0", "tsd": "^0.32.0", "type-fest": "^4.41.0", "typescript": "~5.8.3" @@ -18250,47 +18355,6 @@ "node": ">= 10.14.2" } }, - "packages/directlinespeech/node_modules/@angular/common": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.1.tgz", - "integrity": "sha512-7Ru3BO4MOBQRMu9GJS+061cUsevKNsNAMxXnQtcqEaNyntUg2v0XiMdv4I7pQGtkQjFK17bKAxQ97jqxJfqsRQ==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/core": "20.3.1", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "packages/directlinespeech/node_modules/@angular/core": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.1.tgz", - "integrity": "sha512-O03k9ivZ2CvoHXiXGH5WKlWlTtxF2UGMwGXWnV54vGViHwNcvU5Z3h6Ve6mdU9dYMHK9sGljYZnkRpwI3B8mnQ==", - "peer": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@angular/compiler": "20.3.1", - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.15.0" - }, - "peerDependenciesMeta": { - "@angular/compiler": { - "optional": true - }, - "zone.js": { - "optional": true - } - } - }, "packages/directlinespeech/node_modules/event-target-shim": { "version": "6.0.2", "license": "MIT", @@ -18301,58 +18365,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "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": { - "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/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", @@ -18665,6 +18677,107 @@ "react": ">= 16.8.6" } }, + "packages/repack/adaptivecards": { + "name": "@msinternal/adaptivecards", + "version": "0.0.0-0", + "dependencies": { + "adaptivecards": "3.0.2" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } + }, + "packages/repack/base64-js": { + "name": "@msinternal/base64-js", + "version": "0.0.0-0", + "dependencies": { + "base64-js": "1.5.1" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } + }, + "packages/repack/botframework-directlinejs": { + "name": "@msinternal/botframework-directlinejs", + "version": "0.0.0-0", + "dependencies": { + "botframework-directlinejs": "0.15.6" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } + }, + "packages/repack/html-react-parser": { + "name": "@msinternal/html-react-parser", + "version": "0.0.0-0", + "dependencies": { + "html-react-parser": "5.2.6" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } + }, + "packages/repack/microsoft-cognitiveservices-speech-sdk": { + "name": "@msinternal/microsoft-cognitiveservices-speech-sdk", + "version": "0.0.0-0", + "dependencies": { + "microsoft-cognitiveservices-speech-sdk": "1.17.0" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } + }, + "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": "16.8.6" + }, + "devDependencies": { + "@msinternal/object-assign": "0.0.0-0", + "@types/react": "^16.14.65", + "esbuild": "^0.25.10" + } + }, + "packages/repack/react-dom": { + "name": "@msinternal/react-dom", + "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.25.10" + } + }, + "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.25.10" + } + }, + "packages/repack/react-is/node_modules/@types/react-is": { + "version": "16.7.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "^16" + } + }, + "packages/repack/react-is/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, "packages/styles": { "name": "@msinternal/botframework-webchat-styles", "version": "0.0.0-0", @@ -18763,31 +18876,6 @@ "node": ">=10" } }, - "packages/support/cldr-data/node_modules/read-pkg-up": { - "version": "11.0.0", - "license": "MIT", - "dependencies": { - "find-up-simple": "^1.0.0", - "read-pkg": "^9.0.0", - "type-fest": "^4.6.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/support/cldr-data/node_modules/type-fest": { - "version": "4.26.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/test/dev-server": { "name": "@msinternal/dev-server", "version": "0.0.0-0", @@ -19083,7 +19171,7 @@ "event-iterator": "2.0.0", "event-target-shim": "6.0.2", "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.45.0", + "microsoft-cognitiveservices-speech-sdk": "1.17.0", "prop-types": "15.8.1", "simple-update-in": "2.2.0" }, diff --git a/package.json b/package.json index a9f213de9c..a03671e824 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,15 @@ "./packages/isomorphic-react", "./packages/isomorphic-react-dom", "./packages/component", + "./packages/repack/adaptivecards", + "./packages/repack/base64-js", + "./packages/repack/botframework-directlinejs", + "./packages/repack/html-react-parser", + "./packages/repack/microsoft-cognitiveservices-speech-sdk", + "./packages/repack/object-assign", + "./packages/repack/react", + "./packages/repack/react-dom", + "./packages/repack/react-is", "./packages/directlinespeech", "./packages/bundle", "./packages/test/page-object", @@ -67,14 +76,23 @@ "precommit:eslint:debug-theme": "cd packages && cd debug-theme && npm run precommit:eslint", "precommit:eslint:directlinespeech": "cd packages && cd directlinespeech && npm run precommit:eslint", "precommit:eslint:fluent-theme": "cd packages && cd fluent-theme && npm run precommit:eslint", - "precommit:eslint:isomorphic-react-dom": "cd packages && cd isomorphic-react-dom && npm run precommit:eslint", "precommit:eslint:isomorphic-react": "cd packages && cd isomorphic-react && npm run precommit:eslint", + "precommit:eslint:isomorphic-react-dom": "cd packages && cd isomorphic-react-dom && npm run precommit:eslint", "precommit:eslint:react-hooks": "cd packages && cd react-hooks && npm run precommit:eslint", "precommit:eslint:react-valibot": "cd packages && cd react-valibot && npm run precommit:eslint", "precommit:eslint:redux-store": "cd packages && cd redux-store && npm run precommit:eslint", + "precommit:eslint:repack-adaptivecards": "cd packages && cd repack && cd adaptivecards && npm run precommit:eslint", + "precommit:eslint:repack-base64-js": "cd packages && cd repack && cd base64-js && npm run precommit:eslint", + "precommit:eslint:repack-botframework-directlinejs": "cd packages && cd repack && cd botframework-directlinejs && npm run precommit:eslint", + "precommit:eslint:repack-html-react-parser": "cd packages && cd repack && cd html-react-parser && npm run precommit:eslint", + "precommit:eslint:repack-microsoft-cognitiveservices-speech-sdk": "cd packages && cd repack && cd microsoft-cognitiveservices-speech-sdk && npm run precommit:eslint", + "precommit:eslint:repack-object-assign": "cd packages && cd repack && cd object-assign && npm run precommit:eslint", + "precommit:eslint:repack-react": "cd packages && cd repack && cd react && npm run precommit:eslint", + "precommit:eslint:repack-react-dom": "cd packages && cd repack && cd react-dom && npm run precommit:eslint", + "precommit:eslint:repack-react-is": "cd packages && cd repack && cd react-is && npm run precommit:eslint", "precommit:eslint:styles": "cd packages && cd styles && npm run precommit:eslint", - "precommit:eslint:support-cldr-data-downloader": "cd packages && cd support && cd cldr-data-downloader && npm run precommit:eslint", "precommit:eslint:support-cldr-data": "cd packages && cd support && cd cldr-data && npm run precommit:eslint", + "precommit:eslint:support-cldr-data-downloader": "cd packages && cd support && cd cldr-data-downloader && npm run precommit:eslint", "precommit:eslint:test-harness": "cd packages && cd test && cd harness && npm run precommit:eslint", "precommit:eslint:test-page-object": "cd packages && cd test && cd page-object && npm run precommit:eslint", "precommit:eslint:web-server": "cd packages && cd test && cd web-server && npm run precommit:eslint", @@ -90,6 +108,14 @@ "precommit:typecheck:react-hooks": "cd packages && cd react-hooks && npm run precommit:typecheck", "precommit:typecheck:react-valibot": "cd packages && cd react-valibot && npm run precommit:typecheck", "precommit:typecheck:redux-store": "cd packages && cd redux-store && npm run precommit:typecheck", + "precommit:typecheck:repack-adaptivecards": "cd packages && cd repack && cd adaptivecards && npm run precommit:typecheck", + "precommit:typecheck:repack-base64-js": "cd packages && cd repack && cd base64-js && npm run precommit:typecheck", + "precommit:typecheck:repack-botframework-directlinejs": "cd packages && cd repack && cd botframework-directlinejs && npm run precommit:typecheck", + "precommit:typecheck:repack-html-react-parser": "cd packages && cd repack && cd html-react-parser && npm run precommit:typecheck", + "precommit:typecheck:repack-microsoft-cognitiveservices-speech-sdk": "cd packages && cd repack && cd microsoft-cognitiveservices-speech-sdk && npm run precommit:typecheck", + "precommit:typecheck:repack-react": "cd packages && cd repack && cd react && npm run precommit:typecheck", + "precommit:typecheck:repack-react-dom": "cd packages && cd repack && cd react-dom && npm run precommit:typecheck", + "precommit:typecheck:repack-react-is": "cd packages && cd repack && cd react-is && npm run precommit:typecheck", "precommit:typecheck:styles": "cd packages && cd styles && npm run precommit:typecheck", "prepare": "husky", "start": "cross-env NODE_OPTIONS=--no-deprecation concurrently --kill-others --prefix-colors \"auto\" \"npm:start:*\"", @@ -105,6 +131,14 @@ "start:react-hooks": "cd packages && cd react-hooks && npm start", "start:react-valibot": "cd packages && cd react-valibot && npm start", "start:redux-store": "cd packages && cd redux-store && npm start", + "start:repack-adaptivecards": "cd packages && cd repack && cd adaptivecards && npm start", + "start:repack-base64-js": "cd packages && cd repack && cd base64-js && npm start", + "start:repack-botframework-directlinejs": "cd packages && cd repack && cd botframework-directlinejs && npm start", + "start:repack-html-react-parser": "cd packages && cd repack && cd html-react-parser && npm start", + "start:repack-microsoft-cognitiveservices-speech-sdk": "cd packages && cd repack && cd microsoft-cognitiveservices-speech-sdk && npm start", + "start:repack-react": "cd packages && cd repack && cd react && npm start", + "start:repack-react-dom": "cd packages && cd repack && cd react-dom && npm start", + "start:repack-react-is": "cd packages && cd repack && cd react-is && npm start", "start:server": "serve -p 5000", "start:test-dev-server": "cd packages && cd test && cd dev-server && npm start", "start:test-harness": "cd packages && cd test && cd harness && npm start", diff --git a/packages/bundle/.gitignore b/packages/bundle/.gitignore index 515a303349..d412f912e3 100644 --- a/packages/bundle/.gitignore +++ b/packages/bundle/.gitignore @@ -2,4 +2,5 @@ /dist/ /dist.tmp/ /node_modules/ +/static/ /tsup.config.bundled_*.mjs diff --git a/packages/bundle/esbuild.static.mjs b/packages/bundle/esbuild.static.mjs new file mode 100644 index 0000000000..905131484e --- /dev/null +++ b/packages/bundle/esbuild.static.mjs @@ -0,0 +1,266 @@ +/// + +/* eslint-env node */ +/* eslint-disable no-console */ +/* eslint-disable no-magic-numbers */ +/* eslint-disable no-restricted-globals */ + +import { build, context } from 'esbuild'; +import { resolve as importMetaResolve } from 'import-meta-resolve'; +import { dirname, resolve } from 'path'; +import { readPackageUp } from 'read-pkg-up'; +import { fileURLToPath, pathToFileURL } from 'url'; + +// const isomorphicReactPlugin = { +// name: 'isomorphic-react', +// setup(build) { +// // eslint-disable-next-line require-unicode-regexp +// build.onResolve({ filter: /^(react|react-dom)$/, namespace: 'file' }, ({ path }) => ({ +// namespace: 'isomorphic-react', +// path +// })); + +// // eslint-disable-next-line require-unicode-regexp +// build.onLoad({ filter: /^react$/, namespace: 'isomorphic-react' }, () => ({ +// contents: "import React from 'react'; module.exports = globalThis.React || React;" +// })); + +// // eslint-disable-next-line require-unicode-regexp +// build.onLoad({ filter: /^react-dom$/, namespace: 'isomorphic-react' }, () => ({ +// contents: "import ReactDOM from 'react-dom'; module.exports = globalThis.ReactDOM || ReactDOM;" +// })); +// } +// }; + +function createWatcherPlugin(name) { + /** @type { import('esbuild').Plugin } */ + return { + name: 'watcher', + setup(build) { + let buildStart = Date.now(); + + console.log(`${name} Running in watch mode`); + + build.onStart(() => { + buildStart = Date.now(); + console.log(`${name} Build start`); + }); + + build.onEnd(() => console.log(`${name} ⚡ Build success in ${Date.now() - buildStart}ms`)); + } + }; +} + +/** + * Extracts the package name and the named exports path from an entry string. + * + * @param {string} entry - The entry string, typically a module path. + * If the entry starts with '@', it is treated as a scoped package. + * @returns {[string, string]} - A tuple where the first element is the package name + * and the second element is the remaining path (named exports). + */ +function extractPackageNameAndNamedExports(entry) { + const tokens = entry.split('/'); + const names = tokens.splice(0, entry.startsWith('@') ? 2 : 1); + + return [names.join('/'), tokens.join('/')]; +} + +/** @type { Map } */ +const configs = new Map(); + +function flatName(name) { + return name.replace(/\//gu, '.').replace(/^@/u, ''); +} + +// Some packages has `package.json` inside their /dist for specifying CJS/ESM, they are not the publishing package.json. +function readPublishingPackageJSONUp(cwd) { + const work = async cwd => { + const result = await readPackageUp({ cwd }); + + return result.packageJson.name ? result : work(dirname(cwd)); + }; + + return work(cwd); +} + +async function addConfig( + /** @type { import('esbuild').OnResolveArgs } */ + { path, resolveDir } +) { + const importPathURL = importMetaResolve(path, pathToFileURL(resolveDir) + '/'); + + if (!importPathURL.startsWith('file:')) { + return; + } + + const { + packageJson: { name, version }, + path: packagePath + } = await readPublishingPackageJSONUp(fileURLToPath(importPathURL)); + + const fullName = `${name}@${version}`; + + if (!path.startsWith(name)) { + throw new Error(`args.path must starts with name, args.path = ${path}, name = ${name}`); + } + + const familyName = `${flatName(name)}__${version}`; + const entryNames = `${familyName}__[name]`; + + let currentConfig = configs.get(fullName); + + if (!currentConfig) { + /** @type { import('esbuild').BuildOptions } */ + currentConfig = { + absWorkingDir: dirname(packagePath), + chunkNames: `${familyName}__[name]-[hash]`, + entryNames, + entryPoints: {} + }; + + configs.set(fullName, currentConfig); + } + + const entries = new Map(Object.entries(currentConfig.entryPoints)); + + const [moduleName, namedExports] = extractPackageNameAndNamedExports(path); + const entryName = flatName(namedExports || moduleName.split('/').at(-1)); + + if (!entries.has(entryName)) { + entries.set(entryName, path); + + currentConfig.entryPoints = Object.fromEntries(Array.from(entries.entries())); + currentConfig.write = true; + } + + return `./${entryNames.replace(/\[name\]/gu, entryName)}.js`; +} + +function getPendingConfig() { + for (const value of configs.values()) { + if (value.write !== false) { + return value; + } + } +} + +const BASE_CONFIG = { + alias: { + adaptivecards: '@msinternal/adaptivecards', + 'base64-js': '@msinternal/base64-js', + 'botframework-directlinejs': '@msinternal/botframework-directlinejs', + 'html-react-parser': '@msinternal/html-react-parser', + 'microsoft-cognitiveservices-speech-sdk': '@msinternal/microsoft-cognitiveservices-speech-sdk', + 'object-assign': '@msinternal/object-assign', + 'react-is': '@msinternal/react-is' + }, + bundle: true, + external: ['react', 'react-dom'], + format: 'esm', + loader: { '.js': 'jsx' }, + minify: true, + outdir: resolve(fileURLToPath(import.meta.url), `../static/`), + platform: 'browser', + sourcemap: true, + splitting: true, + write: true, + + /** @type { import('esbuild').Plugin[] } */ + plugins: [ + { + name: 'static-builder', + setup(build) { + // eslint-disable-next-line require-unicode-regexp + build.onResolve({ filter: /^[^.]/ }, async args => { + // "external" field only works if the plug-in give up (return undefined.) + if (args.path === 'react' || args.path === 'react-dom') { + return undefined; + } + + // Only ESM can be externalized, CJS cannot be externalized because require() is not guaranteed to be at top-level. + if (args.kind === 'import-statement') { + const path = await addConfig(args); + + return path ? { external: true, path } : undefined; + } + + return undefined; + }); + } + } + ] +}; + +async function buildNextConfig() { + const config = getPendingConfig(); + + if (!config) { + return; + } + + await build({ + ...config, + ...BASE_CONFIG + }); + + // HACK: We are using the "write" field to signal the config is completed. + config.write = false; +} + +(async () => { + // eslint-disable-next-line prefer-destructuring + const [_0, _1, watch] = process.argv; + + configs.set('botframework-webchat', { + chunkNames: `botframework-webchat.[name]-[hash]`, + entryNames: `[name]`, + entryPoints: { + 'botframework-webchat': './src/boot/exports/index.ts', + 'botframework-webchat.component': './src/boot/exports/component.ts', + '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' + } + }); + + // Put `react` and `react-dom` under `/static` for conveniences when using in sovereign cloud or airgapped environment. + configs.set('react', { + chunkNames: `react.[name]-[hash]`, + entryNames: `[name]`, + entryPoints: { + '': '@msinternal/react' + } + }); + + configs.set('react-dom', { + chunkNames: `react-dom.[name]-[hash]`, + entryNames: `[name]`, + entryPoints: { + '': '@msinternal/react-dom' + } + }); + + // Prevent infinite-loop. + for (let i = 0; i < 10000; i++) { + // eslint-disable-next-line no-await-in-loop + await buildNextConfig(); + } + + if (watch === '--watch') { + const ourConfigs = []; + + for (const [key, config] of configs) { + if (key.startsWith('botframework-webchat')) { + const ourConfig = { ...config, ...BASE_CONFIG }; + + ourConfig.plugins.push(createWatcherPlugin(key)); + + ourConfigs.push(ourConfig); + } + } + + await Promise.all(ourConfigs.map(async config => (await context(config)).watch())); + } +})(); diff --git a/packages/bundle/package.json b/packages/bundle/package.json index b0c7cdc68e..65b79569c7 100644 --- a/packages/bundle/package.json +++ b/packages/bundle/package.json @@ -64,7 +64,8 @@ "types": "./dist/botframework-webchat.middleware.d.ts", "default": "./dist/botframework-webchat.middleware.js" } - } + }, + "./static/*": "./static/*" }, "publishConfig": { "access": "public" @@ -81,7 +82,8 @@ "homepage": "https://github.com/microsoft/BotFramework-WebChat/#readme", "files": [ "./dist/**/*", - "./src/**/*" + "./src/**/*", + "./static/**/*" ], "tsd": { "compilerOptions": { @@ -95,7 +97,9 @@ } }, "scripts": { - "build": "tsup", + "build": "npm run build:static && npm run build:tsup", + "build:static": "node ./esbuild.static.mjs", + "build:tsup": "tsup", "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", @@ -105,15 +109,25 @@ "precommit:eslint": "../../node_modules/.bin/eslint --report-unused-disable-directives --max-warnings 0", "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", "preversion": "cat package.json | jq '(.localDependencies // {} | to_entries | map([if .value == \"production\" then \"dependencies\" else \"devDependencies\" end, .key])) as $P | delpaths($P)' > package-temp.json && mv package-temp.json package.json", - "start": "npm run build -- --watch", + "start": "cross-env NODE_OPTIONS=--no-deprecation concurrently --kill-others --prefix-colors \"auto\" \"npm:start:*\"", + "start:static": "npm run build:static -- --watch", + "start:tsup": "npm run build:tsup -- --watch", "test:tsd": "tsd" }, "localDependencies": { + "@msinternal/adaptivecards": "development", + "@msinternal/base64-js": "development", "@msinternal/botframework-webchat-base": "development", + "@msinternal/botframework-directlinejs": "development", "@msinternal/botframework-webchat-react-valibot": "development", "@msinternal/botframework-webchat-tsconfig": "development", "@msinternal/isomorphic-react": "development", "@msinternal/isomorphic-react-dom": "development", + "@msinternal/microsoft-cognitiveservices-speech-sdk": "development", + "@msinternal/object-assign": "development", + "@msinternal/react-dom": "development", + "@msinternal/react": "development", + "@msinternal/react-is": "development", "botframework-directlinespeech-sdk": "production", "botframework-webchat-api": "production", "botframework-webchat-component": "production", @@ -162,7 +176,7 @@ "micromark": "4.0.2", "micromark-extension-gfm": "3.0.0", "micromark-util-character": "2.1.1", - "microsoft-cognitiveservices-speech-sdk": "1.45.0", + "microsoft-cognitiveservices-speech-sdk": "1.17.0", "prop-types": "15.8.1", "punycode": "2.3.1", "sanitize-html": "2.17.0", @@ -181,11 +195,19 @@ "@babel/preset-env": "^7.28.0", "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.27.1", + "@msinternal/adaptivecards": "0.0.0-0", + "@msinternal/base64-js": "0.0.0-0", + "@msinternal/botframework-directlinejs": "0.0.0-0", "@msinternal/botframework-webchat-base": "0.0.0-0", "@msinternal/botframework-webchat-react-valibot": "0.0.0-0", - "@msinternal/botframework-webchat-tsconfig": "^0.0.0-0", - "@msinternal/isomorphic-react": "^0.0.0-0", - "@msinternal/isomorphic-react-dom": "^0.0.0-0", + "@msinternal/botframework-webchat-tsconfig": "0.0.0-0", + "@msinternal/isomorphic-react": "0.0.0-0", + "@msinternal/isomorphic-react-dom": "0.0.0-0", + "@msinternal/microsoft-cognitiveservices-speech-sdk": "0.0.0-0", + "@msinternal/object-assign": "0.0.0-0", + "@msinternal/react": "0.0.0-0", + "@msinternal/react-dom": "0.0.0-0", + "@msinternal/react-is": "0.0.0-0", "@types/dom-speech-recognition": "^0.0.6", "@types/mdast": "^4.0.4", "@types/node": "^24.1.0", @@ -195,7 +217,9 @@ "babel-plugin-transform-inline-environment-variables": "^0.4.4", "cross-env": "^10.0.0", "esbuild": "^0.25.8", + "import-meta-resolve": "^4.2.0", "micromark-util-types": "^2.0.2", + "read-pkg-up": "^11.0.0", "tsd": "^0.32.0", "type-fest": "^4.41.0", "typescript": "~5.8.3" diff --git a/packages/bundle/src/speech/createMicrophoneAudioConfigAndAudioContext.ts b/packages/bundle/src/speech/createMicrophoneAudioConfigAndAudioContext.ts index 0ea5ff4942..0cd4917ddc 100644 --- a/packages/bundle/src/speech/createMicrophoneAudioConfigAndAudioContext.ts +++ b/packages/bundle/src/speech/createMicrophoneAudioConfigAndAudioContext.ts @@ -53,7 +53,9 @@ function createMicrophoneAudioConfig(options: MicrophoneAudioInputStreamOptions) const bufferDurationInMS = options.bufferDurationInMS || DEFAULT_BUFFER_DURATION_IN_MS; // Related to #4523. - const pcmRecorder = new PcmRecorder(true); + // Pass "true" for microsoft-cognitiveservices-speech-sdk@1.45.0. + // const pcmRecorder = new PcmRecorder(true); + const pcmRecorder = new PcmRecorder(); pcmRecorderWorkletUrl && pcmRecorder.setWorkletUrl(pcmRecorderWorkletUrl); diff --git a/packages/bundle/tsup.config.ts b/packages/bundle/tsup.config.ts index 63662ab046..c885f394f9 100644 --- a/packages/bundle/tsup.config.ts +++ b/packages/bundle/tsup.config.ts @@ -9,8 +9,8 @@ const resolveReact = { setup(build) { // 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: pkgNamne }) => ({ - path: path.join(process.cwd(), '../../node_modules', `@msinternal/isomorphic-${pkgNamne}/dist/${pkgNamne}.js`) + build.onResolve({ filter: /^(react|react-dom)$/ }, ({ path: pkgName }) => ({ + path: path.join(process.cwd(), '../../node_modules', `@msinternal/isomorphic-${pkgName}/dist/${pkgName}.js`) })); } }; diff --git a/packages/repack/adaptivecards/.gitignore b/packages/repack/adaptivecards/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/adaptivecards/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/adaptivecards/package.json b/packages/repack/adaptivecards/package.json new file mode 100644 index 0000000000..d707061163 --- /dev/null +++ b/packages/repack/adaptivecards/package.json @@ -0,0 +1,33 @@ +{ + "name": "@msinternal/adaptivecards", + "description": "Repack of adaptivecards", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "main": "./dist/index.js", + "scripts": { + "build": "esbuild --bundle=true --format=esm --outdir=dist --platform=browser --splitting --sourcemap ./src/index", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": {}, + "pinDependencies": { + "adaptivecards": [ + "3.0.2", + "Bump manually to ensure compatibility" + ] + }, + "dependencies": { + "adaptivecards": "3.0.2" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/adaptivecards/src/index.ts b/packages/repack/adaptivecards/src/index.ts new file mode 100644 index 0000000000..afd78b2a7f --- /dev/null +++ b/packages/repack/adaptivecards/src/index.ts @@ -0,0 +1,212 @@ +export { + Action, + ActionAlignment, + ActionButtonState, + ActionIconPlacement, + ActionMode, + ActionProperty, + ActionRole, + ActionsConfig, + ActionSet, + ActionStyle, + ActivityRequestError, + ActivityRequestTrigger, + ActivityResponse, + AdaptiveApplet, + AdaptiveCard, + AdaptiveCardConfig, + addCancelSelectActionEventHandler, + appendChild, + AuthCardButton, + Authentication, + BackgroundImage, + BaseSerializationContext, + BaseTextBlock, + BaseTextDefinition, + BoolProperty, + CaptionSource, + CardElement, + CardElementContainer, + CardObject, + CardObjectRegistry, + Carousel, + CarouselConfig, + CarouselEvent, + CarouselInteractionEvent, + CarouselPage, + ChannelAdapter, + Choice, + ChoiceSetInput, + ChoiceSetInputDataQuery, + clearElementChildren, + ColorDefinition, + ColorSetDefinition, + Column, + ColumnSet, + Container, + ContainerBase, + ContainerFitStatus, + ContainerStyle, + ContainerStyleDefinition, + ContainerStyleProperty, + ContainerStyleSet, + ContainerWithActions, + ContentSource, + ContentTypes, + CustomMediaPlayer, + CustomProperty, + DailymotionPlayer, + DataQuery, + DateInput, + debounce, + defaultHostConfig, + EnumProperty, + ErrorResponse, + ExecuteAction, + Fact, + FactSet, + FactSetConfig, + FactTextDefinition, + FactTitleDefinition, + FillMode, + FilteredChoiceSet, + FontType, + FontTypeDefinition, + FontTypeSet, + generateUniqueId, + getEnumValueByName, + getFitStatus, + getScrollX, + getScrollY, + GlobalRegistry, + GlobalSettings, + HorizontalAlignment, + HostCapabilities, + HostConfig, + HTML5MediaPlayer, + HttpAction, + HttpHeader, + IFrameMediaMediaPlayer, + Image, + ImageSet, + ImageSetConfig, + ImageSetPresentationStyle, + ImageSize, + ImageStyle, + Input, + InputConfig, + InputLabelConfig, + InputLabelPosition, + InputStyle, + InputTextStyle, + isInternetExplorer, + isMobileOS, + isVersionLessOrEqual, + LoginRequestResponse, + LogLevel, + Media, + MediaConfig, + MediaPlayer, + MediaSource, + NumberInput, + NumProperty, + OpenUrlAction, + Orientation, + PaddingDefinition, + parseBool, + parseEnum, + parseNumber, + parseString, + PixelSizeProperty, + property, + PropertyDefinition, + RefreshActionProperty, + RefreshDefinition, + RefreshMode, + renderSeparation, + RequiredInputLabelTextDefinition, + RichTextBlock, + SerializableObject, + SerializableObjectCollectionProperty, + SerializableObjectProperty, + SerializableObjectSchema, + SerializationContext, + ShowCardAction, + ShowCardActionConfig, + ShowCardActionMode, + Size, + SizeAndUnit, + SizeUnit, + Spacing, + SpacingDefinition, + StringArrayProperty, + StringProperty, + Strings, + stringToCssColor, + StringWithSubstitutions, + StylableCardElementContainer, + StylableContainer, + SubmitAction, + SubmitActionBase, + SuccessResponse, + Table, + TableCell, + TableColumnDefinition, + TableConfig, + TableRow, + TextBlock, + TextBlockConfig, + TextColor, + TextColorDefinition, + TextInput, + TextRun, + TextSize, + TextStyleDefinition, + TextStyleSet, + TextWeight, + TimeInput, + TimeProperty, + ToggleInput, + ToggleVisibilityAction, + TokenExchangeResource, + truncateText, + TypeErrorType, + UniversalAction, + UUID, + ValidationEvent, + ValidationPhase, + ValidationResults, + ValueSetProperty, + Version, + Versions, + VerticalAlignment, + VimeoPlayer, + YouTubePlayer, + type ActionType, + type AppletsSettings, + type CardElementHeight, + type CardObjectType, + type CellType, + type ColumnWidth, + type Dictionary, + type FetchedChoice, + type IActivityRequest, + type IAdaptiveCard, + type ICardElement, + type ICustomMediaPlayer, + type IFontSizeDefinitions, + type IFontWeightDefinitions, + type IInput, + type ILineHeightDefinitions, + type IMarkdownProcessingResult, + type IResourceInformation, + type ISeparationDefinition, + type ITypeRegistration, + type IValidationEvent, + type IVersionedValue, + type PropertyBag, + type Refresh, + type SerializableObjectType, + type TargetVersion, + type TextBlockStyle +} from 'adaptivecards'; diff --git a/packages/repack/adaptivecards/src/tsconfig.json b/packages/repack/adaptivecards/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/adaptivecards/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/base64-js/.gitignore b/packages/repack/base64-js/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/base64-js/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/base64-js/package.json b/packages/repack/base64-js/package.json new file mode 100644 index 0000000000..a3dcf640da --- /dev/null +++ b/packages/repack/base64-js/package.json @@ -0,0 +1,28 @@ +{ + "name": "@msinternal/base64-js", + "description": "Repack of base64-js", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "main": "./dist/index.js", + "scripts": { + "build": "esbuild --bundle=true --format=esm --outdir=dist --platform=browser --splitting --sourcemap ./src/index", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": {}, + "pinDependencies": {}, + "dependencies": { + "base64-js": "1.5.1" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/base64-js/src/index.ts b/packages/repack/base64-js/src/index.ts new file mode 100644 index 0000000000..f452f2770e --- /dev/null +++ b/packages/repack/base64-js/src/index.ts @@ -0,0 +1 @@ +export { byteLength, fromByteArray, toByteArray } from 'base64-js'; diff --git a/packages/repack/base64-js/src/tsconfig.json b/packages/repack/base64-js/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/base64-js/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/botframework-directlinejs/.gitignore b/packages/repack/botframework-directlinejs/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/botframework-directlinejs/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/botframework-directlinejs/package.json b/packages/repack/botframework-directlinejs/package.json new file mode 100644 index 0000000000..76d58a29c5 --- /dev/null +++ b/packages/repack/botframework-directlinejs/package.json @@ -0,0 +1,28 @@ +{ + "name": "@msinternal/botframework-directlinejs", + "description": "Repack of botframework-directlinejs", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "main": "./dist/index.js", + "scripts": { + "build": "esbuild --bundle=true --format=esm --outdir=dist --platform=browser --splitting --sourcemap ./src/index", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": {}, + "pinDependencies": {}, + "devDependencies": { + "esbuild": "^0.25.10" + }, + "dependencies": { + "botframework-directlinejs": "0.15.6" + } +} diff --git a/packages/repack/botframework-directlinejs/src/index.ts b/packages/repack/botframework-directlinejs/src/index.ts new file mode 100644 index 0000000000..35252f0025 --- /dev/null +++ b/packages/repack/botframework-directlinejs/src/index.ts @@ -0,0 +1 @@ +export { DirectLine, DirectLineStreaming } from 'botframework-directlinejs'; diff --git a/packages/repack/botframework-directlinejs/src/tsconfig.json b/packages/repack/botframework-directlinejs/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/botframework-directlinejs/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/html-react-parser/.gitignore b/packages/repack/html-react-parser/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/html-react-parser/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/html-react-parser/build.js b/packages/repack/html-react-parser/build.js new file mode 100644 index 0000000000..4e7227f14a --- /dev/null +++ b/packages/repack/html-react-parser/build.js @@ -0,0 +1,43 @@ +/// + +/* eslint-env node */ +/* eslint-disable no-magic-numbers */ +/* eslint-disable require-unicode-regexp */ + +import * as esbuild from 'esbuild'; + +(async () => { + const config = { + bundle: true, + entryPoints: ['./src/index.ts'], + format: 'esm', + outdir: './dist/', + platform: 'browser', + splitting: true, + sourcemap: true, + + /** @type { import('esbuild').Plugin[] } */ + plugins: [ + { + name: 'react-resolver', + setup(build) { + build.onResolve({ filter: /^react$/ }, args => + args.kind === 'require-call' ? { path: 'react', namespace: 'stub' } : { external: true, path: args.path } + ); + + build.onLoad({ filter: /^react$/, namespace: 'stub' }, () => ({ + contents: "export * from 'react'; export { default } from 'react';" + })); + } + } + ] + }; + + if (process.argv[2] === '--watch') { + const context = await esbuild.context(config); + + await context.watch(); + } else { + await esbuild.build(config); + } +})(); diff --git a/packages/repack/html-react-parser/package.json b/packages/repack/html-react-parser/package.json new file mode 100644 index 0000000000..d646be1588 --- /dev/null +++ b/packages/repack/html-react-parser/package.json @@ -0,0 +1,30 @@ +{ + "name": "@msinternal/html-react-parser", + "description": "Repack of html-react-parser", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "scripts": { + "build": "node ./build.js", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": {}, + "pinDependencies": {}, + "dependencies": { + "html-react-parser": "5.2.6" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/html-react-parser/src/index.ts b/packages/repack/html-react-parser/src/index.ts new file mode 100644 index 0000000000..5f9bf7d0ab --- /dev/null +++ b/packages/repack/html-react-parser/src/index.ts @@ -0,0 +1,12 @@ +export { + attributesToProps, + Comment, + default, + domToReact, + Element, + htmlToDOM, + ProcessingInstruction, + Text +} from 'html-react-parser'; + +export type { DOMNode, HTMLReactParserOptions } from 'html-react-parser'; diff --git a/packages/repack/html-react-parser/src/tsconfig.json b/packages/repack/html-react-parser/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/html-react-parser/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/.gitignore b/packages/repack/microsoft-cognitiveservices-speech-sdk/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json b/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json new file mode 100644 index 0000000000..3910a9cb0f --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/package.json @@ -0,0 +1,42 @@ +{ + "name": "@msinternal/microsoft-cognitiveservices-speech-sdk", + "description": "Repack of microsoft-cognitiveservices-speech-sdk", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "exports": { + ".": "./dist/index.js", + "./distrib/lib/microsoft.cognitiveservices.speech.sdk.js": "./dist/index.js", + "./distrib/lib/src/common/AudioSourceEvents.js": "./dist/common/AudioSourceEvents.js", + "./distrib/lib/src/common/Exports.js": "./dist/common/Exports.js", + "./distrib/lib/src/common.browser/Exports.js": "./dist/common.browser/Exports.js", + "./distrib/lib/src/common.speech/Exports.js": "./dist/common.speech/Exports.js", + "./distrib/lib/src/sdk/Audio/AudioStreamFormat.js": "./dist/sdk/Audio/AudioStreamFormat.js", + "./distrib/lib/src/sdk/Exports.js": "./dist/sdk/Exports.js" + }, + "scripts": { + "build": "esbuild --bundle=true --format=esm --outdir=dist --platform=browser --splitting --sourcemap ./src/index.js ./src/common/AudioSourceEvents.js ./src/common/Exports.js ./src/common.browser/Exports.js ./src/common.speech/Exports.js ./src/sdk/Audio/AudioStreamFormat.js ./src/sdk/Exports.js", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": {}, + "pinDependencies": { + "microsoft-cognitiveservices-speech-sdk": [ + "1.17.0", + "<=1.45.0 is using new protocol that does not connect may need some tune." + ] + }, + "dependencies": { + "microsoft-cognitiveservices-speech-sdk": "1.17.0" + }, + "devDependencies": { + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common.browser/Exports.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common.browser/Exports.ts new file mode 100644 index 0000000000..516998a6d3 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common.browser/Exports.ts @@ -0,0 +1 @@ +export { PcmRecorder } from 'microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common.browser/Exports.js'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common.speech/Exports.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common.speech/Exports.ts new file mode 100644 index 0000000000..76f7eefa71 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common.speech/Exports.ts @@ -0,0 +1,7 @@ +// Commented lines are for microsoft-cognitiveservices-speech-sdk@1.45.0. + +export { + connectivity, + // ISpeechConfigAudioDevice, + type +} from 'microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common.speech/Exports.js'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common/AudioSourceEvents.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common/AudioSourceEvents.ts new file mode 100644 index 0000000000..5a929454b8 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common/AudioSourceEvents.ts @@ -0,0 +1,12 @@ +export { + AudioSourceErrorEvent, + AudioSourceEvent, + AudioSourceInitializingEvent, + AudioSourceOffEvent, + AudioSourceReadyEvent, + AudioStreamNodeAttachedEvent, + AudioStreamNodeAttachingEvent, + AudioStreamNodeDetachedEvent, + AudioStreamNodeErrorEvent, + AudioStreamNodeEvent +} from 'microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common/AudioSourceEvents.js'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common/Exports.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common/Exports.ts new file mode 100644 index 0000000000..a1fda90300 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/common/Exports.ts @@ -0,0 +1,14 @@ +export { + AudioSourceErrorEvent, + AudioSourceEvent, + AudioSourceInitializingEvent, + AudioSourceOffEvent, + AudioSourceReadyEvent, + AudioStreamNodeAttachedEvent, + AudioStreamNodeAttachingEvent, + AudioStreamNodeDetachedEvent, + AudioStreamNodeErrorEvent, + ChunkedArrayBufferStream, + Events, + EventSource +} from 'microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common/Exports.js'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/index.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/index.ts new file mode 100644 index 0000000000..f2ca173bc6 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/index.ts @@ -0,0 +1,135 @@ +// Commented lines are for microsoft-cognitiveservices-speech-sdk@1.45.0. + +export { + ActivityReceivedEventArgs, + AudioConfig, + // AudioFormatTag, + AudioInputStream, + AudioOutputStream, + AudioStreamFormat, + AutoDetectSourceLanguageConfig, + AutoDetectSourceLanguageResult, + // AvatarConfig, + // AvatarEventArgs, + // AvatarSynthesizer, + // AvatarVideoFormat, + // AvatarWebRTCConnectionResult, + BaseAudioPlayer, + BotFrameworkConfig, + CancellationDetails, + CancellationDetailsBase, + CancellationErrorCode, + // CancellationEventArgs, + CancellationReason, + Connection, + ConnectionEventArgs, + ConnectionMessage, + ConnectionMessageEventArgs, + Conversation, + ConversationExpirationEventArgs, + // ConversationInfo, + ConversationParticipantsChangedEventArgs, + ConversationTranscriber, + ConversationTranscriptionCanceledEventArgs, + ConversationTranscriptionEventArgs, + // ConversationTranscriptionResult, + ConversationTranslationCanceledEventArgs, + ConversationTranslationEventArgs, + ConversationTranslationResult, + ConversationTranslator, + // Coordinate, + CustomCommandsConfig, + // Diagnostics, + DialogServiceConfig, + DialogServiceConnector, + IntentRecognitionCanceledEventArgs, + IntentRecognitionEventArgs, + IntentRecognitionResult, + IntentRecognizer, + // type IParticipant, + // type IPlayer, + // IVoiceJson, + KeywordRecognitionModel, + // LanguageIdMode, + LanguageUnderstandingModel, + // LogLevel, + // Meeting, + // MeetingInfo, + // MeetingTranscriber, + // MeetingTranscriptionCanceledEventArgs, + // MeetingTranscriptionEventArgs, + NoMatchDetails, + NoMatchReason, + OutputFormat, + Participant, + ParticipantChangedReason, + PhraseListGrammar, + ProfanityOption, + PronunciationAssessmentConfig, + PronunciationAssessmentGradingSystem, + PronunciationAssessmentGranularity, + PronunciationAssessmentResult, + PropertyCollection, + PropertyId, + PullAudioInputStream, + PullAudioInputStreamCallback, + PullAudioOutputStream, + PushAudioInputStream, + PushAudioOutputStream, + PushAudioOutputStreamCallback, + RecognitionEventArgs, + RecognitionResult, + Recognizer, + ResultReason, + ServiceEventArgs, + ServicePropertyChannel, + SessionEventArgs, + SourceLanguageConfig, + SpeakerAudioDestination, + SpeakerIdentificationModel, + SpeakerRecognitionCancellationDetails, + SpeakerRecognitionResult, + SpeakerRecognitionResultType, + SpeakerRecognizer, + SpeakerVerificationModel, + SpeechConfig, + SpeechConfigImpl, + SpeechRecognitionCanceledEventArgs, + SpeechRecognitionEventArgs, + SpeechRecognitionResult, + SpeechRecognizer, + SpeechSynthesisBookmarkEventArgs, + // SpeechSynthesisBoundaryType, + SpeechSynthesisEventArgs, + SpeechSynthesisOutputFormat, + SpeechSynthesisResult, + SpeechSynthesisVisemeEventArgs, + SpeechSynthesisWordBoundaryEventArgs, + SpeechSynthesizer, + SpeechTranslationConfig, + SpeechTranslationConfigImpl, + // SynthesisResult, + // SynthesisVoiceGender, + // SynthesisVoicesResult, + // SynthesisVoiceType, + // Synthesizer, + TranslationRecognitionCanceledEventArgs, + TranslationRecognitionEventArgs, + TranslationRecognitionResult, + TranslationRecognizer, + Translations, + TranslationSynthesisEventArgs, + TranslationSynthesisResult, + TurnStatusReceivedEventArgs, + User, + // VoiceInfo, + VoiceProfile, + VoiceProfileCancellationDetails, + VoiceProfileClient, + VoiceProfileEnrollmentCancellationDetails, + VoiceProfileEnrollmentResult, + // VoiceProfilePhraseResult, + VoiceProfileResult, + VoiceProfileType + // type VoiceSignature +} from 'microsoft-cognitiveservices-speech-sdk'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/sdk/Audio/AudioStreamFormat.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/sdk/Audio/AudioStreamFormat.ts new file mode 100644 index 0000000000..a5bea18aa9 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/sdk/Audio/AudioStreamFormat.ts @@ -0,0 +1,5 @@ +export { + AudioFormatTag, + AudioStreamFormat, + AudioStreamFormatImpl +} from 'microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/Audio/AudioStreamFormat.js'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/sdk/Exports.ts b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/sdk/Exports.ts new file mode 100644 index 0000000000..0b0e9a5165 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/sdk/Exports.ts @@ -0,0 +1,134 @@ +// Commented lines are for microsoft-cognitiveservices-speech-sdk@1.45.0. + +export { + ActivityReceivedEventArgs, + AudioConfig, + // AudioFormatTag, + AudioInputStream, + AudioOutputStream, + AudioStreamFormat, + AutoDetectSourceLanguageConfig, + AutoDetectSourceLanguageResult, + // AvatarConfig, + // AvatarEventArgs, + // AvatarSynthesizer, + // AvatarVideoFormat, + // AvatarWebRTCConnectionResult, + BaseAudioPlayer, + BotFrameworkConfig, + CancellationDetails, + CancellationDetailsBase, + CancellationErrorCode, + CancellationReason, + Connection, + ConnectionEventArgs, + ConnectionMessage, + ConnectionMessageEventArgs, + Conversation, + ConversationExpirationEventArgs, + ConversationParticipantsChangedEventArgs, + ConversationTranscriber, + ConversationTranscriptionCanceledEventArgs, + ConversationTranscriptionEventArgs, + // ConversationTranscriptionResult, + ConversationTranslationCanceledEventArgs, + ConversationTranslationEventArgs, + ConversationTranslationResult, + ConversationTranslator, + // Coordinate, + CustomCommandsConfig, + // Diagnostics, + DialogServiceConfig, + DialogServiceConnector, + IntentRecognitionCanceledEventArgs, + IntentRecognitionEventArgs, + IntentRecognitionResult, + IntentRecognizer, + // IVoiceJson, + KeywordRecognitionModel, + // LanguageIdMode, + LanguageUnderstandingModel, + // LogLevel, + // Meeting, + // MeetingInfo, + // MeetingTranscriber, + // MeetingTranscriptionCanceledEventArgs, + // MeetingTranscriptionEventArgs, + NoMatchDetails, + NoMatchReason, + OutputFormat, + Participant, + ParticipantChangedReason, + PhraseListGrammar, + ProfanityOption, + PronunciationAssessmentConfig, + PronunciationAssessmentGradingSystem, + PronunciationAssessmentGranularity, + PronunciationAssessmentResult, + PropertyCollection, + PropertyId, + PullAudioInputStream, + PullAudioInputStreamCallback, + PullAudioOutputStream, + PushAudioInputStream, + PushAudioOutputStream, + PushAudioOutputStreamCallback, + RecognitionEventArgs, + RecognitionResult, + Recognizer, + ResultReason, + ServiceEventArgs, + ServicePropertyChannel, + SourceLanguageConfig, + SpeakerAudioDestination, + SpeakerIdentificationModel, + SpeakerRecognitionCancellationDetails, + SpeakerRecognitionResult, + SpeakerRecognitionResultType, + SpeakerRecognizer, + SpeakerVerificationModel, + SpeechConfig, + SpeechConfigImpl, + SpeechRecognitionCanceledEventArgs, + SpeechRecognitionEventArgs, + SpeechRecognitionResult, + SpeechRecognizer, + SpeechSynthesisBookmarkEventArgs, + // SpeechSynthesisBoundaryType, + SpeechSynthesisEventArgs, + SpeechSynthesisOutputFormat, + SpeechSynthesisResult, + SpeechSynthesisVisemeEventArgs, + SpeechSynthesisWordBoundaryEventArgs, + SpeechSynthesizer, + SpeechTranslationConfig, + SpeechTranslationConfigImpl, + // SynthesisResult, + // SynthesisVoiceGender, + // SynthesisVoicesResult, + // SynthesisVoiceType, + // Synthesizer, + TranslationRecognitionCanceledEventArgs, + TranslationRecognitionEventArgs, + TranslationRecognitionResult, + TranslationRecognizer, + Translations, + TranslationSynthesisEventArgs, + TranslationSynthesisResult, + TurnStatusReceivedEventArgs, + User, + // VoiceInfo, + VoiceProfile, + VoiceProfileCancellationDetails, + VoiceProfileClient, + VoiceProfileEnrollmentCancellationDetails, + VoiceProfileEnrollmentResult, + // VoiceProfilePhraseResult, + VoiceProfileResult, + VoiceProfileType, + type CancellationEventArgs, + type ConversationInfo, + type IParticipant, + type IPlayer, + type VoiceSignature +} from 'microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/Exports.js'; diff --git a/packages/repack/microsoft-cognitiveservices-speech-sdk/src/tsconfig.json b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/microsoft-cognitiveservices-speech-sdk/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/object-assign/.eslintrc.yml b/packages/repack/object-assign/.eslintrc.yml new file mode 100644 index 0000000000..c6e3282740 --- /dev/null +++ b/packages/repack/object-assign/.eslintrc.yml @@ -0,0 +1,2 @@ +env: + commonjs: true diff --git a/packages/repack/object-assign/.gitignore b/packages/repack/object-assign/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/object-assign/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/object-assign/package.json b/packages/repack/object-assign/package.json new file mode 100644 index 0000000000..e9f319db07 --- /dev/null +++ b/packages/repack/object-assign/package.json @@ -0,0 +1,21 @@ +{ + "name": "@msinternal/object-assign", + "description": "Delete of object-assign", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "commonjs", + "exports": { + ".": "./src/index.js" + }, + "scripts": { + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0" + }, + "localDependencies": {}, + "pinDependencies": {} +} diff --git a/packages/repack/object-assign/src/index.js b/packages/repack/object-assign/src/index.js new file mode 100644 index 0000000000..0a9bd862fd --- /dev/null +++ b/packages/repack/object-assign/src/index.js @@ -0,0 +1 @@ +module.exports = Object.assign; diff --git a/packages/repack/react-dom/.gitignore b/packages/repack/react-dom/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/react-dom/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/react-dom/build.js b/packages/repack/react-dom/build.js new file mode 100644 index 0000000000..33f3e52b50 --- /dev/null +++ b/packages/repack/react-dom/build.js @@ -0,0 +1,46 @@ +/// + +/* eslint-env node */ +/* eslint-disable no-magic-numbers */ +/* eslint-disable require-unicode-regexp */ + +import * as esbuild from 'esbuild'; + +(async () => { + const config = { + alias: { + 'object-assign': '@msinternal/object-assign' + }, + bundle: true, + entryPoints: ['./src/index.ts'], + format: 'esm', + outdir: './dist/', + platform: 'browser', + splitting: true, + sourcemap: true, + + /** @type { import('esbuild').Plugin[] } */ + plugins: [ + { + name: 'react-resolver', + setup(build) { + build.onResolve({ filter: /^react$/ }, args => + args.kind === 'require-call' ? { path: 'react', namespace: 'stub' } : { external: true, path: args.path } + ); + + build.onLoad({ filter: /^react$/, namespace: 'stub' }, () => ({ + contents: "export * from 'react'; export { default } from 'react';" + })); + } + } + ] + }; + + if (process.argv[2] === '--watch') { + const context = await esbuild.context(config); + + await context.watch(); + } else { + await esbuild.build(config); + } +})(); diff --git a/packages/repack/react-dom/package.json b/packages/repack/react-dom/package.json new file mode 100644 index 0000000000..48b05a7507 --- /dev/null +++ b/packages/repack/react-dom/package.json @@ -0,0 +1,39 @@ +{ + "name": "@msinternal/react-dom", + "description": "Repack of react-dom", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "scripts": { + "build": "node ./build.js", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": { + "@msinternal/object-assign": "development" + }, + "pinDependencies": { + "react-dom": [ + "16.8.6", + "Bump React manually" + ] + }, + "dependencies": { + "react-dom": "16.8.6" + }, + "devDependencies": { + "@msinternal/object-assign": "0.0.0-0", + "@types/react-dom": "^16.9.25", + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/react-dom/src/index.ts b/packages/repack/react-dom/src/index.ts new file mode 100644 index 0000000000..2ea4c8ecf4 --- /dev/null +++ b/packages/repack/react-dom/src/index.ts @@ -0,0 +1,25 @@ +import ReactDOM from 'react-dom'; + +export const { + // @ts-expect-error @types/react hid this export. + __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, + createPortal, + findDOMNode, + flushSync, + hydrate, + render, + unmountComponentAtNode, + unstable_batchedUpdates, + // @ts-expect-error @types/react hid this export. + unstable_createPortal, + // @ts-expect-error @types/react hid this export. + unstable_createRoot, + // @ts-expect-error @types/react hid this export. + unstable_flushControlled, + // @ts-expect-error @types/react hid this export. + unstable_interactiveUpdates, + unstable_renderSubtreeIntoContainer, + version +} = ReactDOM; + +export default ReactDOM; diff --git a/packages/repack/react-dom/src/tsconfig.json b/packages/repack/react-dom/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/react-dom/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/react-is/.gitignore b/packages/repack/react-is/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/react-is/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/react-is/package.json b/packages/repack/react-is/package.json new file mode 100644 index 0000000000..a858705dd0 --- /dev/null +++ b/packages/repack/react-is/package.json @@ -0,0 +1,36 @@ +{ + "name": "@msinternal/react-is", + "description": "Repack of react-is", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "scripts": { + "build": "esbuild --bundle=true --format=esm --outdir=dist --platform=browser --splitting --sourcemap ./src/index.js", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": {}, + "pinDependencies": { + "react-is": [ + "16.13.1", + "Bump with React" + ] + }, + "dependencies": { + "react-is": "16.13.1" + }, + "devDependencies": { + "@types/react-is": "^16.7.5", + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/react-is/src/index.ts b/packages/repack/react-is/src/index.ts new file mode 100644 index 0000000000..300eb9b6c3 --- /dev/null +++ b/packages/repack/react-is/src/index.ts @@ -0,0 +1,26 @@ +export { + ContextConsumer, + ContextProvider, + Element, + ForwardRef, + Fragment, + Lazy, + Memo, + Portal, + Profiler, + StrictMode, + Suspense, + isAsyncMode, + isContextConsumer, + isContextProvider, + isElement, + isForwardRef, + isFragment, + isLazy, + isMemo, + isPortal, + isProfiler, + isStrictMode, + isSuspense, + isValidElementType +} from 'react-is'; diff --git a/packages/repack/react-is/src/tsconfig.json b/packages/repack/react-is/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/react-is/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/repack/react/.gitignore b/packages/repack/react/.gitignore new file mode 100644 index 0000000000..3d2bc62692 --- /dev/null +++ b/packages/repack/react/.gitignore @@ -0,0 +1,2 @@ +/dist/ +/node_modules/ diff --git a/packages/repack/react/package.json b/packages/repack/react/package.json new file mode 100644 index 0000000000..249c49cd83 --- /dev/null +++ b/packages/repack/react/package.json @@ -0,0 +1,39 @@ +{ + "name": "@msinternal/react", + "description": "Repack of react", + "version": "0.0.0-0", + "author": "Microsoft Corporation", + "private": true, + "type": "module", + "exports": { + ".": "./dist/index.js" + }, + "scripts": { + "build": "esbuild --alias:object-assign=@msinternal/object-assign --bundle=true --format=esm --outdir=dist --platform=browser --splitting --sourcemap ./src/index.js", + "bump": "npm run bump:prod && npm run bump:dev && (npm audit fix || exit 0)", + "bump:dev": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.devDependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install $PACKAGES_TO_BUMP || true", + "bump:prod": "PACKAGES_TO_BUMP=$(cat package.json | jq -r '(.pinDependencies // {}) as $P | (.localDependencies // {} | keys) as $L | (.dependencies // {}) | to_entries | map(select(.key as $K | $L | contains([$K]) | not)) | map(.key + \"@\" + ($P[.key] // [\"latest\"])[0]) | join(\" \")') && [ ! -z \"$PACKAGES_TO_BUMP\" ] && npm install --save-exact $PACKAGES_TO_BUMP || true", + "eslint": "npm run precommit", + "precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck", + "precommit:eslint": "eslint --report-unused-disable-directives --max-warnings 0", + "precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false", + "start": "npm run build -- --watch" + }, + "localDependencies": { + "@msinternal/object-assign": "development" + }, + "pinDependencies": { + "react": [ + "16.8.6", + "Bump React manually" + ] + }, + "dependencies": { + "react": "16.8.6" + }, + "devDependencies": { + "@msinternal/object-assign": "0.0.0-0", + "@types/react": "^16.14.65", + "esbuild": "^0.25.10" + } +} diff --git a/packages/repack/react/src/index.ts b/packages/repack/react/src/index.ts new file mode 100644 index 0000000000..98c26df5d0 --- /dev/null +++ b/packages/repack/react/src/index.ts @@ -0,0 +1,39 @@ +import React from 'react'; + +export const { + // @ts-expect-error @types/react hid this export. + __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, + Children, + cloneElement, + Component, + createContext, + createElement, + createFactory, + createRef, + forwardRef, + Fragment, + isValidElement, + lazy, + memo, + Profiler, + PureComponent, + StrictMode, + Suspense, + // @ts-expect-error @types/react hid this export. + unstable_ConcurrentMode, + // @ts-expect-error React hid this export. + unstable_Profiler, + useCallback, + useContext, + useDebugValue, + useEffect, + useImperativeHandle, + useLayoutEffect, + useMemo, + useReducer, + useRef, + useState, + version +} = React; + +export default React; diff --git a/packages/repack/react/src/tsconfig.json b/packages/repack/react/src/tsconfig.json new file mode 100644 index 0000000000..d0fab377e4 --- /dev/null +++ b/packages/repack/react/src/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@msinternal/botframework-webchat-tsconfig/current" +} diff --git a/packages/test/dev-server/src/index.js b/packages/test/dev-server/src/index.js index 1eb9076a8a..fe8ad86548 100644 --- a/packages/test/dev-server/src/index.js +++ b/packages/test/dev-server/src/index.js @@ -100,6 +100,11 @@ const resolveFromRepositoryRoot = resolveFromProjectRoot.bind(undefined, '../../ ) ); + app.use( + '/__dist__/packages/bundle/static/', + express.static(resolve(fileURLToPath(import.meta.url), '../../../bundle/static')) + ); + app.use(/^\/__dist__\/webchat.*$/u, express.static(resolve(fileURLToPath(import.meta.url), '../../../bundle/dist'))); // Other requests will be served by `serve-handler` based on `/serve-test.json`. diff --git a/packages/test/page-object/package.json b/packages/test/page-object/package.json index 607ad73339..7677a0422a 100644 --- a/packages/test/page-object/package.json +++ b/packages/test/page-object/package.json @@ -35,7 +35,7 @@ "event-iterator": "2.0.0", "event-target-shim": "6.0.2", "math-random": "2.0.1", - "microsoft-cognitiveservices-speech-sdk": "1.45.0", + "microsoft-cognitiveservices-speech-sdk": "1.17.0", "prop-types": "15.8.1", "simple-update-in": "2.2.0" }, diff --git a/serve-test.json b/serve-test.json index 0df5ca6b74..537fdb26bd 100644 --- a/serve-test.json +++ b/serve-test.json @@ -79,6 +79,10 @@ "source": "/__dist__/webchat-minimal.js.map", "destination": "packages/bundle/dist/webchat-minimal.js.map" }, + { + "source": "/__dist__/packages/bundle/static/:filename", + "destination": "packages/bundle/static/:filename" + }, { "source": "/test-harness.js", "destination": "packages/test/harness/dist/test-harness.js"