From a763e2b5111fb0c974e4509fb3373ce33a70c3d0 Mon Sep 17 00:00:00 2001 From: Donald McEachern <94866715+dmceachernmsft@users.noreply.github.com> Date: Fri, 12 Jul 2024 14:51:55 -0700 Subject: [PATCH] [Inbound Calling] Add Stateful Client Calling sample App (#4840) * Add new component * Add icons and Locale * add CC to notification * add storybook page * lint * Change files * Add style API * add customization updates and snippet * fix lint * Change files * app initial commit * it lives * update to support multiple call notifications * update API * create login component * update stable lock * simplify to 1 array * fix cte * add incoming Call Manager component * fix lint * add cc * fix lock --- common/config/rush/pnpm-lock.yaml | 479 ++++++---- .../rush/variants/stable/pnpm-lock.yaml | 329 +++---- .../components/IncomingCallNotification.tsx | 1 + rush.json | 5 + samples/CallingStateful/.babelrc.js | 15 + samples/CallingStateful/.eslintignore | 5 + samples/CallingStateful/.eslintrc.js | 65 ++ samples/CallingStateful/CHANGELOG.json | 820 ++++++++++++++++++ samples/CallingStateful/LICENSE | 21 + samples/CallingStateful/README.md | 57 ++ samples/CallingStateful/package.json | 110 +++ .../public/assets/sounds/callBusy.mp3 | Bin 0 -> 11568 bytes .../public/assets/sounds/callEnded.mp3 | Bin 0 -> 40353 bytes .../public/assets/sounds/callRinging.mp3 | Bin 0 -> 304353 bytes samples/CallingStateful/public/index.html | 19 + samples/CallingStateful/public/manifest.json | 8 + samples/CallingStateful/src/App.css | 0 samples/CallingStateful/src/App.tsx | 223 +++++ .../CallingStateful/src/assets/assets.d.ts | 7 + samples/CallingStateful/src/assets/hero.svg | 40 + .../src/components/CallingComponents.tsx | 69 ++ .../src/components/IncomingCallManager.tsx | 42 + samples/CallingStateful/src/index.css | 38 + samples/CallingStateful/src/index.tsx | 14 + .../src/styles/HomeScreen.styles.ts | 12 + samples/CallingStateful/src/utils/AppUtils.ts | 123 +++ .../CallingStateful/src/utils/credential.ts | 32 + .../CallingStateful/src/views/CallScreen.tsx | 54 ++ samples/CallingStateful/src/views/Login.tsx | 179 ++++ samples/CallingStateful/tsconfig.json | 20 + .../CallingStateful/tsconfig.preprocess.json | 10 + samples/CallingStateful/webpack.config.js | 10 + 32 files changed, 2498 insertions(+), 309 deletions(-) create mode 100644 samples/CallingStateful/.babelrc.js create mode 100644 samples/CallingStateful/.eslintignore create mode 100644 samples/CallingStateful/.eslintrc.js create mode 100644 samples/CallingStateful/CHANGELOG.json create mode 100644 samples/CallingStateful/LICENSE create mode 100644 samples/CallingStateful/README.md create mode 100644 samples/CallingStateful/package.json create mode 100644 samples/CallingStateful/public/assets/sounds/callBusy.mp3 create mode 100644 samples/CallingStateful/public/assets/sounds/callEnded.mp3 create mode 100644 samples/CallingStateful/public/assets/sounds/callRinging.mp3 create mode 100644 samples/CallingStateful/public/index.html create mode 100644 samples/CallingStateful/public/manifest.json create mode 100644 samples/CallingStateful/src/App.css create mode 100644 samples/CallingStateful/src/App.tsx create mode 100644 samples/CallingStateful/src/assets/assets.d.ts create mode 100644 samples/CallingStateful/src/assets/hero.svg create mode 100644 samples/CallingStateful/src/components/CallingComponents.tsx create mode 100644 samples/CallingStateful/src/components/IncomingCallManager.tsx create mode 100644 samples/CallingStateful/src/index.css create mode 100644 samples/CallingStateful/src/index.tsx create mode 100644 samples/CallingStateful/src/styles/HomeScreen.styles.ts create mode 100644 samples/CallingStateful/src/utils/AppUtils.ts create mode 100644 samples/CallingStateful/src/utils/credential.ts create mode 100644 samples/CallingStateful/src/views/CallScreen.tsx create mode 100644 samples/CallingStateful/src/views/Login.tsx create mode 100644 samples/CallingStateful/tsconfig.json create mode 100644 samples/CallingStateful/tsconfig.preprocess.json create mode 100644 samples/CallingStateful/webpack.config.js diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index c0340434eb4..191365db607 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -32,6 +32,9 @@ dependencies: '@rush-temp/calling-stateful-client': specifier: file:./projects/calling-stateful-client.tgz version: file:projects/calling-stateful-client.tgz + '@rush-temp/callingstateful': + specifier: file:./projects/callingstateful.tgz + version: file:projects/callingstateful.tgz '@rush-temp/callwithchat': specifier: file:./projects/callwithchat.tgz version: file:projects/callwithchat.tgz @@ -444,7 +447,7 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.24.2 picocolors: 1.0.0 dev: false @@ -470,14 +473,14 @@ packages: resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.12.9) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.12.9) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 convert-source-map: 1.9.0 debug: 4.3.4(supports-color@5.5.0) gensync: 1.0.0-beta.2 @@ -527,11 +530,21 @@ packages: semver: 6.3.1 dev: false + /@babel/generator@7.24.4: + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: false + /@babel/generator@7.24.5: resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -558,15 +571,15 @@ packages: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 dev: false /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 @@ -591,13 +604,13 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.5 semver: 6.3.1 dev: false @@ -619,10 +632,10 @@ packages: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-imports': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/traverse': 7.24.7 + '@babel/traverse': 7.24.5 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -637,7 +650,7 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -652,7 +665,7 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -707,7 +720,7 @@ packages: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 dev: false /@babel/helper-module-imports@7.22.15: @@ -734,20 +747,32 @@ packages: - supports-color dev: false - /@babel/helper-module-transforms@7.24.7(@babel/core@7.12.9): - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + /@babel/helper-module-transforms@7.24.5(@babel/core@7.12.9): + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + dev: false + + /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.7): + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 dev: false /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7): @@ -770,7 +795,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 dev: false /@babel/helper-plugin-utils@7.10.4: @@ -790,7 +815,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: false @@ -801,11 +826,25 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 dev: false + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + dev: false + + /@babel/helper-simple-access@7.24.5: + resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + dev: false + /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -820,7 +859,14 @@ packages: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 + dev: false + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 dev: false /@babel/helper-split-export-declaration@7.24.5: @@ -847,6 +893,11 @@ packages: engines: {node: '>=6.9.0'} dev: false + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-validator-identifier@7.24.5: resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} @@ -871,9 +922,20 @@ packages: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.24.7 - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 + dev: false + + /@babel/helpers@7.24.5: + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + transitivePeerDependencies: + - supports-color dev: false /@babel/helpers@7.24.7: @@ -884,6 +946,16 @@ packages: '@babel/types': 7.24.7 dev: false + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: false + /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -935,7 +1007,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 dev: false @@ -1005,9 +1077,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.7 + '@babel/compat-data': 7.23.5 '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.7) @@ -1324,7 +1396,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.7) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) @@ -1337,11 +1409,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-imports': 7.24.7 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.7): @@ -1395,12 +1465,12 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.7) - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: false @@ -1412,7 +1482,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.7 + '@babel/template': 7.24.0 dev: false /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.7): @@ -1508,8 +1578,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-function-name': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 dev: false @@ -1562,10 +1632,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.7): @@ -1575,11 +1643,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/helper-simple-access': 7.22.5 dev: false /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.7): @@ -1589,12 +1655,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.22.20 dev: false /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.7): @@ -1604,10 +1668,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.7): @@ -1659,9 +1721,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.7 + '@babel/compat-data': 7.23.5 '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.7) @@ -2047,7 +2109,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.24.7 + '@babel/helper-validator-option': 7.23.5 '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.7) dev: false @@ -2058,7 +2120,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 esutils: 2.0.3 dev: false @@ -2085,12 +2147,10 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.24.7 + '@babel/helper-validator-option': 7.23.5 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.7) '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color dev: false /@babel/register@7.23.7(@babel/core@7.24.7): @@ -2154,6 +2214,24 @@ packages: - supports-color dev: false + /@babel/traverse@7.24.5: + resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + debug: 4.3.4(supports-color@5.5.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/traverse@7.24.7: resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} @@ -2172,6 +2250,15 @@ packages: - supports-color dev: false + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 + to-fast-properties: 2.0.0 + dev: false + /@babel/types@7.24.5: resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} @@ -4261,9 +4348,9 @@ packages: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/merge-styles': 8.6.1 - '@fluentui/set-version': 8.2.15 - '@fluentui/utilities': 8.15.1(@types/react@18.3.3)(react@18.3.1) + '@fluentui/merge-styles': 8.6.12 + '@fluentui/set-version': 8.2.23 + '@fluentui/utilities': 8.15.12(@types/react@18.3.3)(react@18.3.1) '@types/react': 18.3.3 react: 18.3.1 tslib: 2.6.2 @@ -4472,7 +4559,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.25 + '@types/node': 20.14.8 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -4535,7 +4622,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 jest-mock: 29.7.0 dev: false @@ -4562,7 +4649,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.14.3 + '@types/node': 20.14.8 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4595,7 +4682,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.11.25 + '@types/node': 20.14.8 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -6680,7 +6767,7 @@ packages: hasBin: true dependencies: '@babel/core': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 '@ndelangen/get-tarball': 3.0.9 '@storybook/codemod': 8.0.9 '@storybook/core-common': 8.0.9 @@ -6816,7 +6903,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/preset-env': 7.23.9(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 '@storybook/csf': 0.1.4 '@storybook/csf-tools': 8.0.9 '@storybook/node-logger': 8.0.9 @@ -7403,12 +7490,12 @@ packages: optional: true dependencies: '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/generator': 7.24.5 + '@babel/parser': 7.24.5 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.7) '@babel/preset-env': 7.23.9(@babel/core@7.24.7) - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/mdx1-csf': 0.0.1(@babel/core@7.24.7) core-js: 3.36.0 @@ -7423,10 +7510,10 @@ packages: /@storybook/csf-tools@8.0.8: resolution: {integrity: sha512-Ji5fpoGym/MSyHJ6ALghVUUecwhEbN0On+jOZ2VPkrkATi9UDtryHQPdF60HKR63Iv53xRuWRzudB6zm43RTzw==} dependencies: - '@babel/generator': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/generator': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 '@storybook/csf': 0.1.3 '@storybook/types': 8.0.8 fs-extra: 11.2.0 @@ -7439,10 +7526,10 @@ packages: /@storybook/csf-tools@8.0.9: resolution: {integrity: sha512-PiNMhL97giLytTdQwuhsZ92buVk4gy9H/8DtrDhUc45/1OmF95gogm6T2Yap729SIFwgpOcuq/U3aVo6d6swVQ==} dependencies: - '@babel/generator': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/generator': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 '@storybook/csf': 0.1.4 '@storybook/types': 8.0.9 fs-extra: 11.2.0 @@ -8262,9 +8349,9 @@ packages: hasBin: true dependencies: '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/generator': 7.24.4 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@jest/types': 29.6.3 '@storybook/core-common': 8.0.8 '@storybook/csf': 0.1.3 @@ -8653,8 +8740,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 @@ -8663,20 +8750,20 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 dev: false /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 dev: false /@types/babel__traverse@7.20.5: resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 dev: false /@types/body-parser@1.19.5: @@ -8824,7 +8911,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.14.3 + '@types/node': 20.14.8 dev: false /@types/hast@2.3.10: @@ -8999,12 +9086,6 @@ packages: undici-types: 5.26.5 dev: false - /@types/node@20.14.3: - resolution: {integrity: sha512-Nuzqa6WAxeGnve6SXqiPAM9rA++VQs+iLZ1DDd56y0gdvygSZlQvZuvdFPR3yLqkVxPu4WrO02iDEyH1g+wazw==} - dependencies: - undici-types: 5.26.5 - dev: false - /@types/node@20.14.8: resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} dependencies: @@ -10541,8 +10622,8 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 dev: false @@ -10565,7 +10646,7 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.24.7 + '@babel/compat-data': 7.23.5 '@babel/core': 7.24.7 '@babel/helper-define-polyfill-provider': 0.6.0(@babel/core@7.24.7) semver: 6.3.1 @@ -12937,7 +13018,7 @@ packages: has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.2 + hasown: 2.0.1 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 @@ -13104,13 +13185,13 @@ packages: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.1 dev: false /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.2 + hasown: 2.0.1 dev: false /es-to-primitive@1.2.1: @@ -13596,8 +13677,8 @@ packages: resolution: {integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==} engines: {node: '>=8.3.0'} dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 c8: 7.14.0 transitivePeerDependencies: - supports-color @@ -14214,7 +14295,7 @@ packages: resolution: {integrity: sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==} engines: {node: '>=6.11.5', yarn: '>=1.0.0'} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 chalk: 2.4.2 micromatch: 3.1.10 minimatch: 3.1.2 @@ -14237,7 +14318,7 @@ packages: vue-template-compiler: optional: true dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 chalk: 4.1.2 chokidar: 3.6.0 @@ -14269,7 +14350,7 @@ packages: vue-template-compiler: optional: true dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 chalk: 4.1.2 chokidar: 3.6.0 @@ -14294,7 +14375,7 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 7.1.0 @@ -14688,7 +14769,7 @@ packages: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.5 + minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.2 dev: false @@ -15542,7 +15623,7 @@ packages: engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - hasown: 2.0.2 + hasown: 2.0.1 side-channel: 1.0.6 dev: false @@ -15589,7 +15670,7 @@ packages: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} dependencies: - hasown: 2.0.2 + hasown: 2.0.1 dev: false /is-alphabetical@1.0.4: @@ -15692,14 +15773,14 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.2 + hasown: 2.0.1 dev: false /is-data-descriptor@1.0.1: resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} engines: {node: '>= 0.4'} dependencies: - hasown: 2.0.2 + hasown: 2.0.1 dev: false /is-data-view@1.0.1: @@ -16168,7 +16249,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -16181,7 +16262,7 @@ packages: engines: {node: '>=10'} dependencies: '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.0 @@ -16287,7 +16368,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -16486,7 +16567,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 jest-mock: 29.7.0 jest-util: 29.7.0 dev: false @@ -16537,7 +16618,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.11.25 + '@types/node': 20.14.8 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -16592,7 +16673,7 @@ packages: resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 '@jest/types': 26.6.2 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -16607,7 +16688,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -16623,7 +16704,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 jest-util: 29.7.0 dev: false @@ -16750,7 +16831,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -16781,7 +16862,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.25 + '@types/node': 20.14.8 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -16818,7 +16899,7 @@ packages: resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 '@jest/types': 26.6.2 '@types/babel__traverse': 7.20.5 '@types/prettier': 2.7.3 @@ -16841,10 +16922,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.5 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7) '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/types': 7.24.5 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -16931,7 +17012,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.11.25 + '@types/node': 20.14.8 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -16961,7 +17042,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.14.3 + '@types/node': 20.14.8 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -17044,7 +17125,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.5 '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.7) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.7) '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.7) @@ -17876,6 +17957,13 @@ packages: brace-expansion: 2.0.1 dev: false + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: false + /minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -18828,7 +18916,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19699,7 +19787,7 @@ packages: hasBin: true dependencies: '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.5 '@babel/runtime': 7.24.0 ast-types: 0.14.2 commander: 2.20.3 @@ -19717,8 +19805,8 @@ packages: engines: {node: '>=16.14.0'} dependencies: '@babel/core': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 '@types/doctrine': 0.0.9 @@ -20459,7 +20547,6 @@ packages: /rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -24356,6 +24443,100 @@ packages: - utf-8-validate dev: false + file:projects/callingstateful.tgz: + resolution: {integrity: sha512-QJQq8TecYmCTn+cEdtYlxqtzpg+eA6dVAScLJa1w4h97cTViG0wbe7y/nOxfqgGd3qt9/wvSGpGjBGJaCvc5uw==, tarball: file:projects/callingstateful.tgz} + name: '@rush-temp/callingstateful' + version: 0.0.0 + dependencies: + '@azure/abort-controller': 1.1.0 + '@azure/communication-calling': 1.27.1-beta.1 + '@azure/communication-common': 2.3.1 + '@azure/communication-identity': 1.3.0 + '@azure/logger': 1.0.4 + '@babel/cli': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.7 + '@babel/eslint-parser': 7.23.10(@babel/core@7.24.7)(eslint@8.57.0) + '@babel/preset-env': 7.23.9(@babel/core@7.24.7) + '@babel/preset-react': 7.23.3(@babel/core@7.24.7) + '@fluentui/react': 8.117.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-hooks': 8.7.1(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-icons': 2.0.245(react@18.3.1) + '@types/jest': 29.5.12 + '@types/node': 20.14.8 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@types/uuid': 9.0.8 + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.4.5) + ajv: 8.13.0 + babel-jest: 29.7.0(@babel/core@7.24.7) + babel-loader: 8.1.0(@babel/core@7.24.7)(webpack@5.89.0) + concurrently: 5.3.0 + copyfiles: 2.4.1 + cpx: 1.5.0 + css-loader: 4.3.0(webpack@5.89.0) + env-cmd: 10.1.0 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@7.14.1)(@typescript-eslint/parser@7.14.1)(eslint-plugin-flowtype@8.0.3)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.3)(eslint@8.57.0) + eslint-plugin-flowtype: 8.0.3(eslint@8.57.0) + eslint-plugin-header: 3.1.1(eslint@8.57.0) + eslint-plugin-import: 2.29.1(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.2) + eslint-plugin-react: 7.34.3(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + follow-redirects: 1.15.3 + html-webpack-plugin: 5.6.0(webpack@5.89.0) + husky: 8.0.3 + if-env: 1.0.4 + jest: 29.7.0(@types/node@20.14.8)(ts-node@10.9.2) + jest-junit: 16.0.0 + merge: 2.1.1 + mobile-detect: 1.4.5 + nanoid: 3.3.6 + node-fetch: 2.6.7 + prettier: 3.3.2 + pretty-quick: 4.0.0(prettier@3.3.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + reselect: 4.1.8 + rimraf: 2.7.1 + shake.js: 1.2.2 + source-map-explorer: 2.5.3 + style-loader: 2.0.0(webpack@5.89.0) + ts-loader: 8.4.0(typescript@5.4.5)(webpack@5.89.0) + typescript: 5.4.5 + url-loader: 4.1.1(webpack@5.89.0) + uuid: 9.0.1 + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-bundle-analyzer: 4.10.1 + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.2)(webpack@5.89.0) + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.89.0) + transitivePeerDependencies: + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - '@rspack/core' + - '@swc/core' + - '@types/eslint' + - '@webpack-cli/generators' + - babel-eslint + - babel-plugin-macros + - bufferutil + - debug + - encoding + - esbuild + - eslint-plugin-jest + - eslint-plugin-testing-library + - file-loader + - node-notifier + - supports-color + - ts-node + - uglify-js + - utf-8-validate + dev: false + file:projects/callwithchat.tgz: resolution: {integrity: sha512-OaUoqb4TEfKwzGVY08PT4/akKB0vXOYMuzWElbKBcg4FhHLVI/k7UmtX6R9+5vcQshamrWDReDAFn4DvT1ugeg==, tarball: file:projects/callwithchat.tgz} name: '@rush-temp/callwithchat' diff --git a/common/config/rush/variants/stable/pnpm-lock.yaml b/common/config/rush/variants/stable/pnpm-lock.yaml index 9d6fb2ec477..556a0444f65 100644 --- a/common/config/rush/variants/stable/pnpm-lock.yaml +++ b/common/config/rush/variants/stable/pnpm-lock.yaml @@ -32,6 +32,9 @@ dependencies: '@rush-temp/calling-stateful-client': specifier: file:./projects/calling-stateful-client.tgz version: file:projects/calling-stateful-client.tgz + '@rush-temp/callingstateful': + specifier: file:./projects/callingstateful.tgz + version: file:projects/callingstateful.tgz '@rush-temp/callwithchat': specifier: file:./projects/callwithchat.tgz version: file:projects/callwithchat.tgz @@ -545,15 +548,15 @@ packages: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 dev: false /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 @@ -606,7 +609,7 @@ packages: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/traverse': 7.24.5(supports-color@5.5.0) @@ -624,7 +627,7 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -639,7 +642,7 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -694,7 +697,7 @@ packages: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 dev: false /@babel/helper-module-imports@7.24.3: @@ -721,25 +724,13 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.12.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 - dev: false - - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.7): - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.5 + transitivePeerDependencies: + - supports-color dev: false /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7): @@ -762,7 +753,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 dev: false /@babel/helper-plugin-utils@7.10.4: @@ -782,7 +773,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.22.20 dev: false @@ -793,18 +784,11 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 dev: false - /@babel/helper-simple-access@7.24.5: - resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - dev: false - /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -870,9 +854,9 @@ packages: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/helper-function-name': 7.24.7 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 dev: false /@babel/helpers@7.24.5: @@ -881,7 +865,7 @@ packages: dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.5(supports-color@5.5.0) - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 transitivePeerDependencies: - supports-color dev: false @@ -955,7 +939,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 dev: false @@ -1344,7 +1328,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.7) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7) @@ -1357,9 +1341,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.7): @@ -1413,12 +1399,12 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.7) - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 dev: false @@ -1430,7 +1416,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 + '@babel/template': 7.24.7 dev: false /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.7): @@ -1526,8 +1512,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 dev: false @@ -1580,8 +1566,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.7): @@ -1591,9 +1579,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.24.5 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.7): @@ -1603,10 +1593,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.7): @@ -1616,8 +1608,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.7 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.7) + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.0 + transitivePeerDependencies: + - supports-color dev: false /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.7): @@ -1669,9 +1663,9 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.7) @@ -1964,11 +1958,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.7 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 + '@babel/helper-validator-option': 7.24.7 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.7) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.7) '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.24.7) @@ -2068,7 +2062,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 esutils: 2.0.3 dev: false @@ -2099,6 +2093,8 @@ packages: '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.7) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.7) '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color dev: false /@babel/register@7.23.7(@babel/core@7.24.7): @@ -2576,13 +2572,6 @@ packages: tslib: 2.6.2 dev: false - /@fluentui/dom-utilities@2.3.1: - resolution: {integrity: sha512-wZbAQIEBHmCXyqLjUPDDu/4LCQj6fZOoN5GYG5ZQ4oSUk31C4Nl8AsEtQsLV37iL91d4Lj5A5P9lrsXQ80kxKA==} - dependencies: - '@fluentui/set-version': 8.2.23 - tslib: 2.6.2 - dev: false - /@fluentui/dom-utilities@2.3.7: resolution: {integrity: sha512-AaTR9BhJEF0i042NS1Ju8l95f24p2tBMq6jVVbUEDtYnKaxWnpv8R9eYjOwy8SDniQc1ino+BkolIgCVXXvDmw==} dependencies: @@ -2670,13 +2659,6 @@ packages: tslib: 2.6.2 dev: false - /@fluentui/merge-styles@8.6.4: - resolution: {integrity: sha512-tTkek3aWim00VvJ9Zr86mVQqP9KOU47tBWhdUBjZPta+QtQV/V+E6OwaMD7itb2jACnt4jzyIvTLnOsMX8VHGA==} - dependencies: - '@fluentui/set-version': 8.2.23 - tslib: 2.6.2 - dev: false - /@fluentui/priority-overflow@9.1.11: resolution: {integrity: sha512-sdrpavvKX2kepQ1d6IaI3ObLq5SAQBPRHPGx2+wiMWL7cEx9vGGM0fmeicl3soqqmM5uwCmWnZk9QZv9XOY98w==} dependencies: @@ -3165,9 +3147,9 @@ packages: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-window-provider': 2.2.19(@types/react@18.3.3)(react@18.3.1) - '@fluentui/set-version': 8.2.15 - '@fluentui/utilities': 8.15.1(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-window-provider': 2.2.27(@types/react@18.3.3)(react@18.3.1) + '@fluentui/set-version': 8.2.23 + '@fluentui/utilities': 8.15.12(@types/react@18.3.3)(react@18.3.1) '@types/react': 18.3.3 react: 18.3.1 tslib: 2.6.2 @@ -3193,9 +3175,9 @@ packages: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-window-provider': 2.2.21(@types/react@18.3.3)(react@18.3.1) - '@fluentui/set-version': 8.2.15 - '@fluentui/utilities': 8.15.1(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-window-provider': 2.2.27(@types/react@18.3.3)(react@18.3.1) + '@fluentui/set-version': 8.2.23 + '@fluentui/utilities': 8.15.12(@types/react@18.3.3)(react@18.3.1) '@types/react': 18.3.3 react: 18.3.1 tslib: 2.6.2 @@ -4119,30 +4101,6 @@ packages: tslib: 2.6.2 dev: false - /@fluentui/react-window-provider@2.2.19(@types/react@18.3.3)(react@18.3.1): - resolution: {integrity: sha512-1K2ppKkaulLnMD+VvSRw9tufzR/MqGbuP/BKV0vRdyO/pqU+rIhNKj17F3uistJOOSmn+suz4l4wCk4Br5hdKA==} - peerDependencies: - '@types/react': '>=16.8.0 <19.0.0' - react: '>=16.8.0 <19.0.0' - dependencies: - '@fluentui/set-version': 8.2.17 - '@types/react': 18.3.3 - react: 18.3.1 - tslib: 2.6.2 - dev: false - - /@fluentui/react-window-provider@2.2.21(@types/react@18.3.3)(react@18.3.1): - resolution: {integrity: sha512-ZrPYPmhLB9TqWu2c4g7L9zJGakcfJ4AYD3rje8lQJzSDftQ3OpM8DoLoe18joGni6yLICSaCVdBfQfoJpFmkHg==} - peerDependencies: - '@types/react': '>=16.8.0 <19.0.0' - react: '>=16.8.0 <19.0.0' - dependencies: - '@fluentui/set-version': 8.2.17 - '@types/react': 18.3.3 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /@fluentui/react-window-provider@2.2.27(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-Dg0G9bizjryV0Q/r0CPtCVTPa2II/EsT9E6JT3jPSALjQADDLlW4/+ZXbcEC7geZ/40+KpZDmhplvk/AJSFBKg==} peerDependencies: @@ -4214,8 +4172,8 @@ packages: /@fluentui/scheme-utilities@8.3.42(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-3q1ej7hdoJkBw2c9GU90StWMxqHMmuKcpALs67DlpBpJ/3vIOeMumKoS7Yl34AfyUwiz1Dw38TZOhDJ1y2nfxw==} dependencies: - '@fluentui/set-version': 8.2.17 - '@fluentui/theme': 2.6.47(@types/react@18.3.3)(react@18.3.1) + '@fluentui/set-version': 8.2.23 + '@fluentui/theme': 2.6.55(@types/react@18.3.3)(react@18.3.1) tslib: 2.6.2 transitivePeerDependencies: - '@types/react' @@ -4273,7 +4231,7 @@ packages: dependencies: '@fluentui/react': 8.117.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@fluentui/scheme-utilities': 8.3.42(@types/react@18.3.3)(react@18.3.1) - '@fluentui/set-version': 8.2.15 + '@fluentui/set-version': 8.2.23 tslib: 2.6.2 transitivePeerDependencies: - '@types/react' @@ -4296,20 +4254,6 @@ packages: tslib: 2.6.2 dev: false - /@fluentui/theme@2.6.47(@types/react@18.3.3)(react@18.3.1): - resolution: {integrity: sha512-B58sD7w5S8/UVwo9j/enjf3KjEhCjDw6bXMG6lJS1EILRvz1aDN90J0Z+GiYnm3WtaTeYq04kh9XLfpnfkadcA==} - peerDependencies: - '@types/react': '>=16.8.0 <19.0.0' - react: '>=16.8.0 <19.0.0' - dependencies: - '@fluentui/merge-styles': 8.6.4 - '@fluentui/set-version': 8.2.17 - '@fluentui/utilities': 8.15.4(@types/react@18.3.3)(react@18.3.1) - '@types/react': 18.3.3 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /@fluentui/theme@2.6.55(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-U4XqhVsUOGj8LEgzuDMmrXOE5wvq91X4Tw9/6qjWYh3zdon4dfiMQpyXxaI9yh4lJ5GXXd4V2aI7QHYGAHSVTw==} peerDependencies: @@ -4344,20 +4288,6 @@ packages: tslib: 2.6.2 dev: false - /@fluentui/utilities@8.15.1(@types/react@18.3.3)(react@18.3.1): - resolution: {integrity: sha512-9RdPGXmwnAhmVSVD/9F+P5dAQMpiLZudp8tpCYbSCftqtGpDtbWeTX/V9JEtG++fy50V6dpjLDCCOcBu20erAA==} - peerDependencies: - '@types/react': '>=16.8.0 <19.0.0' - react: '>=16.8.0 <19.0.0' - dependencies: - '@fluentui/dom-utilities': 2.2.15 - '@fluentui/merge-styles': 8.6.1 - '@fluentui/set-version': 8.2.17 - '@types/react': 18.3.3 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /@fluentui/utilities@8.15.12(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-rDykd3jdIgeIT8vxW66JVS2kipCD2P+NXmjG/uKiRe/OylPSdv0KcewkwcysFYN6XkdVZ/FEKHVRUjD1ejRnxQ==} peerDependencies: @@ -4373,21 +4303,6 @@ packages: tslib: 2.6.2 dev: false - /@fluentui/utilities@8.15.4(@types/react@18.3.3)(react@18.3.1): - resolution: {integrity: sha512-0M7gm2PmkJeQmQflcoens80QOslm3NGAQgV2bWsWFrdOB2Qn1fx3eyPWtT3h+a6IA705N0YR8KZCtAJ87mS+nA==} - peerDependencies: - '@types/react': '>=16.8.0 <19.0.0' - react: '>=16.8.0 <19.0.0' - dependencies: - '@fluentui/dom-utilities': 2.3.1 - '@fluentui/merge-styles': 8.6.12 - '@fluentui/react-window-provider': 2.2.27(@types/react@18.3.3)(react@18.3.1) - '@fluentui/set-version': 8.2.23 - '@types/react': 18.3.3 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: false @@ -4511,7 +4426,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -4634,7 +4549,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.14.3 + '@types/node': 20.14.8 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -7447,7 +7362,7 @@ packages: '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.7) '@babel/preset-env': 7.23.9(@babel/core@7.24.7) '@babel/traverse': 7.24.5(supports-color@5.5.0) - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/mdx1-csf': 0.0.1(@babel/core@7.24.7) core-js: 3.36.0 @@ -8863,7 +8778,7 @@ packages: /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.14.3 + '@types/node': 20.14.8 dev: false /@types/hast@2.3.10: @@ -10604,7 +10519,7 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.7 '@babel/helper-define-polyfill-provider': 0.6.0(@babel/core@7.24.7) semver: 6.3.1 @@ -16576,7 +16491,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.14.3 + '@types/node': 20.14.8 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -16820,7 +16735,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -16970,7 +16885,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.3 + '@types/node': 20.14.8 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -19764,7 +19679,7 @@ packages: dependencies: '@babel/core': 7.24.7 '@babel/traverse': 7.24.5(supports-color@5.5.0) - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 '@types/doctrine': 0.0.9 @@ -24343,6 +24258,100 @@ packages: - utf-8-validate dev: false + file:projects/callingstateful.tgz: + resolution: {integrity: sha512-QJQq8TecYmCTn+cEdtYlxqtzpg+eA6dVAScLJa1w4h97cTViG0wbe7y/nOxfqgGd3qt9/wvSGpGjBGJaCvc5uw==, tarball: file:projects/callingstateful.tgz} + name: '@rush-temp/callingstateful' + version: 0.0.0 + dependencies: + '@azure/abort-controller': 1.1.0 + '@azure/communication-calling': 1.26.1 + '@azure/communication-common': 2.3.1 + '@azure/communication-identity': 1.3.0 + '@azure/logger': 1.0.4 + '@babel/cli': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.7 + '@babel/eslint-parser': 7.23.10(@babel/core@7.24.7)(eslint@8.57.0) + '@babel/preset-env': 7.23.9(@babel/core@7.24.7) + '@babel/preset-react': 7.23.3(@babel/core@7.24.7) + '@fluentui/react': 8.117.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@fluentui/react-hooks': 8.7.1(@types/react@18.3.3)(react@18.3.1) + '@fluentui/react-icons': 2.0.245(react@18.3.1) + '@types/jest': 29.5.12 + '@types/node': 20.14.8 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@types/uuid': 9.0.8 + '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.4.5) + ajv: 8.13.0 + babel-jest: 29.7.0(@babel/core@7.24.7) + babel-loader: 8.1.0(@babel/core@7.24.7)(webpack@5.89.0) + concurrently: 5.3.0 + copyfiles: 2.4.1 + cpx: 1.5.0 + css-loader: 4.3.0(webpack@5.89.0) + env-cmd: 10.1.0 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-config-react-app: 6.0.0(@typescript-eslint/eslint-plugin@7.14.1)(@typescript-eslint/parser@7.14.1)(eslint-plugin-flowtype@8.0.3)(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.3)(eslint@8.57.0) + eslint-plugin-flowtype: 8.0.3(eslint@8.57.0) + eslint-plugin-header: 3.1.1(eslint@8.57.0) + eslint-plugin-import: 2.29.1(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.2) + eslint-plugin-react: 7.34.3(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + follow-redirects: 1.15.3 + html-webpack-plugin: 5.6.0(webpack@5.89.0) + husky: 8.0.3 + if-env: 1.0.4 + jest: 29.7.0(@types/node@20.14.8)(ts-node@10.9.2) + jest-junit: 16.0.0 + merge: 2.1.1 + mobile-detect: 1.4.5 + nanoid: 3.3.6 + node-fetch: 2.6.7 + prettier: 3.3.2 + pretty-quick: 4.0.0(prettier@3.3.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + reselect: 4.1.8 + rimraf: 2.7.1 + shake.js: 1.2.2 + source-map-explorer: 2.5.3 + style-loader: 2.0.0(webpack@5.89.0) + ts-loader: 8.4.0(typescript@5.4.5)(webpack@5.89.0) + typescript: 5.4.5 + url-loader: 4.1.1(webpack@5.89.0) + uuid: 9.0.1 + webpack: 5.89.0(webpack-cli@5.1.4) + webpack-bundle-analyzer: 4.10.1 + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.2)(webpack@5.89.0) + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.89.0) + transitivePeerDependencies: + - '@babel/plugin-syntax-flow' + - '@babel/plugin-transform-react-jsx' + - '@rspack/core' + - '@swc/core' + - '@types/eslint' + - '@webpack-cli/generators' + - babel-eslint + - babel-plugin-macros + - bufferutil + - debug + - encoding + - esbuild + - eslint-plugin-jest + - eslint-plugin-testing-library + - file-loader + - node-notifier + - supports-color + - ts-node + - uglify-js + - utf-8-validate + dev: false + file:projects/callwithchat.tgz: resolution: {integrity: sha512-OaUoqb4TEfKwzGVY08PT4/akKB0vXOYMuzWElbKBcg4FhHLVI/k7UmtX6R9+5vcQshamrWDReDAFn4DvT1ugeg==, tarball: file:projects/callwithchat.tgz} name: '@rush-temp/callwithchat' diff --git a/packages/react-components/src/components/IncomingCallNotification.tsx b/packages/react-components/src/components/IncomingCallNotification.tsx index d162703c57e..8b022338e73 100644 --- a/packages/react-components/src/components/IncomingCallNotification.tsx +++ b/packages/react-components/src/components/IncomingCallNotification.tsx @@ -191,6 +191,7 @@ const incomingCallToastStyle = (theme: Theme): IStackStyles => { root: { minWidth: '20rem', maxWidth: '40rem', + background: theme.palette.white, opacity: 0.95, borderRadius: '0.5rem', boxShadow: theme.effects.elevation8, diff --git a/rush.json b/rush.json index f0e86a6bb07..c9eaa1987dd 100644 --- a/rush.json +++ b/rush.json @@ -80,6 +80,11 @@ "projectFolder": "samples/CallWithChat", "reviewCategory": "sample" }, + { + "packageName": "@internal/callingstateful", + "projectFolder": "samples/CallingStateful", + "reviewCategory": "sample" + }, { "packageName": "@internal/component-examples", "projectFolder": "samples/ComponentExamples", diff --git a/samples/CallingStateful/.babelrc.js b/samples/CallingStateful/.babelrc.js new file mode 100644 index 00000000000..2136da2286a --- /dev/null +++ b/samples/CallingStateful/.babelrc.js @@ -0,0 +1,15 @@ +const commonConfig = require('../../common/config/babel/.babelrc.js'); + +module.exports = { + ...commonConfig, + /** + * retainLines is needed to maintain the lines of the comments in the output to preprocess. This will cause in the output + * the comments assigned to their original position in the file so any linter options will be maintained on their respective node. + * + * this is caused by the comments being both trailing and leading to the nodes either above or below it, regardless + * of which node it is touching on the next line. + * + * link to babel docs on this: https://babeljs.io/docs/en/options#retainlines + */ + retainLines: true +}; diff --git a/samples/CallingStateful/.eslintignore b/samples/CallingStateful/.eslintignore new file mode 100644 index 00000000000..ed0bf1692d8 --- /dev/null +++ b/samples/CallingStateful/.eslintignore @@ -0,0 +1,5 @@ +docs/ +public/ +dist/ +node_modules/ +preprocessed/ diff --git a/samples/CallingStateful/.eslintrc.js b/samples/CallingStateful/.eslintrc.js new file mode 100644 index 00000000000..dd4cee4a165 --- /dev/null +++ b/samples/CallingStateful/.eslintrc.js @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +module.exports = { + env: { + browser: true, + node: true, + es6: true + }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + 'plugin:react/recommended', + 'plugin:react-hooks/recommended' + ], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint', 'header'], + parserOptions: { + ecmaFeatures: { + jsx: true + }, + ecmaVersion: 2020, + sourceType: 'module' + }, + rules: { + '@typescript-eslint/explicit-function-return-type': [ + 'warn', + { + allowExpressions: true, + allowTypedFunctionExpressions: true + } + ], + eqeqeq: 'warn', + 'header/header': ['error', 'line', ' Copyright (c) Microsoft Corporation.\n Licensed under the MIT License.'], + 'react/display-name': 'off', + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-unused-vars': ['warn', { varsIgnorePattern: '^_' }], + curly: 'error', + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['@internal/*'], + message: 'Use @azure/communication-react instead.' + } + ] + } + ] + }, + settings: { + react: { + version: 'detect' + } + }, + overrides: [ + { + files: ['**/*.test.ts', '**/*.test.tsx', '**/*.spec.ts', '**/*.spec.tsx', '**/mocks/*'], + env: { + jest: true + } + } + ] +}; diff --git a/samples/CallingStateful/CHANGELOG.json b/samples/CallingStateful/CHANGELOG.json new file mode 100644 index 00000000000..100f79991fd --- /dev/null +++ b/samples/CallingStateful/CHANGELOG.json @@ -0,0 +1,820 @@ +{ + "name": "calling", + "entries": [ + { + "date": "Mon, 24 Apr 2023 15:39:40 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.5.1-beta.3", + "commit": "0c6463eadb465ca4b61abf49bf10acb16ab38109" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.5.1-beta.3", + "commit": "0c6463eadb465ca4b61abf49bf10acb16ab38109" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.5.1-beta.3", + "commit": "0c6463eadb465ca4b61abf49bf10acb16ab38109" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.5.1-beta.3", + "commit": "0c6463eadb465ca4b61abf49bf10acb16ab38109" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.5.1-beta.3", + "commit": "0c6463eadb465ca4b61abf49bf10acb16ab38109" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.5.1-beta.3", + "commit": "0c6463eadb465ca4b61abf49bf10acb16ab38109" + } + ] + } + }, + { + "date": "Tue, 28 Mar 2023 16:00:38 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.5.1-beta.2", + "commit": "44af12af1d875a92c4fe787ef35979d608a18d0f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.5.1-beta.2", + "commit": "44af12af1d875a92c4fe787ef35979d608a18d0f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.5.1-beta.2", + "commit": "44af12af1d875a92c4fe787ef35979d608a18d0f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.5.1-beta.2", + "commit": "44af12af1d875a92c4fe787ef35979d608a18d0f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.5.1-beta.2", + "commit": "44af12af1d875a92c4fe787ef35979d608a18d0f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.5.1-beta.2", + "commit": "44af12af1d875a92c4fe787ef35979d608a18d0f" + } + ] + } + }, + { + "date": "Wed, 01 Feb 2023 17:57:07 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.5.1-beta.1", + "commit": "12057529397c7967ace40835895dd12c759d7285" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.5.1-beta.1", + "commit": "12057529397c7967ace40835895dd12c759d7285" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.5.1-beta.1", + "commit": "12057529397c7967ace40835895dd12c759d7285" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.5.1-beta.1", + "commit": "12057529397c7967ace40835895dd12c759d7285" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.5.1-beta.1", + "commit": "12057529397c7967ace40835895dd12c759d7285" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.5.1-beta.1", + "commit": "12057529397c7967ace40835895dd12c759d7285" + } + ] + } + }, + { + "date": "Wed, 04 Jan 2023 23:56:43 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.5.0", + "commit": "080bf87c8847f154b37cda856978bc00aa4fe5df" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.5.0", + "commit": "080bf87c8847f154b37cda856978bc00aa4fe5df" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.5.0", + "commit": "080bf87c8847f154b37cda856978bc00aa4fe5df" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.5.0", + "commit": "080bf87c8847f154b37cda856978bc00aa4fe5df" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.5.0", + "commit": "080bf87c8847f154b37cda856978bc00aa4fe5df" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.5.0", + "commit": "080bf87c8847f154b37cda856978bc00aa4fe5df" + } + ] + } + }, + { + "date": "Tue, 15 Nov 2022 21:12:27 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.4.1-beta.1", + "commit": "4c9756eb717a363c2d533804fcba8d1caf3cfb40" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.4.1-beta.1", + "commit": "4c9756eb717a363c2d533804fcba8d1caf3cfb40" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.4.1-beta.1", + "commit": "4c9756eb717a363c2d533804fcba8d1caf3cfb40" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.4.1-beta.1", + "commit": "4c9756eb717a363c2d533804fcba8d1caf3cfb40" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.4.1-beta.1", + "commit": "4c9756eb717a363c2d533804fcba8d1caf3cfb40" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.4.1-beta.1", + "commit": "4c9756eb717a363c2d533804fcba8d1caf3cfb40" + } + ] + } + }, + { + "date": "Fri, 21 Oct 2022 23:02:13 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.4.0", + "commit": "6e9b927acf587b957b60434f6ccc8265277d2434" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.4.0", + "commit": "6e9b927acf587b957b60434f6ccc8265277d2434" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.4.0", + "commit": "6e9b927acf587b957b60434f6ccc8265277d2434" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.4.0", + "commit": "6e9b927acf587b957b60434f6ccc8265277d2434" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.4.0", + "commit": "6e9b927acf587b957b60434f6ccc8265277d2434" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.4.0", + "commit": "6e9b927acf587b957b60434f6ccc8265277d2434" + } + ] + } + }, + { + "date": "Wed, 05 Oct 2022 18:13:57 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.3.2-beta.1", + "commit": "14adcdc3a3699659701ab1a81c80f1418e384170" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.3.2-beta.1", + "commit": "14adcdc3a3699659701ab1a81c80f1418e384170" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.3.2-beta.1", + "commit": "14adcdc3a3699659701ab1a81c80f1418e384170" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.3.2-beta.1", + "commit": "14adcdc3a3699659701ab1a81c80f1418e384170" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.3.2-beta.1", + "commit": "14adcdc3a3699659701ab1a81c80f1418e384170" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.3.2-beta.1", + "commit": "14adcdc3a3699659701ab1a81c80f1418e384170" + } + ] + } + }, + { + "date": "Wed, 29 Jun 2022 17:31:08 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.3.1-beta.1", + "commit": "ca7646cfad4f55c21d80355235d29b35ca2c40c1" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.3.1-beta.1", + "commit": "ca7646cfad4f55c21d80355235d29b35ca2c40c1" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.3.1-beta.1", + "commit": "ca7646cfad4f55c21d80355235d29b35ca2c40c1" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.3.1-beta.1", + "commit": "ca7646cfad4f55c21d80355235d29b35ca2c40c1" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.3.1-beta.1", + "commit": "ca7646cfad4f55c21d80355235d29b35ca2c40c1" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.3.1-beta.1", + "commit": "ca7646cfad4f55c21d80355235d29b35ca2c40c1" + } + ] + } + }, + { + "date": "Mon, 13 Jun 2022 18:29:32 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.3.0", + "commit": "de87d04e8d99bc266b4d44bdea7608a78a52008e" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.3.0", + "commit": "de87d04e8d99bc266b4d44bdea7608a78a52008e" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.3.0", + "commit": "de87d04e8d99bc266b4d44bdea7608a78a52008e" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.3.0", + "commit": "de87d04e8d99bc266b4d44bdea7608a78a52008e" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.3.0", + "commit": "de87d04e8d99bc266b4d44bdea7608a78a52008e" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.3.0", + "commit": "de87d04e8d99bc266b4d44bdea7608a78a52008e" + } + ] + } + }, + { + "date": "Tue, 19 Apr 2022 20:46:20 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.2.2-beta.1", + "commit": "124893bcd653ceab6c1fd7461e14ee978c8a7ac9" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.2.2-beta.1", + "commit": "124893bcd653ceab6c1fd7461e14ee978c8a7ac9" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.2.2-beta.1", + "commit": "124893bcd653ceab6c1fd7461e14ee978c8a7ac9" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.2.2-beta.1", + "commit": "124893bcd653ceab6c1fd7461e14ee978c8a7ac9" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.2.2-beta.1", + "commit": "124893bcd653ceab6c1fd7461e14ee978c8a7ac9" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.2.2-beta.1", + "commit": "124893bcd653ceab6c1fd7461e14ee978c8a7ac9" + } + ] + } + }, + { + "date": "Fri, 11 Mar 2022 19:20:05 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.2.0", + "commit": "8840a94fa6175db937f697b1c6a6a64cc2fb743f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.2.0", + "commit": "8840a94fa6175db937f697b1c6a6a64cc2fb743f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.2.0", + "commit": "8840a94fa6175db937f697b1c6a6a64cc2fb743f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.2.0", + "commit": "8840a94fa6175db937f697b1c6a6a64cc2fb743f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.2.0", + "commit": "8840a94fa6175db937f697b1c6a6a64cc2fb743f" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.2.0", + "commit": "8840a94fa6175db937f697b1c6a6a64cc2fb743f" + } + ] + } + }, + { + "date": "Tue, 01 Mar 2022 16:43:00 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.1.1-beta.1", + "commit": "ad59ff742c9fad2fceb1b819cb259c1ee8f29e62" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.1.1-beta.1", + "commit": "ad59ff742c9fad2fceb1b819cb259c1ee8f29e62" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.1.1-beta.1", + "commit": "ad59ff742c9fad2fceb1b819cb259c1ee8f29e62" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.1.1-beta.1", + "commit": "ad59ff742c9fad2fceb1b819cb259c1ee8f29e62" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.1.1-beta.1", + "commit": "ad59ff742c9fad2fceb1b819cb259c1ee8f29e62" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.1.1-beta.1", + "commit": "ad59ff742c9fad2fceb1b819cb259c1ee8f29e62" + } + ] + } + }, + { + "date": "Mon, 24 Jan 2022 23:18:56 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.0.1", + "commit": "192c0fc9ba6a08e1877402d565545e3b2aa9d1ae" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.0.1", + "commit": "192c0fc9ba6a08e1877402d565545e3b2aa9d1ae" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.0.1", + "commit": "192c0fc9ba6a08e1877402d565545e3b2aa9d1ae" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.0.1", + "commit": "192c0fc9ba6a08e1877402d565545e3b2aa9d1ae" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.0.1", + "commit": "192c0fc9ba6a08e1877402d565545e3b2aa9d1ae" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.0.1", + "commit": "192c0fc9ba6a08e1877402d565545e3b2aa9d1ae" + } + ] + } + }, + { + "date": "Tue, 04 Jan 2022 22:57:10 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "undefined": [ + { + "author": "beachball", + "package": "calling", + "comment": "Bump @azure/communication-react to v1.0.1", + "commit": "8adade9eda05f6344554be0384e1da977283cee6" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/acs-ui-common to v1.0.1", + "commit": "8adade9eda05f6344554be0384e1da977283cee6" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-component-bindings to v1.0.1", + "commit": "8adade9eda05f6344554be0384e1da977283cee6" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/calling-stateful-client to v1.0.1", + "commit": "8adade9eda05f6344554be0384e1da977283cee6" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-components to v1.0.1", + "commit": "8adade9eda05f6344554be0384e1da977283cee6" + }, + { + "author": "beachball", + "package": "calling", + "comment": "Bump @internal/react-composites to v1.0.1", + "commit": "8adade9eda05f6344554be0384e1da977283cee6" + } + ] + } + }, + { + "date": "Mon, 13 Sep 2021 21:02:16 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "none": [ + { + "comment": "Bump @internal/react-composites to v1.0.0-beta.5", + "author": "anjulgarg@live.com", + "commit": "a311b0f86dddfb868b7e5c527aa15f0bb9a65d35", + "package": "calling" + }, + { + "comment": "Bump @internal/react-components to v1.0.0-beta.5", + "author": "anjulgarg@live.com", + "commit": "a311b0f86dddfb868b7e5c527aa15f0bb9a65d35", + "package": "calling" + }, + { + "comment": "Bump @internal/calling-component-bindings to v1.0.0-beta.5", + "author": "anjulgarg@live.com", + "commit": "a311b0f86dddfb868b7e5c527aa15f0bb9a65d35", + "package": "calling" + } + ], + "prerelease": [ + { + "comment": "Bump @azure/communication-react to v1.0.0-beta.5", + "author": "anjulgarg@live.com", + "commit": "a311b0f86dddfb868b7e5c527aa15f0bb9a65d35", + "package": "calling" + } + ] + } + }, + { + "date": "Mon, 16 Aug 2021 21:18:19 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "prerelease": [ + { + "comment": "Bump @internal/acs-ui-common to v1.0.0-beta.3", + "author": "alcail@microsoft.com", + "commit": "55ba11ab518b12a4e2f5976696ce4f6d1cc3af60", + "package": "calling" + } + ], + "none": [ + { + "comment": "Bump @internal/calling-component-bindings to v1.0.0-beta.4", + "author": "alcail@microsoft.com", + "commit": "55ba11ab518b12a4e2f5976696ce4f6d1cc3af60", + "package": "calling" + }, + { + "comment": "Bump @azure/communication-react to v1.0.0-beta.4", + "author": "2684369+JamesBurnside@users.noreply.github.com", + "commit": "a00102ab49a88899db51e26a2b96879c891a9a37", + "package": "calling" + }, + { + "comment": "Bump @internal/calling-stateful-client to v1.0.0-beta.4", + "author": "alcail@microsoft.com", + "commit": "55ba11ab518b12a4e2f5976696ce4f6d1cc3af60", + "package": "calling" + }, + { + "comment": "Bump @internal/react-composites to v1.0.0-beta.4", + "author": "2684369+JamesBurnside@users.noreply.github.com", + "commit": "a00102ab49a88899db51e26a2b96879c891a9a37", + "package": "calling" + } + ] + } + }, + { + "date": "Thu, 22 Jul 2021 17:42:41 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "prerelease": [ + { + "comment": "Bump @azure/communication-react to v1.0.0-beta.3", + "author": "prprabhu@microsoft.com", + "commit": "542d307497dc3610b66c006cc7419c7abbcb56c8", + "package": "calling" + } + ], + "none": [ + { + "comment": "Bump @internal/react-composites to v1.0.0-beta.3", + "author": "prprabhu@microsoft.com", + "commit": "542d307497dc3610b66c006cc7419c7abbcb56c8", + "package": "calling" + }, + { + "comment": "Bump @internal/acs-ui-common to v1.0.0-beta.2", + "author": "2684369+JamesBurnside@users.noreply.github.com", + "commit": "b11cb6f206e9357ca5768fa6a3b23d8d35af12da", + "package": "calling" + }, + { + "comment": "Bump @internal/react-components to v1.0.0-beta.3", + "author": "2684369+JamesBurnside@users.noreply.github.com", + "commit": "b11cb6f206e9357ca5768fa6a3b23d8d35af12da", + "package": "calling" + }, + { + "comment": "Bump @internal/calling-component-bindings to v1.0.0-beta.3", + "author": "prprabhu@microsoft.com", + "commit": "542d307497dc3610b66c006cc7419c7abbcb56c8", + "package": "calling" + }, + { + "comment": "Bump @internal/calling-stateful-client to v1.0.0-beta.3", + "author": "prprabhu@microsoft.com", + "commit": "542d307497dc3610b66c006cc7419c7abbcb56c8", + "package": "calling" + } + ] + } + }, + { + "date": "Fri, 09 Jul 2021 20:41:33 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "none": [ + { + "comment": "Bump react-components to v1.0.0-beta.2", + "author": "jinan@microsoft.com", + "commit": "0049ecf2840d44340fa9a38fc724dfcab9a5c781", + "package": "calling" + }, + { + "comment": "Bump acs-ui-common to v1.0.0-beta.2", + "author": "jinan@microsoft.com", + "commit": "0049ecf2840d44340fa9a38fc724dfcab9a5c781", + "package": "calling" + }, + { + "comment": "Bump react-composites to v1.0.0-beta.2", + "author": "prprabhu@microsoft.com", + "commit": "2b00c0539d02971ad99674810aa1072d32e103cd", + "package": "calling" + }, + { + "comment": "Bump calling-component-bindings to v1.0.0-beta.2", + "author": "prprabhu@microsoft.com", + "commit": "2f0729eed634693aeafd82c983ace6f3f6a249b1", + "package": "calling" + }, + { + "comment": "Bump calling-stateful-client to v1.0.0-beta.2", + "author": "prprabhu@microsoft.com", + "commit": "2f0729eed634693aeafd82c983ace6f3f6a249b1", + "package": "calling" + } + ], + "prerelease": [ + { + "comment": "Bump @azure/communication-react to v1.0.0-beta.2", + "author": "prprabhu@microsoft.com", + "commit": "2b00c0539d02971ad99674810aa1072d32e103cd", + "package": "calling" + } + ] + } + }, + { + "date": "Fri, 21 May 2021 16:16:28 GMT", + "tag": "calling_v0.0.1", + "version": "0.0.1", + "comments": { + "prerelease": [ + { + "comment": "Bump @internal/react-composites to v1.0.0-beta.1", + "author": "allenhwang@microsoft.com", + "commit": "6b938ce9dee82e1810788f740f4fbae32537be19", + "package": "calling" + } + ] + } + } + ] +} diff --git a/samples/CallingStateful/LICENSE b/samples/CallingStateful/LICENSE new file mode 100644 index 00000000000..ea8fb151602 --- /dev/null +++ b/samples/CallingStateful/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/samples/CallingStateful/README.md b/samples/CallingStateful/README.md new file mode 100644 index 00000000000..382600acb07 --- /dev/null +++ b/samples/CallingStateful/README.md @@ -0,0 +1,57 @@ +# Calling Stateful Sample + +![Homepage](./Media/homepage-sample-calling.png) + +🚧 Be advised we are currently working on polishing the samples in this repo. 🚧 + +## Overview + +This is a sample application to show how we can use the `@azure/communication-ui` package to build a calling experience. +The client-side application is a React based user interface. Alongside this front-end is a NodeJS web application powered by ExpressJS that performs functionality like minting new user tokens for each call participant. + +## Prerequisites + +- [Visual Studio Code (Stable Build)](https://code.visualstudio.com/Download) +- [Node.js (16.19.0 and above)](https://nodejs.org/en/download/) +- Create an Azure account with an active subscription. For details, see [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F). +- Create an Azure Communication Services resource. For details, see [Create an Azure Communication Resource](https://docs.microsoft.com/azure/communication-services/quickstarts/create-communication-resource). You'll need to record your resource **connection string** for this quickstart. + +## Before running the sample for the first time + +1. Open an instance of PowerShell, Windows Terminal, Command Prompt, or equivalent, and navigate to the directory that you'd like to clone the sample to and clone the repo. + + ```shell + git clone https://github.com/Azure/communication-ui-library.git + ``` + +1. Get the `Connection String` from the Azure portal. For more information on connection strings, see [Create an Azure Communication Resources](https://docs.microsoft.com/azure/communication-services/quickstarts/create-communication-resource) +1. Once you get the `Connection String`, add the connection string to the **samples/Server/appsetting.json** file. Input your connection string in the variable: `ResourceConnectionString`. +1. Once you get the `Endpoint`, add the endpoint string to the **samples/Server/appsetting.json** file. Input your connection string in the variable: `EndpointUrl`. +1. Get the `identity` from the Azure portal. Click on `Identities & User Access Tokens` in Azure portal. Generate a user with `Chat` scope. +1. Once you get the `identity` string, add the identity string to the **samples/Server/appsetting.json** file. Input your identity string in the variable: `AdminUserId`. This is the server user to add new users to the chat thread. + +## Local run + +1. Install dependencies + + ```bash + npm i -g @microsoft/rush + rush install + ``` + +1. Start the calling app + + ```bash + cd samples\Calling + rushx start + ``` + + This will open a client server on port 3000 that serves the website files, and an api server on port 8080 that performs functionality like minting tokens for call participants. + +## Additional Reading + +- [Azure Communication Services - UI Library](https://azure.github.io/communication-ui-library/) - To learn more about what the `@azure/communication-react` package offers. +- [Azure Communication Calling SDK](https://docs.microsoft.com/azure/communication-services/concepts/voice-video-calling/calling-sdk-features) - To learn more about the calling web sdk +- [FluentUI](https://developer.microsoft.com/fluentui#/) - Microsoft powered UI library +- [React](https://reactjs.org/) - Library for building user interfaces +- [Create-React-App](https://create-react-app.dev/) - Boilerplate React code to help with a majority of React style single page applications. diff --git a/samples/CallingStateful/package.json b/samples/CallingStateful/package.json new file mode 100644 index 00000000000..0fd2e0260c9 --- /dev/null +++ b/samples/CallingStateful/package.json @@ -0,0 +1,110 @@ +{ + "name": "@internal/callingstateful", + "version": "0.0.1", + "private": true, + "description": "This is a sample application to show how the UI Library can be used to build a calling experience. The client-side application is a React based user interface which uses React Hooks for handling complex state while leveraging Microsoft Fluent UI for how things look.", + "scripts": { + "build": "rushx clean && concurrently --kill-others-on-fail \"rushx _typecheck\" \"rushx webpack\"", + "build:minify": "rushx clean && concurrently --kill-others-on-fail \"rushx _typecheck\" \"rushx webpack:minify\"", + "clean": "rimraf dist", + "package": "copyfiles -E -u 3 \"../Server/dist/**/*\" dist", + "start": "concurrently \"cd ../Server && rushx start:dev\" \"rushx start:app\"", + "start:app": "rushx _by-flavor \"webpack-cli serve --mode=development --env development\"", + "start:prod": "node dist/server.js", + "test": "", + "test:ci-coverage": "echo skip", + "port:sample": "rushx preprocess:stable-flavor && cpx \"./preprocessed/**\" sample-dist/src && cpx \"./Media/**\" sample-dist/Media && cpx \"./public/**\" sample-dist/public", + "preprocess": "cpx \"./src/**\" ./preprocessed && babel ./src --out-dir ../preprocessed --extensions \".ts,.tsx\" --keep-file-extension --config-file ./.babelrc.js --relative", + "preprocess:stable-flavor": "rushx _stable-flavor \"rushx preprocess && rushx lint:fix && rushx prettier\"", + "prettier": "prettier --no-error-on-unmatched-pattern --write --config ../../.prettierrc --ignore-path=../../.prettierignore \"**/*.js\" \"**/*.jsx\" \"**/*.ts\" \"**/*.tsx\"", + "prettier:check": "prettier --no-error-on-unmatched-pattern --check --config ../../.prettierrc --ignore-path=../../.prettierignore \"**/*.js\" \"**/*.jsx\" \"**/*.ts\" \"**/*.tsx\"", + "lint": "eslint --max-warnings 0 \"**/*.{js,ts,tsx}\"", + "lint:fix": "eslint */**/*.{ts,tsx} --fix", + "lint:quiet": "eslint */**/*.{ts,tsx} --quiet", + "webpack": "rushx _by-flavor \"webpack --mode=production --env production\"", + "webpack:minify": "rushx _by-flavor \"webpack --mode=production --env production --env minify\"", + "_current-flavor": "echo You are running under COMMUNICATION_REACT_FLAVOR: && env-cmd -f ../../common/config/env/.env node -p process.env.COMMUNICATION_REACT_FLAVOR", + "_by-flavor": "rushx _current-flavor && env-cmd -f ../../common/config/env/.env --use-shell", + "_stable-flavor": "rushx _current-flavor && env-cmd -f ../../common/config/env/stable.env --use-shell", + "_if-preprocess": "if-env COMMUNICATION_REACT_FLAVOR=stable || if-env COMMUNICATION_REACT_FLAVOR=beta-release", + "_typecheck": "rushx _by-flavor \"npm run _if-preprocess && rushx preprocess && tsc -p tsconfig.preprocess.json || (if-env COMMUNICATION_REACT_FLAVOR=beta && tsc)\"" + }, + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^1.1.0", + "@azure/communication-identity": "^1.3.0", + "@azure/communication-react": "1.18.0-beta.1", + "@azure/communication-calling": "1.27.1-beta.1 || ^1.26.1", + "@azure/communication-common": "^2.3.1", + "@azure/logger": "^1.0.4", + "@babel/preset-react": "^7.12.7", + "@fluentui/react": "^8.117.1", + "@fluentui/react-hooks": "^8.7.0", + "@fluentui/react-icons": "^2.0.245", + "@internal/acs-ui-common": "1.18.0-beta.1", + "@internal/calling-component-bindings": "1.18.0-beta.1", + "@internal/calling-stateful-client": "1.18.0-beta.1", + "@internal/react-components": "1.18.0-beta.1", + "@internal/react-composites": "1.18.0-beta.1", + "follow-redirects": "1.15.3", + "merge": "^2.1.1", + "mobile-detect": "^1.4.5", + "nanoid": "3.3.6", + "node-fetch": "2.6.7", + "react": "18.3.1", + "react-dom": "18.3.1", + "react-router-dom": "^5.1.2", + "reselect": "^4.0.0", + "shake.js": "1.2.2", + "uuid": "^9.0.0" + }, + "devDependencies": { + "@babel/cli": "^7.24.7", + "@babel/core": "^7.24.7", + "@babel/eslint-parser": "^7.22.15", + "@babel/preset-env": "7.23.9", + "@types/jest": "^29.5.11", + "@types/node": "^20.14.8", + "@types/react-dom": "18.3.0", + "@types/react": "18.3.3", + "@types/uuid": "^9.0.8", + "@typescript-eslint/eslint-plugin": "^7.14.1", + "@typescript-eslint/parser": "^7.14.1", + "ajv": "^8.12.0", + "babel-jest": "^29.5.0", + "babel-loader": "8.1.0", + "concurrently": "^5.3.0", + "copyfiles": "^2.4.1", + "cpx": "^1.5.0", + "css-loader": "^4.3.0", + "env-cmd": "^10.1.0", + "eslint-config-prettier": "^9.1.0", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-header": "^3.1.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jsx-a11y": "^6.8.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react": "^7.34.3", + "eslint": "^8.57.0", + "html-webpack-plugin": "^5.3.1", + "husky": "^8.0.3", + "if-env": "^1.0.4", + "jest-junit": "^16.0.0", + "jest": "29.7.0", + "prettier": "3.3.2", + "pretty-quick": "^4.0.0", + "rimraf": "^2.6.2", + "source-map-explorer": "^2.5.0", + "style-loader": "^2.0.0", + "ts-loader": "^8.0.12", + "typescript": "5.4.5", + "url-loader": "^4.1.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "4.15.2", + "webpack": "5.89.0", + "webpack-bundle-analyzer": "^4.5.0" + } + } + \ No newline at end of file diff --git a/samples/CallingStateful/public/assets/sounds/callBusy.mp3 b/samples/CallingStateful/public/assets/sounds/callBusy.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..4d2ad263504f7754de4f790269e10b3dc4172bba GIT binary patch literal 11568 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 M{y&TG|84L84NobY_W%F@ literal 0 HcmV?d00001 diff --git a/samples/CallingStateful/public/assets/sounds/callEnded.mp3 b/samples/CallingStateful/public/assets/sounds/callEnded.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..056c2592dda5f1580e3306323450198c6e4c06c1 GIT binary patch literal 40353 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 KZ}~sE;C}#x7m6bQ literal 0 HcmV?d00001 diff --git a/samples/CallingStateful/public/assets/sounds/callRinging.mp3 b/samples/CallingStateful/public/assets/sounds/callRinging.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..36d569f408671d2584559f5a17e65b9437ae10ab GIT binary patch literal 304353 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 dP|wc7W?@u+c#ksOWIJ47e&av= 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%0Dr`se)W96-Ps^&r_{3$Uk$!5wb~@b1u1Rk} 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 + + + + + + + + + UI Library Calling Sample + + + +
+ + + diff --git a/samples/CallingStateful/public/manifest.json b/samples/CallingStateful/public/manifest.json new file mode 100644 index 00000000000..36aa634d21b --- /dev/null +++ b/samples/CallingStateful/public/manifest.json @@ -0,0 +1,8 @@ +{ + "name": "Azure Communication Calling Sample", + "short_name": "AzureCommunicationCallingSample", + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/samples/CallingStateful/src/App.css b/samples/CallingStateful/src/App.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/samples/CallingStateful/src/App.tsx b/samples/CallingStateful/src/App.tsx new file mode 100644 index 00000000000..af9deed1778 --- /dev/null +++ b/samples/CallingStateful/src/App.tsx @@ -0,0 +1,223 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import React, { useCallback, useEffect, useState } from 'react'; +import './App.css'; +import { CommunicationUserIdentifier } from '@azure/communication-common'; +import { + CallCommon, + IncomingCall, + TeamsIncomingCall, + LocalVideoStream, + IncomingCallCommon +} from '@azure/communication-calling'; +/* @conditional-compile-remove(one-to-n-calling) */ +import { IncomingCallEvent, TeamsIncomingCallEvent } from '@azure/communication-calling'; +import { + DEFAULT_COMPONENT_ICONS, + FluentThemeProvider, + StatefulCallClient, + CallClientState +} from '@azure/communication-react'; +/* @conditional-compile-remove(one-to-n-calling) */ +import { DeclarativeCallAgent, DeclarativeTeamsCallAgent } from '@azure/communication-react'; +import { Stack, Text, initializeIcons, registerIcons } from '@fluentui/react'; +import heroSVG from './assets/hero.svg'; +import { LoginScreen } from './views/Login'; +import { CallScreen } from './views/CallScreen'; +import { IncomingCallManager } from './components/IncomingCallManager'; +initializeIcons(); +registerIcons({ icons: DEFAULT_COMPONENT_ICONS }); + +function App(): JSX.Element { + const imageProps = { src: heroSVG.toString() }; + const [userIdentifier, setUserIdentifier] = useState(); + const [teamsIdentifier, setTeamsIdentifier] = useState(); + + const [userCredentialFetchError, setUserCredentialFetchError] = useState(false); + + const [statefulCallClient, setStatefulCallClient] = useState(); + /* @conditional-compile-remove(one-to-n-calling) */ + const [callAgent, setCallAgent] = useState(); + const [call, setCall] = useState(); + const [incomingCalls, setIncomingCalls] = useState([]); + + /** + * Helper function to clear the old incoming Calls in the app that are no longer valid. + * @param statefulClient + */ + const filterEndedIncomingCalls = useCallback( + (incomingCall: IncomingCallCommon): void => { + setIncomingCalls(incomingCalls.filter((call) => call.id !== incomingCall.id)); + }, + [incomingCalls] + ); + + /* @conditional-compile-remove(one-to-n-calling) */ + const incomingAcsCallListener: IncomingCallEvent = useCallback( + ({ incomingCall }): void => { + console.log('Incoming call received: ', incomingCall); + if (callAgent) { + setIncomingCalls(callAgent.incomingCalls); + } + }, + [callAgent] + ); + + /* @conditional-compile-remove(one-to-n-calling) */ + const teamsIncomingCallListener: TeamsIncomingCallEvent = useCallback( + ({ incomingCall }): void => { + console.log('Incoming call received: ', incomingCall); + if (callAgent) { + setIncomingCalls(callAgent.incomingCalls); + } + }, + [callAgent] + ); + + const callsUpdatedListener = useCallback( + (event: { added: CallCommon[]; removed: CallCommon[] }): void => { + if (event.added.length > 0) { + if (call && call.state !== 'Disconnected') { + call.hold(); + } + setCall(event.added[0]); + } else if (event.removed.length > 0) { + if (event.removed[0] === call) { + setCall(undefined); + } + } + }, + [call, setCall] + ); + + /** + * We need to check the call client to make sure we are removing any of the notifications that + * are no longer valid. + */ + const statefulCallClientStateListener = useCallback( + (state: CallClientState): void => { + if (statefulCallClient) { + const endedIncomingCalls = Object.keys(state.incomingCallsEnded); + setIncomingCalls(incomingCalls.filter((call) => !endedIncomingCalls.includes(call.id))); + } + }, + [statefulCallClient, incomingCalls] + ); + + // Examples for Callback functions for utilizing incomingCall reject and accept. + const onRejectCall = (incomingCall: IncomingCall | TeamsIncomingCall): void => { + if (incomingCall && /* @conditional-compile-remove(one-to-n-calling) */ callAgent) { + incomingCall.reject(); + filterEndedIncomingCalls(incomingCall); + } + }; + + const onAcceptCall = async (incomingCall: IncomingCall | TeamsIncomingCall, useVideo?: boolean): Promise => { + const cameras = statefulCallClient?.getState().deviceManager.cameras; + console.log(cameras); + let localVideoStream: LocalVideoStream | undefined; + if (cameras && useVideo) { + localVideoStream = new LocalVideoStream(cameras[0]); + } + if (incomingCall && /* @conditional-compile-remove(one-to-n-calling) */ callAgent) { + await incomingCall.accept( + localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined + ); + filterEndedIncomingCalls(incomingCall); + } + }; + + useEffect(() => { + if (statefulCallClient) { + statefulCallClient.onStateChange(statefulCallClientStateListener); + } + return () => { + statefulCallClient?.offStateChange(statefulCallClientStateListener); + }; + }, [statefulCallClient, statefulCallClientStateListener]); + + useEffect(() => { + /* @conditional-compile-remove(one-to-n-calling) */ + if (!callAgent) { + return; + } + /* @conditional-compile-remove(one-to-n-calling) */ + if (callAgent.kind === 'TeamsCallAgent') { + console.log('Subscribing to teams events'); + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeTeamsCallAgent).on('callsUpdated', callsUpdatedListener); + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeTeamsCallAgent).on('incomingCall', teamsIncomingCallListener); + return () => { + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeTeamsCallAgent).off('incomingCall', teamsIncomingCallListener); + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeTeamsCallAgent).off('callsUpdated', callsUpdatedListener); + }; + } else if (callAgent.kind === 'CallAgent') { + console.log('subscribing to ACS CallAgent events'); + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeCallAgent).on('incomingCall', incomingAcsCallListener); + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeCallAgent).on('callsUpdated', callsUpdatedListener); + return () => { + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeCallAgent).off('incomingCall', incomingAcsCallListener); + /* @conditional-compile-remove(one-to-n-calling) */ + (callAgent as DeclarativeCallAgent).off('callsUpdated', callsUpdatedListener); + }; + } else { + throw new Error('Unknown call agent kind'); + } + }, [ + /* @conditional-compile-remove(one-to-n-calling) */ callAgent, + call, + callsUpdatedListener, + /* @conditional-compile-remove(one-to-n-calling) */ incomingAcsCallListener, + /* @conditional-compile-remove(one-to-n-calling) */ teamsIncomingCallListener + ]); + + if (userCredentialFetchError) { + return Failed to fetch user credentials; + } + + if (statefulCallClient === undefined || /* @conditional-compile-remove(one-to-n-calling) */ callAgent === undefined) { + return ( + + ); + } + + return ( + + + {userIdentifier && your userId: {userIdentifier.communicationUserId}} + {teamsIdentifier && your teamsId: {teamsIdentifier}} + {statefulCallClient && /* @conditional-compile-remove(one-to-n-calling) */ callAgent && call && ( + + )} + + + + ); +} + +export default App; diff --git a/samples/CallingStateful/src/assets/assets.d.ts b/samples/CallingStateful/src/assets/assets.d.ts new file mode 100644 index 00000000000..d41557039ea --- /dev/null +++ b/samples/CallingStateful/src/assets/assets.d.ts @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +declare module '*.svg' { + const content: React.FunctionComponent>; + export default content; +} diff --git a/samples/CallingStateful/src/assets/hero.svg b/samples/CallingStateful/src/assets/hero.svg new file mode 100644 index 00000000000..ee6ea3dffec --- /dev/null +++ b/samples/CallingStateful/src/assets/hero.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/CallingStateful/src/components/CallingComponents.tsx b/samples/CallingStateful/src/components/CallingComponents.tsx new file mode 100644 index 00000000000..31afd94b2e3 --- /dev/null +++ b/samples/CallingStateful/src/components/CallingComponents.tsx @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { + usePropsFor, + VideoGallery, + ControlBar, + CameraButton, + MicrophoneButton, + ScreenShareButton, + EndCallButton, + VideoStreamOptions +} from '@azure/communication-react'; +import { Stack } from '@fluentui/react'; +import React, { useCallback, useState } from 'react'; + +export const CallingComponents = (): JSX.Element => { + const videoGalleryProps = usePropsFor(VideoGallery); + const cameraProps = usePropsFor(CameraButton); + const microphoneProps = usePropsFor(MicrophoneButton); + const screenShareProps = usePropsFor(ScreenShareButton); + const endCallProps = usePropsFor(EndCallButton); + + const [callEnded, setCallEnded] = useState(false); + + const localVideoViewOptions = { + scalingMode: 'Crop', + isMirrored: true + } as VideoStreamOptions; + + const remoteVideoViewOptions = { + scalingMode: 'Crop' + } as VideoStreamOptions; + + const onHangup = useCallback(async (): Promise => { + await endCallProps.onHangUp(); + setCallEnded(true); + }, [endCallProps]); + + if (callEnded) { + return ; + } + + return ( + + {videoGalleryProps && ( + + + + )} + + {cameraProps && } + {microphoneProps && } + {screenShareProps && } + {endCallProps && } + + + ); +}; + +function CallEnded(): JSX.Element { + return

You ended the call.

; +} + +export default CallingComponents; diff --git a/samples/CallingStateful/src/components/IncomingCallManager.tsx b/samples/CallingStateful/src/components/IncomingCallManager.tsx new file mode 100644 index 00000000000..5c8a45de4cf --- /dev/null +++ b/samples/CallingStateful/src/components/IncomingCallManager.tsx @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { IncomingCall, TeamsIncomingCall } from '@azure/communication-calling'; +/* @conditional-compile-remove(one-to-n-calling) */ +import { IncomingCallNotification } from '@azure/communication-react'; +import { Stack } from '@fluentui/react'; +import React from 'react'; + +/** + * Props for the IncomingCallManager component. + */ +export interface IncomingCallManagerProps { + incomingCalls: readonly IncomingCall[] | readonly TeamsIncomingCall[]; + onAcceptCall: (incomingCall: IncomingCall | TeamsIncomingCall, useVideo?: boolean) => void; + onRejectCall: (incomingCall: IncomingCall | TeamsIncomingCall) => void; +} + +/** + * Wrapper to manage multiple incoming calls + * @param props + * @returns + */ +export const IncomingCallManager = (props: IncomingCallManagerProps): JSX.Element => { + /* @conditional-compile-remove(one-to-n-calling) */ + const { incomingCalls, onAcceptCall, onRejectCall } = props; + return ( + + { + /* @conditional-compile-remove(one-to-n-calling) */ incomingCalls.map((incomingCall) => ( + onAcceptCall(incomingCall)} + onAcceptWithVideo={() => onAcceptCall(incomingCall, true)} + onReject={() => onRejectCall(incomingCall)} + > + )) + } + + ); +}; diff --git a/samples/CallingStateful/src/index.css b/samples/CallingStateful/src/index.css new file mode 100644 index 00000000000..74b5e053450 --- /dev/null +++ b/samples/CallingStateful/src/index.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/samples/CallingStateful/src/index.tsx b/samples/CallingStateful/src/index.tsx new file mode 100644 index 00000000000..76e152684f0 --- /dev/null +++ b/samples/CallingStateful/src/index.tsx @@ -0,0 +1,14 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; + +const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); +root.render( + + + +); diff --git a/samples/CallingStateful/src/styles/HomeScreen.styles.ts b/samples/CallingStateful/src/styles/HomeScreen.styles.ts new file mode 100644 index 00000000000..930255dd5b9 --- /dev/null +++ b/samples/CallingStateful/src/styles/HomeScreen.styles.ts @@ -0,0 +1,12 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { mergeStyles } from '@fluentui/react'; + +export const imgStyle = mergeStyles({ + width: '16.5rem', + padding: '0.5rem', + '@media (max-width: 67.1875rem)': { + display: 'none' + } +}); diff --git a/samples/CallingStateful/src/utils/AppUtils.ts b/samples/CallingStateful/src/utils/AppUtils.ts new file mode 100644 index 00000000000..c36035b6665 --- /dev/null +++ b/samples/CallingStateful/src/utils/AppUtils.ts @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { StartCallIdentifier } from '@azure/communication-react'; +import { CommunicationUserIdentifier } from '@azure/communication-common'; +import { GroupLocator, TeamsMeetingLinkLocator } from '@azure/communication-calling'; +import { v1 as generateGUID } from 'uuid'; + +/** + * Function to see if we should be making a request for the adapter args from URL + * @returns + */ +export const getStartSessionFromURL = (): boolean | undefined => { + const urlParams = new URLSearchParams(window.location.search); + return urlParams.get('newSession') === 'true'; +}; + +/** + * Properties needed to create a call screen for a Azure Communication Services CallComposite. + */ +export type AdapterArgs = { + token: string; + userId: CommunicationUserIdentifier; + targetCallees: StartCallIdentifier[]; + displayName?: string; +}; + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/** + * Get ACS user token from the Contoso server. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const fetchTokenResponse = async (): Promise => { + const response = await fetch('/token?scope=voip'); + if (response.ok) { + const responseAsJson = await response.json(); //(await response.json())?.value?.token; + const token = responseAsJson.token; + if (token) { + return responseAsJson; + } + } + throw new Error('Invalid token response'); +}; + +/** + * Get Teams Call Queue to make call with widget. + * + * @returns Id of call queue as a string + */ +export const fetchCallQueueId = async (): Promise => { + const getRequestOptions = { + method: 'GET' + }; + const response = await fetch('/getCallQueueId', getRequestOptions); + if (response.ok) { + const retrieveCallQueueId = await response.text().then((callQueueId) => callQueueId); + if (retrieveCallQueueId) { + return retrieveCallQueueId; + } + } + throw new Error('Invalid callQueueId Response'); +}; + +export const fetchAutoAttendantId = async (): Promise => { + const getRequestOptions = { + method: 'GET' + }; + const response = await fetch('/getAutoAttendantId', getRequestOptions); + if (response.ok) { + const retrieveCallQueueId = await response.text().then((callQueueId) => callQueueId); + if (retrieveCallQueueId) { + return retrieveCallQueueId; + } + } + throw new Error('Invalid callQueueId Response'); +}; + +/** + * Generate a random user name. + * @return username in the format user#### + */ +export const createRandomDisplayName = (): string => 'user' + Math.ceil(Math.random() * 1000); + +/** + * Get group id from the url's query params. + */ +export const getGroupIdFromUrl = (): GroupLocator | undefined => { + const urlParams = new URLSearchParams(window.location.search); + const gid = urlParams.get('groupId'); + return gid ? { groupId: gid } : undefined; +}; + +export const createGroupId = (): GroupLocator => ({ groupId: generateGUID() }); + +/** + * Get teams meeting link from the url's query params. + */ +export const getTeamsLinkFromUrl = (): TeamsMeetingLinkLocator | undefined => { + const urlParams = new URLSearchParams(window.location.search); + const teamsLink = urlParams.get('teamsLink'); + return teamsLink ? { meetingLink: teamsLink } : undefined; +}; + +/* + * TODO: + * Remove this method once the SDK improves error handling for unsupported browser. + */ +export const isOnIphoneAndNotSafari = (): boolean => { + const userAgent = navigator.userAgent; + + // Chrome uses 'CriOS' in user agent string and Firefox uses 'FxiOS' in user agent string. + return userAgent.includes('iPhone') && (userAgent.includes('FxiOS') || userAgent.includes('CriOS')); +}; + +export const isLandscape = (): boolean => window.innerWidth < window.innerHeight; + +export const navigateToHomePage = (): void => { + window.location.href = window.location.href.split('?')[0]; +}; + +export const WEB_APP_TITLE = document.title; diff --git a/samples/CallingStateful/src/utils/credential.ts b/samples/CallingStateful/src/utils/credential.ts new file mode 100644 index 00000000000..5143b6129df --- /dev/null +++ b/samples/CallingStateful/src/utils/credential.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { AzureCommunicationTokenCredential, CommunicationTokenRefreshOptions } from '@azure/communication-common'; +import { AbortSignalLike } from '@azure/abort-controller'; + +const postRefreshTokenParameters = { + method: 'POST' +}; + +/** + * Create credentials that auto-refresh asynchronously. + */ +export const createAutoRefreshingCredential = (userId: string, token: string): AzureCommunicationTokenCredential => { + const options: CommunicationTokenRefreshOptions = { + token: token, + tokenRefresher: refreshTokenAsync(userId), + refreshProactively: true + }; + return new AzureCommunicationTokenCredential(options); +}; + +const refreshTokenAsync = (userIdentity: string): ((abortSignal?: AbortSignalLike) => Promise) => { + return async (): Promise => { + const response = await fetch(`/refreshToken/${userIdentity}`, postRefreshTokenParameters); + if (response.ok) { + return (await response.json()).token; + } else { + throw new Error('could not refresh token'); + } + }; +}; diff --git a/samples/CallingStateful/src/views/CallScreen.tsx b/samples/CallingStateful/src/views/CallScreen.tsx new file mode 100644 index 00000000000..7e985579327 --- /dev/null +++ b/samples/CallingStateful/src/views/CallScreen.tsx @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { CallClientProvider, StatefulCallClient } from '@azure/communication-react'; +/* @conditional-compile-remove(one-to-n-calling) */ +import { + DeclarativeCallAgent, + DeclarativeTeamsCallAgent, + CallAgentProvider, + CallProvider +} from '@azure/communication-react'; +import { Stack } from '@fluentui/react'; +/* @conditional-compile-remove(one-to-n-calling) */ +import CallingComponents from '../components/CallingComponents'; +import React from 'react'; +/* @conditional-compile-remove(one-to-n-calling) */ +import { CallCommon, Call, TeamsCall } from '@azure/communication-calling'; + +export interface CallScreenProps { + /* @conditional-compile-remove(one-to-n-calling) */ + call: CallCommon; + /* @conditional-compile-remove(one-to-n-calling) */ + callAgent: DeclarativeCallAgent | DeclarativeTeamsCallAgent; + statefulCallClient: StatefulCallClient; + /* @conditional-compile-remove(one-to-n-calling) */ + onSetCall: (call: CallCommon) => void; +} + +export const CallScreen = (props: CallScreenProps): JSX.Element => { + const { + /* @conditional-compile-remove(one-to-n-calling) */ call, + /* @conditional-compile-remove(one-to-n-calling) */ callAgent, + statefulCallClient + } = props; + return ( + + + <> + { + /* @conditional-compile-remove(one-to-n-calling) */ callAgent && ( + + {call && ( + + + + )} + + ) + } + + + + ); +}; diff --git a/samples/CallingStateful/src/views/Login.tsx b/samples/CallingStateful/src/views/Login.tsx new file mode 100644 index 00000000000..e90374638ec --- /dev/null +++ b/samples/CallingStateful/src/views/Login.tsx @@ -0,0 +1,179 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/* @conditional-compile-remove(one-to-n-calling) */ +import { AzureCommunicationTokenCredential } from '@azure/communication-common'; +import { CommunicationUserIdentifier, MicrosoftTeamsUserIdentifier } from '@azure/communication-common'; +import React, { useEffect, useState } from 'react'; +import { fetchTokenResponse } from '../utils/AppUtils'; +import { + FluentThemeProvider, + StatefulCallClient, + createStatefulCallClient, + fromFlatCommunicationIdentifier +} from '@azure/communication-react'; +/* @conditional-compile-remove(one-to-n-calling) */ +import { DeclarativeCallAgent, DeclarativeTeamsCallAgent } from '@azure/communication-react'; +import { Stack, Image, Text, TextField, PrimaryButton } from '@fluentui/react'; +import { imgStyle } from '../styles/HomeScreen.styles'; + +export interface LoginProps { + onSetUserIdentifier: (user: CommunicationUserIdentifier) => void; + onSetStatefulClient: (client: StatefulCallClient) => void; + /* @conditional-compile-remove(one-to-n-calling) */ + onSetCallAgent: (callAgent: DeclarativeCallAgent | DeclarativeTeamsCallAgent) => void; + onSetTeamsIdentity: (identity: string) => void; + setTokenCredentialError: (error: boolean) => void; + headerImageProps?: { + src?: string; + }; +} + +export const LoginScreen = (props: LoginProps): JSX.Element => { + const { + /* @conditional-compile-remove(one-to-n-calling) */ + onSetCallAgent, + onSetUserIdentifier, + onSetTeamsIdentity, + onSetStatefulClient, + headerImageProps, + setTokenCredentialError + } = props; + // Get Azure Communications Service token and Voice app identification from the server. + + const [userIdentifier, setUserIdentifier] = useState(); + /* @conditional-compile-remove(one-to-n-calling) */ + const [callAgent, setCallAgent] = useState(); + /* @conditional-compile-remove(one-to-n-calling) */ + const [displayName, setDisplayName] = useState(); + /* @conditional-compile-remove(one-to-n-calling) */ + const [tokenCredential, setTokenCredential] = useState(); + const [statefulCallClient, setStatefulCallClient] = useState(); + + const [isCTE, setIsCTEUser] = useState(); + const [teamsIdentityInformation, setTeamsIdentityInformation] = useState<{ + identifier: string | undefined; + token: string | undefined; + }>(); + + useEffect(() => { + (async () => { + if (isCTE === false) { + try { + const { token, user } = await fetchTokenResponse(); + console.log('Token fetched: ', token); + console.log('User fetched: ', user); + setUserIdentifier(user); + onSetUserIdentifier(user); + /* @conditional-compile-remove(one-to-n-calling) */ + setTokenCredential(new AzureCommunicationTokenCredential(token)); + } catch (e) { + console.error(e); + setTokenCredentialError(true); + } + } + })(); + }, [isCTE, setTokenCredentialError, onSetUserIdentifier, setUserIdentifier]); + + useEffect(() => { + if (statefulCallClient === undefined) { + if (isCTE === true && teamsIdentityInformation?.identifier !== undefined) { + const statefulClient = createStatefulCallClient({ + userId: fromFlatCommunicationIdentifier(teamsIdentityInformation.identifier) as MicrosoftTeamsUserIdentifier + }); + onSetStatefulClient(statefulClient); + setStatefulCallClient(statefulClient); + onSetTeamsIdentity(teamsIdentityInformation.identifier); + return; + } + if (!userIdentifier) { + return; + } + const statefulClient = createStatefulCallClient({ userId: userIdentifier }); + setStatefulCallClient(statefulClient); + onSetStatefulClient(statefulClient); + } + console.log('Stateful client created', statefulCallClient); + }, [ + userIdentifier, + isCTE, + teamsIdentityInformation, + onSetStatefulClient, + onSetTeamsIdentity, + setStatefulCallClient, + statefulCallClient + ]); + + /* @conditional-compile-remove(one-to-n-calling) */ + useEffect(() => { + if (!isCTE && callAgent === undefined && statefulCallClient && tokenCredential && displayName) { + const createCallAgent = async (): Promise => { + const callAgent = await statefulCallClient.createCallAgent(tokenCredential, { displayName }); + setCallAgent(callAgent); + onSetCallAgent(callAgent); + }; + createCallAgent(); + } else if (callAgent === undefined && statefulCallClient && isCTE) { + const createTeamsCallAgent = async (): Promise => { + if (teamsIdentityInformation?.token !== undefined) { + const callAgent = await statefulCallClient.createTeamsCallAgent( + new AzureCommunicationTokenCredential(teamsIdentityInformation.token) + ); + setCallAgent(callAgent); + onSetCallAgent(callAgent); + } + }; + createTeamsCallAgent(); + } + }, [callAgent, statefulCallClient, tokenCredential, displayName, isCTE, teamsIdentityInformation, onSetCallAgent]); + + return ( + + + Welcome to the ACS Calling sample app + login CTE + + Enter your Teams information if you want to login with CTE. Leave blank if you want to log in with ACS + + + setTeamsIdentityInformation({ identifier: value, token: teamsIdentityInformation?.token }) + } + > + + setTeamsIdentityInformation({ identifier: teamsIdentityInformation?.identifier, token: value }) + } + > + { + setIsCTEUser(!!teamsIdentityInformation); + }} + > + Login CTE + + login ACS + { + /* @conditional-compile-remove(one-to-n-calling) */ + setDisplayName(value); + }} + > + { + setIsCTEUser(!!teamsIdentityInformation); + }} + > + Login ACS + + + + ); +}; diff --git a/samples/CallingStateful/tsconfig.json b/samples/CallingStateful/tsconfig.json new file mode 100644 index 00000000000..c2773a3d155 --- /dev/null +++ b/samples/CallingStateful/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../common/config/tsc/tsconfig.json", + "compilerOptions": { + "outDir": "./dist/dist-esm", + "baseUrl": "./src", + "paths": { + "@internal/chat-component-bindings": ["../../../packages/chat-component-bindings/src"], + "@internal/calling-component-bindings": ["../../../packages/calling-component-bindings/src"], + "@internal/acs-ui-common": ["../../../packages/acs-ui-common/src"], + "@internal/calling-stateful-client": ["../../../packages/calling-stateful-client/src"], + "@internal/chat-stateful-client": ["../../../packages/chat-stateful-client/src"], + "@internal/react-components": ["../../../packages/react-components/src"], + "@internal/react-composites": ["../../../packages/react-composites/src"], + "@azure/communication-react": ["../../../packages/communication-react/src"] + } + }, + "typeRoots": ["./node_modules/@types"], + "include": ["src/**/*"], + "exclude": ["dist", "node_modules"] +} diff --git a/samples/CallingStateful/tsconfig.preprocess.json b/samples/CallingStateful/tsconfig.preprocess.json new file mode 100644 index 00000000000..634765b9e8e --- /dev/null +++ b/samples/CallingStateful/tsconfig.preprocess.json @@ -0,0 +1,10 @@ +{ + "extends": "../../common/config/tsc/tsconfig.json", + "compilerOptions": { + "outDir": "./dist/dist-esm", + "baseUrl": "./preprocessed" + }, + "typeRoots": ["./node_modules/@types"], + "include": ["preprocessed/**/*"], + "exclude": ["dist", "node_modules"] +} diff --git a/samples/CallingStateful/webpack.config.js b/samples/CallingStateful/webpack.config.js new file mode 100644 index 00000000000..8734a9b4cdc --- /dev/null +++ b/samples/CallingStateful/webpack.config.js @@ -0,0 +1,10 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/* eslint-disable @typescript-eslint/no-var-requires */ + +module.exports = (env) => { + const babelConfig = require('./.babelrc.js'); + const commonConfig = require('../../common/config/webpack/sampleapp.webpack.config')(__dirname, env, babelConfig); + return commonConfig; +};